はじめに
PythonスクリプトをCloud Functions上にAPIとしてデプロイする手順を紹介します。
簡易な処理だけどインフラを整えるのが面倒くさい!
という場合に素早く手軽にデプロイできるのが魅力です。
Cloud Functionsについて
Cloud Functions は Google Cloud によって提供される FaaS (Function as a Service) です。サーバやコンテナといったインフラを意識することなく、手軽にクラウド上でのコード実行することができます。独自のサービスを HTTP API 経由で公開することはもちろん、特定のイベントをトリガーとして起動したり、クローラとして定期実行したりすることも可能です。
公式ドキュメントでもいくつかユースケースが紹介されているので、興味のある方はご確認ください。
利用料金について
Cloud Functions を含む Google Cloud では従量課金制が採用されています。
月毎の無料枠は以下の通りです。
- vCPU : 180,000 vCPU 秒
- メモリ : 360,000 GiB 秒
- リクエスト : 200 万リクエスト
無料枠を使い切ったのち、関数の構成と利用状況に応じた課金となります。
Cloud Functions の料金形態は公式ドキュメントに詳しく記載されているので、確認することをオススメします。
また、ユースケースを記入すると月毎の利用料金を計算・表示してくれる料金計算ツールも用意されています。
来月の請求が怖い!という方は積極的に利用しましょう。
Cloud Functionsの利用手順
1.Cloud Functions のページを開く
ナビゲーションメニューから [Cloud Functions] ボタンを選択
2.関数を作成する
3.関数の構成を設定する
[関数名], [リージョン] を任意のものに設定。
認証については [未認証の呼び出しを許可] を選択。
※今回は本質部分でないため割愛するものの、認証を必要とすることで特定のアプリケーションやプロジェクトからの呼び出しに限定することも可能
4.関数のコードを記述
本記事では Python 3.12.0 を選択。
コードを記述し終えたらデプロイをクリック。
5.関数をテストする
[トリガー] タブから [トリガーURL] のリンクにアクセス
無事関数を実行させることができました。
まとめ
チュートリアルを読みながら30分程度で Cloud Functions 上に API をデプロイすることができました。
開発初心者にもおすすめできるほどお手軽なのにも関わらず、他のサービスとの連携性も高いと感じました。月毎に 200 万リクエストまで無料なので、小規模のプロジェクトであればコスパ良く利用できそうです。
参考文献