このページでは、Blaze の従量制料金プランに基づく Cloud Functions のスケーラブルな使用量ベースの制限について詳しく説明します。これらの制限は、関数を Node.js 10 ランタイム環境にデプロイする Firebase プロジェクトに適用されます。
Blaze プランでは、大量の呼び出し、計算時間、およびインターネット トラフィックが無料で提供されます。ただし、関数のデプロイでは、関数のコンテナーに使用されるストレージ スペースに対して小規模な料金が発生します。詳細については、Firebase のよくある質問をご覧ください。
Google Cloud Functions の割り当てには、次の 3 つの領域が含まれます。
リソース制限
これらは、関数が消費できるリソースの合計量に影響します。
制限時間
これらは、実行できる時間に影響します。
レート制限
これらは、Cloud Functions API を呼び出す速度やリソースを使用できる速度に影響します。レート クォータは、「一定期間にわたるリソース」と考えることができます。
さまざまな種類の制限について、以下で詳しく説明します。 Cloud Functions (第 1 世代) と Cloud Functions (第 2 世代) の制限の違いは、該当する場合に記載されています。
リソース制限
リソース制限は、関数が消費できるリソースの合計量に影響します。リージョンの範囲はプロジェクトごとであり、各プロジェクトは独自の制限を維持します。
クォータ | 説明 | 制限 (第 1 世代) | 制限 (第 2 世代) | 増やすことができます | 範囲 |
---|---|---|---|---|---|
機能数 | リージョンごとにデプロイできる関数の総数 | 1,000 | 1,000 からデプロイされた Cloud Run サービスの数を引いた数 | いいえ | 地域ごと |
最大展開サイズ | 1 つの機能のデプロイの最大サイズ | ソース用に 100MB (圧縮)。 ソースとモジュール用に 500MB (非圧縮)。 | なし | いいえ | 関数ごと |
圧縮されていない HTTP リクエストの最大サイズ | HTTP 要求で HTTP 関数に送信されるデータ | 10MB | 32MB | いいえ | 呼び出しごと |
圧縮されていない HTTP 応答の最大サイズ | HTTP 応答で HTTP 関数から送信されたデータ | 10MB | ストリーミング応答用に 10MB。 非ストリーミング応答の場合は 32MB。 | いいえ | 呼び出しごと |
イベント ドリブン関数の最大イベント サイズ | イベントでバックグラウンド関数に送信されるデータ | 10MB | Eventarc イベント用に 512KB。 レガシー イベントの場合は 10 MB。 | いいえ | イベントごと |
最大関数メモリ | 各関数インスタンスが使用できるメモリ量 | 8GiB | 16GiB | いいえ | 関数ごと |
制限時間
クォータ | 説明 | 制限 (第 1 世代) | 制限 (第 2 世代) | 増やすことができます | 範囲 |
---|---|---|---|---|---|
最大機能期間 | 関数が強制終了されるまでに実行できる最大時間 | 540秒 | HTTP 関数の場合は 60 分。 イベント ドリブン機能の場合は 10 分。 | いいえ | 呼び出しごと |
レート制限
クォータ | 説明 | 制限 (第 1 世代) | 制限 (第 2 世代) | 増やすことができます | 範囲 |
---|---|---|---|---|---|
API 呼び出し (読み取り) | Cloud Functions API を介して関数を記述またはリストするための呼び出し | 100 秒あたり 5000 | 60 秒あたり 1200 | 第1世代のみ | プロジェクトごと(第 1 世代) 地域ごと(第 2 世代) |
API 呼び出し (書き込み) | Cloud Functions API を介して関数をデプロイまたは削除するための呼び出し | 100 秒あたり 80 回 | 60 秒あたり 60 | いいえ1 | プロジェクトごと(第 1 世代) 地域ごと(第 2 世代) |
API 呼び出し (CALL) | "call" API の呼び出し | 100 秒あたり 16 回 | なし | いいえ2 | プロジェクトごと |
スケーラビリティ
HTTP によって呼び出された Cloud Functions は、着信トラフィックを処理するために迅速にスケールアップしますが、バックグラウンド関数はより緩やかにスケールアップします。関数のスケールアップ能力は、次のようないくつかの要因によって決まります。
- 関数の実行が完了するまでにかかる時間 (実行時間の短い関数は、通常、より多くの同時要求を処理するためにスケールアップできます)。
- コールド スタート時に関数を初期化するのにかかる時間。
- 上記のレート制限。
- 関数のエラー率。
地域の負荷やデータセンターの容量などの一時的な要因。
バックグラウンド機能の追加クォータ
クォータ | 説明 | リミット | 増やすことができます | 範囲 |
---|---|---|---|---|
最大同時呼び出し | 1 つの関数の同時呼び出しの最大数 例:各イベントの処理に 100 秒かかる場合、呼び出しレートは平均で 1 秒あたり 30 に制限されます | 3,000 | いいえ | 関数ごと |
最大呼び出し率 | 1 つの関数で処理されるイベントの最大レート 例:イベントの処理に 100 ミリ秒かかる場合、平均で 100 のリクエストしか並列処理されない場合でも、呼び出しレートは 1 秒あたり 1000 に制限されます。 | 毎秒1000 | いいえ | 関数ごと |
最大同時イベント データ サイズ | 単一関数の同時呼び出しに対する着信イベントの最大合計サイズ 例:イベントのサイズが 1MB で、それらの処理に 10 秒かかる場合、最初の 10 個のイベントのいずれかの処理が完了するまで 11 番目のイベントは処理されないため、平均レートは 1 秒あたり 1 イベントになります。 | 10MB | いいえ | 関数ごと |
着信イベントの最大スループット | 単一関数への着信イベントの最大スループット 例:イベントのサイズが 1MB の場合、関数が 100 ミリ秒以内に終了したとしても、呼び出しレートは 1 秒あたり最大 10 回になります。 | 毎秒10MB | いいえ | 関数ごと |
割り当て制限に達したとき
関数が割り当てられたリソースをすべて消費すると、クォータが更新または増加されるまでリソースは使用できなくなります。これは、同じプロジェクト内の関数と他のすべての関数がそれまで機能しないことを意味する場合があります。リソースの 1 つがクォータを超えており、関数を実行できない場合、関数は HTTP 500 エラー コードを返します。
ここにリストされているデフォルトよりもクォータを増やすには、 Cloud Functions のクォータ ページに移動し、変更するクォータを選択してEDIT QUOTASをクリックし、プロンプトが表示されたらユーザー情報を入力して、選択した各クォータの新しいクォータ制限を入力します。
Firebase CLI デプロイの割り当て制限
Firebase CLI がデプロイする関数ごとに、次のタイプのレートと時間制限が影響を受けます。
- API 呼び出し (読み取り) - 関数の数に関係なく、デプロイごとに 1 回の呼び出し
- 制限: 100 秒あたり 5000
- API 呼び出し (WRITE) - 関数ごとに 1 回の呼び出し
- 制限: 100 秒あたり 80
Firebase CLI リファレンスも参照してください。