割り当て

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

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 ミリ秒の倍数に切り上げられます。 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 プロジェクトごと
送信ソケットデータ すべての実行中の関数からのデータ転送量。HTTP レスポンス データは除きます。 100 秒あたり 10 GB リージョンごと

スケーラビリティ

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 の [割り当て] ページに移動し、変更する割り当てを選択します。次に、[割り当てを編集] をクリックし、プロンプトが表示されたらユーザー情報を入力して、選択した各割り当ての新しい上限を入力します。