Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

割り当てと上限

このページでは、従量課金制の Blaze 料金プランに基づいた、Cloud Functions のスケーラブルな使用量ベースの上限について詳しく説明します。これらの上限は、Node.js 10 ランタイム環境に関数をデプロイする Firebase プロジェクトに適用されます。

Blaze プランでは、十分な回数の呼び出し、十分な量のコンピューティング時間とインターネット トラフィックを無料で利用できます。ただし、関数のデプロイでは、関数のコンテナに使用されるストレージ容量に対して、少額の課金が発生します。詳しくは、Firebase のよくある質問をご覧ください。

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

  • リソースに関する上限

    関数の処理に使用できるリソースの合計量に影響します。

  • 時間に関する上限

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

  • レートに関する上限

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

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

リソースに関する上限

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

時間に関する上限

割り当て 説明 上限 上限引き上げ可否 範囲
関数の最大実行時間 強制終了されるまで関数を実行できる時間の上限 540 秒 × 呼び出しごと

レートに関する上限

割り当て 説明 上限 上限引き上げ可否 範囲
API 呼び出し(読み取り) Cloud Functions API 経由で関数の情報または一覧を取得する呼び出しの数 100 秒あたり 5,000 プロジェクトごと
API 呼び出し(書き込み) Cloud Functions API 経由で関数をデプロイまたは削除する呼び出しの数 100 秒あたり 80 × 1 プロジェクトごと
API 呼び出し(CALL) "call" API 呼び出しの数 100 秒あたり 16 × 2 プロジェクトごと

スケーラビリティ

HTTP によって呼び出される Cloud Functions の関数は、受信トラフィックを処理するために迅速にスケールアップしますが、バックグラウンド関数はゆっくりとしたペースでスケールアップします。関数のスケーラビリティは以下のような要因によって決まります。

  • 関数の実行に必要な時間(一般に、短時間で完了する関数は、スケールアップして処理できる同時リクエスト数を増やすことができます)。
  • コールド スタート時の関数の初期化に必要な時間。
  • 上記のレートに関する上限
  • 関数のエラー率。
  • リージョン負荷やデータセンター容量などの一時的な要因。
以下で説明するように、バックグラウンド関数には追加の上限があります。これらの上限は HTTP 関数には適用されません。

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

割り当て 説明 上限 上限引き上げ可否 範囲
最大同時呼び出し数 1 つの関数の最大同時呼び出し数
例: 1 件のイベントを処理するのに 100 秒かかる場合、呼び出しレートは平均で 1 秒あたり 30 件に制限されます。
3,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 回

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