郵便番号データの自動アップロード

こんにちは
日本の郵便番号は統廃合や追加が頻繁に発生しています。JUST.SFAに郵便番号データをアップロードして利用している場合は、定期的なアップデートが必要になります。
日本郵便のHPで郵便番号データが更新されたら、JUST.SFAに最新データを自動でアップロードする仕組みを作成しましたのでご紹介いたします。

概要

日本郵便様では RSSにてお知らせを発行しています。このお知らせから郵便番号が更新されたタイミングで、CSVファイルをダウンロードし、JUST.SFAコマンドラインツールで JUST.SFAにアップロードします。
RSS の日次確認と JUST.SFAコマンドラインツールの実行は n8n で実装しました。

日本郵便株式会社のお知らせ RSS

こちら https://www.post.japanpost.jp/rss/notice.xm で RSSが受信できます。「郵便番号データを更新しました。」とお知らせされているのがわかります。

n8n ワークフロー

n8n でワークフローを作成しました。n8n は Dockerコンテナでデプロイできるので AWS Fargate に環境を作成しています。サーバーレスって便利すぎです。
ALB で HTTPS化して、Googleアカウントでのログインを設定しています。ユーザー認証も ALBで設定できるなんて便利すぎです。このあたりの設定については別の機会に記事にしようと思っています。

下記のワークフローの処理
Cron により日次実行 → アップロード先のテナント等の設定 → 前回の「 郵便番号データを更新しました 」お知らせ日時を取得 → RSSフィードの読込 → 読み込んだ RSSを 1件ずつ処理しながら → 新しい更新があった場合 → JUST.SFAコマンドラインツールを実行 → 今回のお知らせ日時を保存

JUST.SFAコマンドラインツールは シェルで実行しています。このシェルで CSVファイルのダウンロード、JUST.SFA 郵便番号テーブルのフィールドをヘッダーに追記、コマンドラインツールの実行を行っています。

実行結果

郵便番号データが JUST.SFA に登録されました。登録時には一旦全削除するので、このテーブルをルックアップする場合は「手動ルックアップ」で利用することになります。自動ルックアップだとデータが削除できません。

最後に

郵便番号データの更新履歴を見てみると、毎月末に実施されているようですので、RSSを確認しなくても月初にシェルを実行するだけでもいいかもしれませんが、急な更新があった場合に自動で対応できるようになっていると思います。