割り当てと制限

このドキュメントでは、Cloud Functions for Firebase の割り当て制限について説明します。

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 回も呼び出されなかった関数は、新しいイベントが発生してもトリガーされない状態になることがあります。この状態になった場合は、このような関数を再デプロイして処理を再開する必要があります。
注: この非アクティブ状態は、UI、CLI、または API には反映されません。
30 日 × 関数ごと

レート制限

割り当て 説明 制限 割り当ての追加 範囲
1 秒あたりの関数呼び出し数 1 秒あたりの関数呼び出しの回数。これを超過すると、次の割り当て期間まですべての関数が一時的に利用できなくなります。 100 秒あたり 1,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 プロジェクトごと
API 呼び出し(呼び出し) 「呼び出し」API への呼び出しの数 100 秒あたり 16 × プロジェクトごと
受信ソケットデータ すべての実行中の関数へのデータ転送量。たとえば、Google Cloud Storage からファイルをダウンロードする関数で使用されるデータにはこの制限が適用されます。 100 秒あたり 10 GB リージョンごと
送信ソケットデータ すべての実行中の関数からのデータ転送量。HTTP レスポンス データは除きます。 100 秒あたり 10 GB リージョンごと
ソケット接続数 新たな送信ソケット接続を確立するための試行数 100 秒あたり 1,000,000 リージョンごと
DNS 解決数 DNS でドメイン名を解決するための試行数。キャッシュされた結果はこの割り当てではカウントされません。 100 秒あたり 40,000 プロジェクトごと
バックグラウンド関数の最大同時呼び出し数 1 個の関数の最大同時呼び出し数(HTTP リクエストによってトリガーされるもの以外
例: 1 件のイベントを処理するのに 100 秒かかる場合、呼び出しレートは平均で 1 秒あたり 10 件に制限されます。
1,000 × 関数ごと
バックグラウンド関数の最大呼び出しレート 1 個の関数によって処理されるイベントの最大レート(HTTP リクエストによってトリガーされるもの以外
例: 1 件のイベントを処理するのに 100 ms かかる場合、平均で 100 件のリクエストのみが並列に処理される状況であっても、呼び出しレートは 1 秒あたり 1,000 件に制限されます。
1 秒あたり 1,000 × 関数ごと
バックグラウンド関数の同時イベントの最大データサイズ 1 個の関数の同時呼び出しの受信イベントの最大合計サイズ(HTTP リクエストによってトリガーされるもの以外
例: イベントのサイズが 1 MB であり、その処理に 10 秒かかる場合、平均レートは 1 秒あたり 1 イベントとなります。これは、最初の 10 件のイベントのいずれかの処理が完了するまでは、11 番目のイベントが処理されないためです。
10 MB × 関数ごと
バックグラウンド関数の受信イベントの最大スループット 1 個の関数の受信イベントの最大スループット(HTTP リクエストによってトリガーされるもの以外
例: イベントのサイズが 1 MB である場合、関数が 100 ms 以内に完了したとしても、最大の呼び出しレートは 1 秒あたり 10 になる場合があります。
1 秒あたり 10 MB × 関数ごと

スケーラビリティ

HTTP によって呼び出される Cloud Functions は、目的の呼び出しレートに達するまで迅速にスケールさせることができますが、バックグラウンド関数のスケールはよりゆっくりとしたペースになります。後者の場合、スケーラビリティは関数の実行時間に依存し、関数の実行時間が長くなるほど、スケールはやや遅くなります。

関数のタイプがどのようなものであっても、スケーラビリティの最大値は上記のレート制限によって制限されます。制限には、個々の関数に適用されるものと、プロジェクト全体に適用されるものがあり、個々の関数に適用されるものについては、複数の関数をデプロイすることで対応できます。

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

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

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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。