Azure FunctionsでGithubでCIを考えてみた

 定期実行したいジョブがあったが、ちゃんとバージョン管理をしておきたいと考えていた。バージョン管理をしないなら、VPSに入れてCRONでという方法ですぐにできたのだが。ここにAzure Functionsを使ってみたところ、実によく目的を遂げてくれたしコストも大したことなかったというハナシ。


 Azure Functionsにはバージョン管理ソフトを使ったデプロイ方法が用意されている。画面の指示に従ってポチポチとやっていく。Githubを選んだ場合にはpullするブランチも選べるようになっている。Githubフローでいけば、masterから切ったブランチでゴリゴリ開発していって、そのテストはCIサービス上でやる。テストにとおっていたら、プルリクでmasterにマージすれば、バージョン管理+CIはそれでOK。

 じっさいのところまだテストは入れていないのだが、定期実行処理はすでにAzureFunctionsに入れて運用している。RSSを取ってきてちょいと加工して、MongoDBに入れるという処理。3時間に一度の実行で、週に2円ぐらいのコスト。
 VPSを用意して、バージョン管理の仕組みを構築して、月額費用を払ってとやっていると運用で時間も金も消費していくのだが、AzureFunctionsのおかげで、最初の二日で定期実行処理のコードを書いてデプロイまでやって、あとはGithub連携がちゃんと動いていることを確認したら、週2円程度のコストで動いるものを安心して放置している。サーバレスなのでOS管理の必要もないし。やっすいしバージョン管理もできているので、いい仕組みでかなり満足している。
comment: 0