Cloud Run Functionsでバッチ処理を動かす

PhpSpreadsheetでエクセルファイルを処理するバッチ処理が重いので、Cloud Run Functionsを利用すれば幸せになるかもしれないと調査しているときの覚書。

環境: Windows 11 Pro 23H2, Google Cloud SDK 503.0.0, Google AI Studio(Gemini 1.5 Pro)


Cloud Run Functionsとは?

Cloud Run Functionsは、Google Cloudが提供するサーバーレスサービスの一つ。
コードをイベントに応じて自動的に実行できる。
難しいサーバー管理は Google がやってくれる。

自動で処理能力が調整されて、使っていない場合は費用が発生しない。

2024年8月に、Google Cloud Functionsの第2世代がCloud Run Functionsに名称変更された。
Cloud Runと統合して機能強化された。


ちなみにGoogle CloudにはBatchという重い処理を定期実行するサービスがある。
参考: バッチ: バッチ コンピューティングのシンプルさ | Google Cloud


Cloud Run Functionsのチュートリアル

下記公式クイックスタートに従ってやってみる。
参考: Google Cloud コンソールを使用して Cloud Run 関数を作成する  |  Cloud Run functions Documentation

リージョンは「aria-northeast1(東京)」にした。

何となく雰囲気は分かった。


PHPのチュートリアル

公式ドキュメントを参考に。

デプロイしてみる。
PS:> gcloud functions deploy php-http-function --gen2 --runtime=php83 --region=asia-northeast1 --source=. --entry-point=helloGet --trigger-http

デフォルトでのリージョンを設定して確認。
PS:> gcloud config set functions/region asia-northeast1
PS:> gcloud config list

Functions一覧表示。
PS:> gcloud functions list

トリガーとなるURLを表示。
PS:> gcloud functions describe php-http-function --format="value(url)"

curlコマンドでトリガー起動。
PS:> curl -m 70 -X POST https://asia-northeast1-webrec-functions.cloudfunctions.net/php-http-function -H "Authorization: Bearer $(gcloud auth print-identity-token)" -H "Content-Type: application/json" -d '{}'

Hello, World!


ローカルでの開発環境

Google Cloudへデプロイする前にローカルで動作確認するには2つの方法がある。
参考: ローカルでの開発  |  Cloud Run functions Documentation  |  Google Cloud

  • Functions Framework
  • Functions エミュレータ

この辺はCloud Run Functionsに慣れてきたらまた考える。



【関連記事】