割り当てと上限

このドキュメントでは、Workflows に適用される割り当てと上限の一覧を示します。

Google Cloud では、割り当てを使用して公平性を確保し、リソースの使用量と可用性の急増を抑えます。割り当ては、Google Cloud プロジェクトで使用できる Google Cloud リソースの量を制限します。割り当ては、ハードウェア、ソフトウェア、ネットワーク コンポーネントなど、さまざまなリソースタイプに適用されます。たとえば、割り当てによって、サービスへの API 呼び出しの数、プロジェクトで同時に使用されるロードバランサの数、作成可能なプロジェクトの数を制限できます。割り当てを適用することで、サービスの過負荷を防ぎ、Google Cloud ユーザーのコミュニティを保護します。割り当ては、自組織で使用している Google Cloud リソースの管理にも役立ちます。

Cloud Quotas システムは次のことを行います。

  • Google Cloud のプロダクトとサービスの消費量をモニタリングする
  • これらのリソースの消費量を制限する
  • 割り当て値の変更をリクエストする手段を提供する

ほとんどの場合、割り当ての許容量を超えるリソースを消費しようとすると、システムによってリソースへのアクセスがブロックされ、実行しようとしているタスクは失敗します。

割り当ては通常、Google Cloud プロジェクト レベルで適用されます。あるプロジェクトでリソースを使用しても、別のプロジェクトで使用可能な割り当てに影響することはありません。Google Cloud プロジェクト内では、すべてのアプリケーションと IP アドレスで割り当てが共有されます。

Workflows リソースには上限もあります。これらの上限は、割り当てシステムとは無関係です。上限は、特に明記されていない限り、変更できません。

割り当て

Workflows では、各 Google Cloud プロジェクトに対して次の割り当てが適用されます。これらの割り当ては増減できます。

割り当て 説明
ワークフローの合計数 プロジェクトごとにデプロイできるワークフローの最大数 10,000
同時実行数

1 リージョン、1 プロジェクトあたりのアクティブなワークフロー実行の最大数。同時実行とは、開始しているものの、まだ完了していない、または失敗した実行を指します。これには、コールバックで待機している実行やスリープ中の実行も含まれます。

割り当てに達し、実行バックログが有効になっている場合、実行は QUEUED 状態で作成されます。実行バックログが無効になっている場合、またはバックログに記録された実行の割り当てに達した場合、新しい実行は HTTP 429 Too many requests ステータス コードで失敗します。

10,000
バックログに記録された実行 1 リージョン、1 プロジェクトあたりのバックログに記録されたワークフロー実行の最大数。

詳細については、実行バックログを管理するをご覧ください。

100,000
Workflow API のリクエスト プロジェクト内のすべてのワークフローからの API リクエストの最大数(createupdatelistgetdelete)(ロケーションごとに 1 分あたり) 1,200
Execution API の get リクエスト プロジェクト内のすべてのワークフローから get ワークフロー実行へのリクエストの最大数(1 分あたりでロケーションあたり) 6,000
Execution API の list リクエスト プロジェクト内のすべてのワークフローから list ワークフロー実行へのリクエストの最大数(ロケーションごとに 1 分あたり) 1,200
Execution API の write リクエスト すべてのワークフローからの create および cancel ワークフロー実行(Eventarc でトリガーされる実行を含む)の最大数(ロケーションごとに 1 分あたり)

Eventarc でトリガーされる実行がこの最大数を超えた場合、Eventarc 再試行ポリシーに従ってイベントが再試行されます。

6,000
Execution API の get ステップ エントリ リクエスト ワークフローの実行から get ステップ エントリへのリクエストの最大数(ロケーションごとに 1 分あたり) 6,000
Execution API の list ステップ エントリ リクエスト ワークフローの実行から list ステップ エントリへのリクエストの最大数(ロケーションごとに 1 分あたり) 1,200
Execution API の export データ リクエスト ワークフロー実行からの export data へのリクエストの最大数(ロケーションごとに 1 分あたり) 10
コールバック エンドポイントへの HTTP リクエスト プロジェクト内のすべてのワークフローから実行リソースに対して行われた SendHttpCallback API リクエストの最大数(ロケーションごとに 1 分あたり) 1,500
Execution API の list コールバック リクエスト ワークフロー実行からの list コールバックへのリクエストの最大数(ロケーションごとに 1 分あたり) 300

割り当て増加リクエスト

割り当ての増減を行うには Google Cloud コンソールを使用します。詳しくは、割り当ての増加をリクエストするをご覧ください。

ステップ上限

Workflows では、各ワークフローに次のステップ上限が適用されます。これらの上限の変更をリクエストすることはできません。

上限 説明
ステップあたりの割り当ての数 1 つのステップで実行できる割り当ての最大数 50
スイッチあたりの条件 1 つのスイッチ ブロックで評価できる条件の最大数 50
コールスタックの深さの最大数 呼び出し元関数の最大レベル数。たとえば、サブワークフローがそれ自体または別のサブワークフローを呼び出す場合や、他の関数を呼び出す標準ライブラリ関数呼び出しなどです。 20
最小ステップ数 1 つのワークフロー内のステップの最小数 1
最大ステップ数 1 回のワークフローで実行できるステップの最大数 100,000

並列ステップの上限

Workflows では、並列ステップを使用する場合に、次の上限が適用されます。 これらの上限の変更をリクエストすることはできません。

上限 説明
ステップあたりのブランチ数 並列ステップでサポートされるブランチの最大数 10
並列処理の深度 並列ステップをネストできる最大深度 2
並列ブランチと並列イテレーション

1 つのワークフロー実行内で同時に実行できるブランチとイテレーションの最大数。それ以上のブランチとイテレーションは自動的にキューに入れられ、1 つ以上の実行中のスレッドが完了するまで待機させられます。

合計スレッド数に上限はありません。ただし、その他のすべての上限は適用されます。

20
並列ステップ内でキャッチされなかった例外 ワークフローの実行中に発生する可能性がある未処理の例外の最大数(合計) 100

リソースの上限

Workflows では、次の使用量上限が適用されます。これらの上限の変更をリクエストすることはできません。

上限 説明
ソースコード サイズ ワークフローを定義する YAML または JSON ファイルの最大サイズ 128 KB
レスポンス サイズ HTTP レスポンスの最大サイズ(変数に保存する場合、変数のメモリ上限が適用されます) 2 MB
式の長さ 1 つのの最大文字数 400 文字
データサイズ 変数、引数、イベントの最大累積サイズ: 512 KB
  • 特定のワークフローの 1 回の実行において定義するすべての変数に使えるメモリの最大量
  • ワークフローの実行時に渡すことができる引数の最大サイズ
  • イベントでワークフロー実行をトリガーする際に渡すことができる Eventarc ペイロードの最大サイズ
UTF-8 エンコードを使用した文字列の最大長さ(バイト単位) 256 KB
環境変数 ユーザー定義の環境変数定義文字列(KEY=value)の最大サイズ。最大で 20 個の変数を定義できます。 4 KiB
実行時間 ワークフロー実行の最長時間(開始時刻から終了時刻まで)。この上限を超えると、ワークフローはタイムアウト エラーで終了します。 1 年
実行の保持 実行の履歴と結果の最大保持期間(ワークフロー実行の完了後) 90 日
重複除去ウィンドウ イベントでワークフローの実行をトリガーするときに処理が 1 回のみ行われるようにするための重複除去期間 24 時間