PWA のデプロイに利用した Netlfy。
JSON を生成するプログラムをデプロイすれば JSON を置いて定期更新する用途にも使えるということで、Tumblr API で取得したデータから JSON を生成するだけの Node.js アプリを書いて Netlify にデプロイしました。
デプロイした JSON を別サイトの PWA から参照するために CORS の設定が必要です。_header ファイルを作り読み取りアクセスを許可するようにしておきました。
Netlify のビルドトリガーは GItHub へのコミットの他に Webhook を作成して経由で外部から起動することもできます。
あとは外部のサーバーから curl 叩く crontab が仕掛けられればいいだけです。それだけのために CircleCI とかでジョブを作るのもオーバーなので GCP の Cloud Scheduler で1日1回起動するようにしてみました。
Webhook URL と HTTP メソッド (POST)、unix-cron 形式で時刻と頻度を指定するだけです。
Netlify からはメールや Slack で通知が可能です。Slack のプライベートチャンネルに Webhook を作って、Netlify の Build & deploy の Deploy notifications でビルド開始、ビルド成功、ビルド失敗 のタイミングで通知するように設定しました。
全体像はこんな感じです (図にするほどのものでもありませんが)。
これで日々更新される JSON データが Web で取得可能になりましたので表示用の PWA アプリを作ってみました。
Vue の table コンポーネントにデータバインディングさせています。
ひとまず自分用に雑に作ったので、ちょいちょい手を入れていきたいと思います。