Cloud Functions バージョンの比較

Cloud Functions for Firebase には次の 2 つのバージョンがあります。

  • Cloud Functions(第 2 世代): 関数を Cloud Run にサービスとしてデプロイし、EventarcPub/Sub を使用してトリガーできます。
  • Cloud Functions(第 1 世代): イベント トリガーと構成が制限された関数の元のバージョン。

可能な限り、新しい関数には Cloud Functions(第 2 世代)を選択することをおすすめします。しかしながら、今後も Cloud Functions(第 1 世代)のサポートを継続する予定です。

このページでは、Cloud Functions で導入された機能と、2 つのプロダクト バージョンの相違点について説明します。

Cloud Functions(第 2 世代)

Cloud Functions は、Firebase の次世代の Functions as a Service です。Cloud Functions(第 2 世代)は Cloud RunEventarc 上に構築されており、以下のようにインフラストラクチャの強化と幅広いイベント カバレッジを Cloud Functions に提供しています。

  • Cloud Run でビルド: 関数は Cloud Build でビルドされ、デフォルトの Cloud Run 実行環境を使用して Cloud Run サービスとしてデプロイされます。これにより、Cloud Run サービスと同様に関数をカスタマイズできます。メモリ上限環境変数など、サービスの構成オプションについては、Cloud Run のドキュメントをご覧ください。
  • より長いリクエストの処理時間: Cloud Storage または BigQuery からの大規模なデータ ストリームの処理など、リクエスト時間が長いワークロードを実行します。
  • より大きなインスタンス サイズ: より大きなインメモリ ワークロード、コンピューティング負荷の高いワークロード、並列ワークロードを実行します。
  • 同時実行性の向上: 単一の関数インスタンスで複数の同時リクエストを処理し、コールド スタートを最小限に抑え、レイテンシを改善します。
  • トラフィック管理: 異なる関数のリビジョン間でトラフィックを分割するか、関数を以前のバージョンにロールバックできます。
  • Eventarc のインテグレーション: Eventarc トリガーがネイティブにサポートされ、Eventarc でサポートされている 90 以上のイベントソースすべてが Cloud Functions で利用可能になります。
  • 広範な CloudEvents のサポート: あらゆる言語のランタイムで業界標準の CloudEvents をサポートし、一貫したデベロッパー エクスペリエンスを提供します。

詳しくは、比較表をご覧ください。

Cloud FunctionsCloud Run にサービスとして関数をデプロイするため、Cloud FunctionsCloud Run とリソースの割り当ておよび上限を共有します。割り当てをご覧ください。

比較表

機能 Cloud Functions(第 1 世代) Cloud Functions
イメージ レジストリ Container Registry または Artifact Registry Artifact Registry のみ
リクエストのタイムアウト 最大 9 分
  • HTTP でトリガーされる関数の場合は最大 60 分
  • イベントによってトリガーされる関数の場合は最大 9 分
サービス アカウント* Google App Engine サービス アカウント(PROJECT_ID@appspot.gserviceaccount.com) Google Cloud のデフォルトのコンピューティング サービス アカウント(PROJECT_NUMBER-compute@developer.gserviceaccount.com)
インスタンスのサイズ 最大 8 GB の RAM(2 vCPU) 最大 16 GiB の RAM(4 vCPU)
同時実行 関数インスタンスごとに 1 件の同時リクエスト 関数インスタンスあたり最大 1,000 件の同時リクエスト

* これは、実行中の関数から Firebase API または Cloud API にアクセスする際に使用されるデフォルトのサービス アカウントです。これは、引数なしで初期化する際に Firebase Admin SDK で使用されます。

料金

料金については、Firebase の料金プランをご覧ください。

Cloud Functions に関連する費用は次の手順で確認できます。

  1. Google Cloud コンソールの Cloud Billing レポートページ に移動します。
  2. プロンプトが表示されたら、Google Cloud プロジェクトに関連付けられた請求先アカウントを選択します。
  3. [フィルタ] パネルの [ラベル] で、キー goog-managed-by と値 cloudfunctions を持つラベルフィルタを追加します。

制限事項

Cloud Functions for Firebase(第 2 世代)では、Analytics イベントはサポートされていません。

Cloud Functions for Firebase(第 2 世代)は認証ブロック イベントをサポートしていますが、第 1 世代と同じ基本 Authentication イベントのセットをサポートしていません。

第 1 世代の関数と第 2 世代の関数は同じソースファイルで共存できるため、第 2 世代の関数と一緒に第 1 世代の Analytics と基本的な Authentication トリガーを開発してデプロイできます。