コンソールへ移動

割り当てと上限

他の Firebase サービスと同様に、Cloud Functions for Firebase には無料の「Spark」プランと、開発や小規模なデプロイに適した割り当てを含む固定料金の「Flame」プランが用意されています。Spark と Flame の割り当てと上限の詳細については、料金プランをご覧ください。このページの残りの部分では、「Blaze」プランのスケーラブルな従量制の上限について詳しく説明します。

Google Cloud Functions の割り当てには次の 3 つの制限が設けられています。

  • リソース制限

    ファンクションの処理に使用できるリソースの合計量に影響します。

  • 時間制限

    実行できる時間の長さに影響します。

  • レート制限

    Cloud Functions API を呼び出すレートと、リソースを使用できるレートに影響します。レートの割り当ては、「一定時間あたりのリソース」と考えることができます。

上記の各制限について、以下で詳しく説明します。

リソース制限

割り当て 説明 上限 割り当ての追加 範囲
ファンクションの数 プロジェクトごとにデプロイできるファンクションの合計数 1,000 × プロジェクトごと
デプロイの最大サイズ 1 つのファンクションのデプロイの最大サイズ ソース用に 100 MB(圧縮)
ソースとモジュール用に 500 MB(非圧縮)
× ファンクションごと
HTTP リクエストの最大非圧縮サイズ HTTP リクエストで HTTP ファンクションに送信されるデータ 10 MB × 呼び出し 1 件ごと
HTTP レスポンスの最大非圧縮サイズ HTTP レスポンスで HTTP ファンクションから送信されるデータ 10 MB × 呼び出し 1 件ごと
バックグラウンド ファンクションの最大イベントサイズ イベントでバックグラウンド ファンクションに送信されるデータ 10 MB × イベントごと
最大ファンクション メモリ ファンクションが使用できるメモリ容量 2,048 MB × ファンクションごと

時間制限

割り当て 説明 上限 割り当ての追加 範囲
ファンクションの最大期間 強制終了されるまでファンクションを実行できる最大時間 540 秒 × 呼び出し 1 件ごと
ビルドの最大時間 すべてのビルドで許可されている最大時間。ファンクションのビルドはデプロイ時に発生します。 1 日あたり 120 分 プロジェクトごと

レート制限

割り当て 説明 上限 割り当ての追加 範囲
1 秒あたりのファンクション呼び出し数 1 秒あたりのファンクション呼び出しの回数。これを超過すると、次の割り当て期間まで関数が一時的にご利用いただけなくなります。 100 秒あたり 100,000,000 リージョンごと
GHz 秒 実行されるすべてのファンクションによって消費される GHz 秒の値。たとえば、256 MB のメモリを使用するファンクション(これは 400 MHz の CPU に相当します。コンピューティング時間の料金を参照)は、1 秒間実行されると 0.4 GHz 秒を消費します。ファンクションの実行時間は 100 ms の倍数に切り上げられます。 100 秒あたり 100,000 GHz 秒 リージョンごと
1 日あたりの GHz 秒 実行されるすべてのファンクションによって消費される 1 日あたりの GHz 秒の値。 1 日あたり 10,000,000 GHz 秒 プロジェクトごと
API 呼び出し(読み取り) Cloud Functions API 経由でファンクションを記述またはリスト表示する呼び出しの数 100 秒あたり 5,000 プロジェクトごと
API 呼び出し(書き込み) Cloud Functions API 経由でファンクションをデプロイまたは削除する呼び出しの数 100 秒あたり 80 × 1 プロジェクトごと
API 呼び出し(呼び出し) 「呼び出し」API への呼び出しの数 100 秒あたり 16 × 2 プロジェクトごと
受信ソケットデータ すべての実行中のファンクションへのデータ転送量。たとえば、Google Cloud Storage からファイルをダウンロードするファンクションで使用されるデータにはこの制限が適用されます。 100 秒あたり 10 GB リージョンごと
送信ソケットデータ すべての実行中のファンクションからのデータ転送量。HTTP レスポンス データは除きます。 100 秒あたり 10 GB リージョンごと
ソケット接続数 新たな送信ソケット接続を確立するための試行数 100 秒あたり 1,000,000 リージョンごと
DNS 解決数 DNS でドメイン名を解決するための試行数。キャッシュされた結果はこの割り当てではカウントされません。 100 秒あたり 40,000 プロジェクトごと

