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と統合して機能強化された。
- Cloud Run functions の概要 | Cloud Run functions Documentation | Google Cloud
- Cloud Run functions の実行環境 | Cloud Run functions Documentation | Google Cloud
ちなみにGoogle CloudにはBatchという重い処理を定期実行するサービスがある。
参考: バッチ: バッチ コンピューティングのシンプルさ | Google Cloud
Cloud Run Functionsのチュートリアル
下記公式クイックスタートに従ってやってみる。
参考: Google Cloud コンソールを使用して Cloud Run 関数を作成する | Cloud Run functions Documentation
リージョンは「aria-northeast1(東京)」にした。
何となく雰囲気は分かった。
PHPのチュートリアル
公式ドキュメントを参考に。
- Google Cloud CLI を使用して Cloud Run 関数を作成する | Cloud Run functions Documentation
- GitHub | GoogleCloudPlatform/php-docs-samples: A collection of samples that demonstrate how to call Google Cloud services from 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に慣れてきたらまた考える。
【関連記事】
- PhpSpreadsheetが複数ファイルをループするとメモリを使いすぎる
- FreeBSDにgsutil(google-cloud-sdk)をインストール
- SSHクライアントとしてのCloud Shell
- Windows11にcURLをインストールしてPowerShellから使う