マップステート処理モード - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

マップステート処理モード

Step Functions には、データセット内の項目の処理方法に応じて、Map 状態に対して次の処理モードが用意されています。

  • インライン - 制限付き同時実行モード。このモードでは、Map 状態のそれぞれの反復は、Map 状態を含むワークフローのコンテキストで実行されます。Step Functions は、これらの反復の実行履歴を親ワークフローの実行履歴に追加します。デフォルトでは、Map 状態はインラインモードで実行されます。

    このモードでは、Map 状態は JSON 配列のみを入力として受け入れます。また、このモードでは最大 40 回の同時反復がサポートされています。

    詳細については「インラインモードでのマップステートの使用」を参照してください。

  • 分散 - 高い並列性を持つモード。このモードでは、Map 状態は各反復を子ワークフロー実行として実行します。これにより、最大 10,000 件という高い並列性を持つの並列子ワークフロー実行が可能になります。それぞれの子ワークフローの実行には、親ワークフローとは別の実行履歴があります。

    このモードでは、Map 状態は JSON 配列または CSV ファイルなどの Amazon S3 データソースを入力として受け入れることができます。

    詳細については「分散マップ状態の使用」を参照してください。

使用するモードは、データセット内の項目の処理方法によって異なります。ワークフローの実行履歴が 25,000 エントリを超えない場合や、同時反復が 40 回以上必要ない場合は、Map 状態をインラインモードで使用します。

次の条件を満たす大規模な並列ワークロードをオーケストレーションする必要がある場合は、並列モードモードの Map 状態を使用します。

  • データセットのサイズが 256 KB を超えています。

  • ワークフローの実行イベント履歴が 25,000 エントリを超えています。

  • 40 回以上の反復処理の同時実行が必要です。

インラインモードと分散モードの違い

次の表は、インラインモードと分散モードの違いを中心に示しています。

インラインモード 分散モード
Supported data sources

ワークフローの前のステップから渡された JSON 配列を入力として受け取ります。

入力として次のデータソースを受け取ります。

  • ワークフローの前のステップから渡された JSON 配列

  • 配列が含まれる Amazon S3 バケット内の JSON ファイル

  • Amazon S3 バケット内の CSV ファイル

  • Amazon S3 オブジェクトリスト

  • Amazon S3 インベントリ

Map iterations

このモードでは、Map 状態のそれぞれの反復は、Map 状態を含むワークフローのコンテキストで実行されます。Step Functions は、これらの反復の実行履歴を親ワークフローの実行履歴に追加します。

このモードでは、Map 状態は各反復を子ワークフロー実行として実行します。これにより、最大 10,000 件という高い並列性を持つの並列子ワークフロー実行が可能になります。それぞれの子ワークフローの実行には、親ワークフローとは別の実行履歴があります。

Maximum concurrency for parallel iterations

最大 40 回の反復を可能な限り同時に実行できます。

子ワークフローを最大 10,000 回並列で実行して、数百万件のデータ項目を一度に処理できます。

Input payload and event history sizes

入力ペイロードサイズを 256 KB、実行イベント履歴に 25,000 エントリという制限を適用します。

Map 状態は、Amazon S3 データソースから直接入力を読み取ることができるため、ペイロードサイズの制限を解決できます。

このモードでは、Map 状態よって開始された子ワークフローの実行が、親ワークフローの実行履歴とは別の独自の実行履歴を保持するため、実行履歴の制限を解決することもできます。

Monitoring and observability

ワークフローの実行履歴は、コンソールから、または GetExecutionHistory API アクションを呼び出して確認できます。

また、CloudWatch と X-Ray を使用して実行履歴を表示できます。

分散モードで Map 状態を実行すると、Step Functions はマップ実行リソースを作成します。マップ実行とは、分散マップ状態によって開始する一連の子ワークフロー実行を指します。マップ実行は、Step Functions コンソールで表示できます。DescribeMapRun API アクションを呼び出すこともできます。また、マップ実行は CloudWatch にメトリクスを送信します。

詳細については「分散マップ状態実行のマップ実行の検証」を参照してください。