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 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 分
インスタンスのサイズ 最大 8 GB の RAM(2 vCPU) 最大 16 GiB の RAM(4 vCPU)
同時実行 関数インスタンスごとに 1 件の同時リクエスト 関数インスタンスあたり最大 1,000 件の同時リクエスト

料金

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

Cloud Functions を使用している場合、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 トリガーを開発してデプロイできます。