昔作った Cognitive Service による翻訳サイトのホスティングを普通の方法にアップデートした。
以前の課題
- Azure Function Proxy で静的ホスティングは現代的ではないのと、Function のコストが微妙にかかるのでやめたい
- Travis CI やめたい
- 昔の記事まで保持するとコストかかる
ホスティング
以前は Function Proxy + Blob Storage で配信していた。
当時は Blob Static website や Front Door がなく、CDN の設定もやりづらかった印象だったが、今はよくなっているので Azure CDN に置き換えた。
今回の変更は Build 前だったのだが、今やるなら話題の Static Web Apps で実装するのがよさそう。というかもう載せ替えたい。
デプロイ
これまで Travis CI で処理していた部分を GitHub Actions で書き直した。
GitHub Actions での Blob へのデプロイは install-azcopy-action でインストールした azcopy
が行う。
自分の cv サイトがほぼほぼ同じデプロイ方法 なので簡単に載せ替えできた。
翻訳記事の生成
このサイトは RSS フィードを更新することが目的にあるため、コンテンツが追加されるごとにサイトが再度 Generate されないといけない。
以前は Travis CI のジョブを API で呼び出していたが、今回は GitHub Actions を呼び出す。
公式にあるように repository_dispatch
を呼び出す必要がある。
参考:
ほか
ついでに Blob Storage のライフサイクル管理をいじって、90日前より前のコンテンツはすべて削除することにした。
RSS フィードを1週間読まないことはあっても 90日はさすがに不要なので。
経費削減。
Azure Storage のライフサイクルの管理 | Microsoft Docs
{ "rules": [ { "enabled": true, "name": "SaveCosts", "type": "Lifecycle", "definition": { "actions": { "baseBlob": { "tierToCool": { "daysAfterModificationGreaterThan": 30 }, "delete": { "daysAfterModificationGreaterThan": 90 } } }, "filters": { "blobTypes": [ "blockBlob" ], "prefixMatch": [ "translated" ] } } } ] }
感想
GitHub Actions じわじわ詳しくなってきた。
Effective DevOps ―4本柱による持続可能な組織文化の育て方
- 作者:Jennifer Davis,Ryn Daniels
- 発売日: 2018/03/24
- メディア: 単行本(ソフトカバー)