スケーラビリティ

HTTP によって呼び出される Cloud Functions は、目的の呼び出しレートに達するまで迅速にスケールさせることができますが、バックグラウンド関数のスケールはよりゆっくりとしたペースになります。関数のスケールアップが可能かどうかは、以下のような要因によって決定されます。

  • 関数の実行に必要な時間(一般に、短時間で完了する関数は、スケールアップすることによって同時に処理できる要求数を増やすことができます)。
  • コールド スタート時の関数の初期化に必要な時間。
  • 上記のレート制限
  • 関数のエラー率。
  • リージョン負荷やデータセンター容量などの一時的な要因。

以下で説明するように、バックグラウンド関数には追加の制限があります。これらの制限は HTTP 関数には適用されません。

バックグラウンド関数の追加割り当て

割り当て 説明 上限 割り当ての追加 範囲
最大同時呼び出し数 1 つの関数の最大同時呼び出し数
例: 1 件のイベントを処理するのに 100 秒かかる場合、呼び出しレートは平均で 1 秒あたり 10 件に制限されます。
1,000 × 関数ごと
最大呼び出しレート 1 個の関数によって処理されるイベントの最大レート
例: 1 件のイベントを処理するのに 100 ミリ秒かかる場合、平均で 100 件のリクエストのみが並列に処理される状況であっても、呼び出しレートは 1 秒あたり 1,000 件に制限されます。
1 秒あたり 1,000 × 関数ごと
同時イベントの最大データサイズ 1 個の関数の同時呼び出しの受信イベントの最大合計サイズ
例: イベントのサイズが 1 MB であり、その処理に 10 秒かかる場合、平均レートは 1 秒あたり 1 イベントとなります。これは、最初の 10 件のイベントのいずれかの処理が完了するまでは、11 番目のイベントが処理されないためです。
10 MB × 関数ごと
受信イベントの最大スループット 1 個の関数の受信イベントの最大スループット
例: イベントのサイズが 1 MB である場合、関数が 100 ミリ秒以内に完了したとしても、最大の呼び出しレートは 1 秒あたり 10 件になる場合があります。
1 秒あたり 10 MB × 関数ごと

割り当ての上限に達した場合

ファンクションが割り当てられたリソースをすべて消費すると、割り当てが更新されるか増えるまでそのリソースは使用できなくなります。つまり、それまでは、そのファンクションだけでなく同じプロジェクト内の他のすべてのファンクションが動作しなくなる可能性があります。いずれかのリソースが割り当てを超過したためにファンクションを実行できない場合、ファンクションは HTTP 500 のエラーコードを返します。

ここに記載されているデフォルトから割り当てを増やすには、Cloud Functions の [割り当て] ページに移動し、変更する割り当てを選択します。次に、[割り当てを編集] をクリックし、プロンプトが表示されたらユーザー情報を入力して、選択した各割り当ての新しい上限を入力します。

Firebase CLI デプロイの割り当て制限

Firebase CLI によってデプロイされるファンクションごとに、次のタイプのレートと時間制限が影響を受けます。

  • API 呼び出し(読み取り) - ファンクションの数に関係なく、デプロイごとに 1 回の呼び出し
    • 制限: 100 秒あたり 5,000 回
  • API 呼び出し(書き込み) - ファンクションあたり 1 回の呼び出し
    • 制限: 100 秒あたり 80 回
  • 最大ビルド時間 - サイズに応じて、ファンクションあたり数分間
    • 制限: 1 日あたり 120 分

Firebase CLI リファレンスもご覧ください。