Cloud Functions
Google Cloud Functions(GCF)は、Google Cloud が提供するサーバーレスなイベント駆動型関数実行サービスです。インフラ管理不要で、コードを書いてイベントトリガーを設定するだけでデプロイできます。
特徴
-
完全マネージド:サーバーのプロビジョニング・スケーリング不要
-
イベント駆動:Cloud Storage、Pub/Sub、HTTPなど様々なトリガーで動作
-
スケーラブル:アクセスに応じて自動スケーリング
-
課金体系:実行時間とリソース使用量に基づく従量課金(リクエスト数にも依存)
主なユースケース
-
Cloud Storage にファイルがアップロードされたらサムネイルを自動生成
-
Pub/Sub 経由でキュー処理・バッチ処理を非同期で実行
-
HTTP API を簡易的に作る(Webhookなど)
-
Firestore にデータが書き込まれた際の通知処理
サポートされているトリガー
トリガーの種類 | 主な用途 |
---|---|
HTTP トリガー | REST API や Webhook |
Cloud Pub/Sub | 非同期メッセージ処理 |
Cloud Storage | ファイルアップロード検知 |
Firestore / Firebase | DB変更イベントの検知 |
Cloud Tasks(v2) | スケジュール処理や遅延実行 |
開発とデプロイの流れ
# 1. プロジェクト設定
gcloud config set project [PROJECT_ID]
# 2. 関数ファイルの作成 (例: index.js / main.py)
# 3. デプロイ(例: HTTPトリガー)
gcloud functions deploy helloWorld \
--runtime python311 \
--trigger-http \
--allow-unauthenticated
# 4. 確認
gcloud functions describe helloWorld
ランタイム一覧(2025年現在)
-
Node.js(18, 20)
-
Python(3.10, 3.11)
-
Go(1.20, 1.21)
-
Java(11, 17)
-
.NET(6)
-
Ruby(3.0)
-
PHP(8.1)
Cloud Run や Cloud Functions for Firebase との違い
項目 | Cloud Functions | Cloud Run | Firebase Functions |
---|---|---|---|
実行モデル | 関数単位 | コンテナ単位 | Firebase向け関数 |
起動時間 | やや短い | 長め | Firebase統合 |
柔軟性 | △ | ◎(任意のコンテナ) | △(Firebase連携に特化) |
よくある落とし穴
-
Cold Start が発生する場合あり(特にリージョン初回呼び出し時)
-
ランタイムによっては 最大実行時間 や メモリ制限 に注意
-
長時間処理やバッチには不向き → Cloud Run や Workflows の検討を