For Each Parallel タスクを使用すると、メインの統合から他の統合(サブ統合)を実行できます。タスクの名前のとおり、サブ統合は並行して実行されます。
このタスクでは、API のトリガー ID を、実行する統合を識別するためのハンドルとして使用します。たとえば、API のトリガー ID を api_trigger/APITriggerX
として指定した場合、タスクは api_trigger/APITriggerX
トリガー ID を持つすべてのサブ統合を実行します。
サブ統合を実行した後、メイン統合でサブ統合のレスポンスを読み取ることもできます。このタスクは、サブ統合をメイン統合の依存関係として実行します。
始める前に
- 統合にユーザー管理のサービス アカウントが関連付けられていることを確認します。統合にユーザー管理のサービス アカウントが構成されていない場合は、デフォルトで、デフォルトのサービス アカウント(
service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
)が認証に使用されます。 - サービス アカウントに Application Integration の起動元 IAM ロールが付与されていることを確認します。サービス アカウントへのロールの付与については、サービス アカウントに対するアクセス権の管理をご覧ください。
For-Each Parallel タスクを構成する
For-Each Parallel タスクを構成するには:
- Apigee UI で、Apigee 組織を選択します。
- [Develop] > [Integrations] の順にクリックします。
- 既存のインテグレーションを選択するか、[Create Integration] をクリックして新しいインテグレーションを作成します。
新しいインテグレーションを作成する場合:
- [Create Integration] ダイアログで名前と説明を入力します。
- サポートされているリージョンのリストから、インテグレーションのリージョンを選択します。
- [Create] をクリックします。
インテグレーション デザイナーでインテグレーションが開きます。
- インテグレーション デザイナーのナビゲーション バーで、[+ Add a task/trigger] > [Tasks] の順にクリックして、使用可能なタスクのリストを表示します。
- 統合エディタで [For Each Parallel] タスク要素をクリックして配置します。
- デザイナーの [For-Each Parallel] タスク要素をクリックして、[For-Each Parallel] タスク構成ペインを開きます。
- 次の表に示すように、表示された項目はタスクの構成プロパティを使用して設定します。
プロパティへの変更は自動的に保存されます。
構成プロパティ
このセクションでは、For Each Parallel タスクの構成プロパティについて説明します。
入力プロパティ
プロパティ名 | パラメータ名 | データ型 | 説明 |
配列の選択 | List to iterate
|
String、Integer、Double、JSON 型の配列。 | サブ統合を実行する必要がある値のリスト。リスト内の値ごとに別々のサブ統合スレッドが動作し、すべてのスレッドが並列で動作します。 [Where to map individual array elements] を設定することで、反復値をサブ統合に渡すこともできます。 また、[Add additional subintegration input(s)] フィールドでメインの統合からサブ統合に追加の値を渡すこともできます。 |
サブ統合の詳細 | API Trigger ID
|
文字列 | 実行する公開済みサブ統合のトリガー ID。 この値は、サブ統合の API トリガーの [Trigger ID] フィールドで利用できます。 |
Execution strategy
|
なし |
SYNC: サブ統合を同期モードで実行します。このモードでは、メイン統合はサブ統合が完了するのを待ってから、ダウンストリーム タスクを続行します。 ASYNC: 非同期モードでサブ統合を実行します。このモードでは、メイン統合はサブ統合の完了を待ちません。サブ統合を呼び出した直後に、メイン統合がダウンストリームのタスクを実行します。 |
|
Run all integrations with this API Trigger ID |
なし | 同じ API のトリガー ID を持つすべての統合を実行します。
たとえば、統合 注: このオプションを選択すると、サブ統合のレスポンスはメイン統合で使用できなくなります。サブ統合のレスポンスを使用する場合は、[Run a single integration] オプションを選択します。 |
|
Run a single integration |
なし | [Integration name] フィールドで指定された統合のみを実行します。[Collect values from sub-integration output(s)] セクションを構成することで、サブ統合からレスポンスを使用できます。
|
|
各実行時 | Where to map individual array elements |
文字列 | 配列要素をマッピングする必要があるサブ統合入力変数の名前。配列要素はサブ統合入力変数に直接マッピングできます。単一のサブ統合を選択した場合は、プルダウン リストからサブ統合の入力変数を選択できます。 |
Map to additional sub-integration input(s) |
文字列 | 追加のサブ統合マッピング オプション。
このフィールドでは、Key-Value ペアの形式の値を指定します。ここで、キーはメイン統合の変数で、値はサブ統合の対応する入力変数です。 たとえば、メイン統合に |
|
Collect values from sub-integration output(s) |
文字列 | 実行方法が同期(SYNC)で、単一のサブ統合(単一統合を実行)が選択されている場合、サブ統合の出力は、現在の統合の配列変数に収集されます。
| |
実行設定 | Integrations to execute at a time (parallel)
|
整数 | サブ統合で同時実行可能な最大数。デフォルト値は 50 (最大 10000 )です。コホート内のすべてのサブ統合は、次のコホートのサブ統合の実行の前に完全に実行されます。 |
Ignore failures
|
ブール値 |
次のいずれかの値を指定できます。
|
ベスト プラクティス
For Each Parallel タスクを使用する場合は、次のベスト プラクティスをおすすめします。
- サブ統合による割り当て制限があれば、それに基づいてコホートサイズを設定します。
- 後で使用できるようサブ統合の出力を収集する場合、SYNC 実行方法を使用します。
- サブ統合が 2 分以上実行される可能性がある場合、ASYNC 実行方法を使用します。
For Each Parallel タスクに適用される使用量上限については、 使用量上限をご覧ください。
考慮事項
一般に、サブ統合の実行に 2 分以上かかる場合や、承認タスクなど、それ自体が非同期的なタスクに対して、SYNC 実行方法を使用しないようにします。
エラー処理方法
タスクのエラー処理方法では、一時的なエラーによってタスクが失敗した場合のアクションを指定します。エラー処理方式と、さまざまな種類のエラー処理方式の詳細については、エラー処理方法をご覧ください。