LEXUES BLOG

レキサスブログ

S3 Select で郵便番号住所変換やってみた

こんにちは、先月介護資格(初任者研修)を取得したエンジニアの我那覇です。

郵便番号から住所に変換するAPIを自前で作る機会があったので、その方法をご紹介いたします。

概要

  1. 郵便番号情報を取得する
  2. S3へアップロード
  3. Lambda(S3 Select) で、郵便番号住所変換処理を作る
  4. API Gateway で、APIを作る

郵便番号情報を取得する

  1. 日本郵政から [住所の郵便番号最新全データ] をダウンロードします。
  2. utf_all.zip を解凍します。 utf_all.csv を取得します。

S3へアップロード

バケット作成

  1. S3
  2. バケット > バケットを作成
    • 一般的な設定
      • バケット名: lexues-zipcode-address
    • バケットを作成

アップロード

  1. lexues-zipcode-address
  2. アップロード
  3. utf_all.csv をドラッグアンドドロップする
  4. 閉じる

Lambda(S3 Select) で、郵便番号住所変換処理を作る

関数を作成

  1. Lambda
  2. 関数 > 関数の作成
    • 一から作成
    • 関数名: getAddressByZipCode
    • ランタイム: Node.js 16.x
    • 関数の作成
  3. 下記コードを入力 > Save > Deploy

ポリシーをアタッチ

  1. 設定 > アクセス制限 > ロール名 リンク押下
  2. 許可を追加 > ポリシーをアタッチ
    • AmazonS3ReadOnlyAccess チェック
    • 許可を追加

API Gateway で、APIを作る

APIを作成

  1. 設定 > トリガー > トリガーを追加
    • ソースを選択: API Gateway
    • Intent: Create a new API
    • API Type: REST API
    • Security: Open
    • 追加
  2. getAddressByZipCode-API リンク押下
  3. API をデプロイ
  4. ステージ: default > デプロイ

テスト

  1. Postman 等の HTTP Client でアクセスしてみる

さいごに

簡単に郵便番号住所変換APIを自作することができたのではないでしょうか?
外部のAPIが使えない場合は、 S3 Select を検討しても良いかもしれませんね。

※ 上記手順は、説明を簡単にするために、色々と削ぎ落としています。実運用上使用される場合は、適宜書き換えてください。ご参考まで!

キーワード:    

この記事のライター

みなさまからのご連絡をお待ちしております。

CONTACT US