Netlify で定期的に JSON をジェネレートして通知する

PWA のデプロイに利用した Netlfy。

blog.kondoumh.com

JSON を生成するプログラムをデプロイすれば JSON を置いて定期更新する用途にも使えるということで、Tumblr API で取得したデータから JSON を生成するだけの Node.js アプリを書いて Netlify にデプロイしました。

github.com

デプロイした JSON を別サイトの PWA から参照するために CORS の設定が必要です。_header ファイルを作り読み取りアクセスを許可するようにしておきました。

Netlify のビルドトリガーは GItHub へのコミットの他に Webhook を作成して経由で外部から起動することもできます。

f:id:kondoumh:20190620230902p:plain

あとは外部のサーバーから curl 叩く crontab が仕掛けられればいいだけです。それだけのために CircleCI とかでジョブを作るのもオーバーなので GCP の Cloud Scheduler で1日1回起動するようにしてみました。

f:id:kondoumh:20190620231612p:plain

Webhook URL と HTTP メソッド (POST)、unix-cron 形式で時刻と頻度を指定するだけです。

Netlify からはメールや Slack で通知が可能です。Slack のプライベートチャンネルに Webhook を作って、Netlify の Build & deploy の Deploy notifications でビルド開始、ビルド成功、ビルド失敗 のタイミングで通知するように設定しました。

f:id:kondoumh:20190620232113p:plain

全体像はこんな感じです (図にするほどのものでもありませんが)。

f:id:kondoumh:20190625005307p:plain

これで日々更新される JSON データが Web で取得可能になりましたので表示用の PWA アプリを作ってみました。

github.com

Vue の table コンポーネントにデータバインディングさせています。

f:id:kondoumh:20190625005913p:plain

ひとまず自分用に雑に作ったので、ちょいちょい手を入れていきたいと思います。