

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

# Map 状態のワークフロー
<a name="state-map"></a>

`Map` 状態を使用して、データセット内の各アイテムに対して一連のワークフローステップを実行します。`Map` 状態の反復は並列で実行されるため、データセットを迅速に処理できます。`Map` 状態では、JSON 配列、Amazon S3 オブジェクトのリスト、CSV ファイルなど、さまざまな入力タイプを使用できます。

Step Functions には、ワークフローで `Map` 状態を使用するための処理モードとして、*インライン*モードと*分散*モードの 2 種類の処理モードがあります。

**ヒント**  
`Map` 状態を使用するワークフローの例をデプロイするには、* AWS Step Functions ワークショップ*[の「選択とマップによるデータの配列の処理](https://catalog.workshops.aws/stepfunctions/choice-and-map)」を参照してください。

## マップステート処理モード
<a name="concepts-map-process-modes"></a>

Step Functions には、データセット内の項目の処理方法に応じて、`Map` 状態に対して次の処理モードが用意されています。
+ **インライン** - 制限付き同時実行モード。このモードでは、`Map` 状態のそれぞれの反復は、`Map` 状態を含むワークフローのコンテキストで実行されます。Step Functions は、これらの反復の実行履歴を親ワークフローの実行履歴に追加します。デフォルトでは、`Map` 状態はインラインモードで実行されます。

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

  詳細については、「[Step Functions ワークフローでインラインモードでマップ状態を使用する](state-map-inline.md)」を参照してください。
+ **分散** - 高い並列性を持つモード。このモードでは、`Map` 状態は各反復を子ワークフロー実行として実行します。これにより、最大 10,000 件という高い並列性を持つの並列子ワークフロー実行が可能になります。それぞれの子ワークフローの実行には、親ワークフローとは別の実行履歴があります。

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

  詳細については、「[分散モード](state-map-distributed.md)」を参照してください。

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

次の条件を満たす大規模な並列ワークロードをオーケストレーションする必要がある場合は、並列モードモードの `Map` 状態を使用します。
+ データセットのサイズが 256 KiB を超えている。
+ ワークフローの実行イベント履歴が 25,000 エントリを超えている。
+ 40 回を超える並行イテレーションの同時実行が必要。

### インラインモードと分散モードの違い
<a name="concepts-inline-vs-distributed-map"></a>

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


| インラインモード | 分散モード | 
| --- |--- |
| **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 KiB、実行イベント履歴に 25,000 エントリという制限を適用します。 | `Map` 状態は、Amazon S3 データソースから直接入力を読み取ることができるため、ペイロードサイズの制限を解決できます。 このモードでは、`Map` 状態よって開始された子ワークフローの実行が、親ワークフローの実行履歴とは別の独自の実行履歴を保持するため、実行履歴の制限を解決することもできます。 | 
| **Monitoring and observability** | 
| --- |
|  ワークフローの実行履歴は、コンソールから、または `[GetExecutionHistory](https://docs.aws.amazon.com/step-functions/latest/apireference/API_GetExecutionHistory.html)` API アクションを呼び出して確認できます。 また、CloudWatch と X-Ray を使用して実行履歴を表示できます。  | 分散モードで `Map` 状態を実行すると、Step Functions はマップ実行リソースを作成します。マップ実行とは、*分散マップ状態*によって開始する一連の子ワークフロー実行を指します。マップ実行は、Step Functions コンソールで表示できます。`[DescribeMapRun](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeMapRun.html)` API アクションを呼び出すこともできます。また、マップ実行は CloudWatch にメトリクスを送信します。 詳細については、「[Step Functions での分散マップ実行の表示](concepts-examine-map-run.md)」を参照してください。 | 