

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Step Function 中查看分布式 Map Run 执行
<a name="concepts-examine-map-run"></a>

Step Functions 控制台提供 *Map Run 详细信息* 页面，其中显示了与*分布式 Map 状态* 执行相关的所有信息。例如，您可以查看*分布式 Map 状态* 的执行、Map Run 的 ARN 以及由*分布式 Map 状态*启动的子工作流执行中处理项目的状态。您还可以查看所有子工作流执行的列表并访问其详细信息。如果[redriven](redrive-map-run.md)了 Map Run，您也将在 Map Run 执行摘要中看到redrive详细信息。

当您运行分布式模式下的 `Map` 状态时，Step Functions 会创建一个 Map Run 资源。Map Run 是指*分布式 Map 状态* 启动的一组子工作流执行，以及控制这些执行的运行时设置。Step Functions 会为 Map Run 分配一个 Amazon 资源名称 (ARN)。您可以在 Step Functions 控制台中查看 Map Run。您也可以调用 `[DescribeMapRun](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeMapRun.html)` API 操作。

Map Run 的子工作流程执行会将指标发送到 CloudWatch;。这些指标将有一个标有状态机的 ARN，格式如下：

 `arn:partition:states:region:account:stateMachine:stateMachineName/MapRunLabel or UUID` 

**Map Run 详细信息具有三个部分：Map Run 执行摘要**、**项目处理状态和执行列表**。

## Map Run 执行摘要
<a name="map-run-exec-summary"></a>

*Map Run 执行摘要* 提供*分布式 Map 状态* 的执行详细信息概览。

**详细信息**  
显示*分布式 Map 状态* 的执行状态、Map Run ARN 以及*分布式 Map 状态* 启动的子工作流程执行的类型。您可以查看其他配置，例如 Map Run 容许的故障阈值和为子工作流执行指定的最大并发数。

**输入和输出**  
显示*分布式 Map 状态* 接收的输入及其生成的相应输出。  
您可以查看输入数据集及其位置，以及应用于该数据集中各个数据项的输入筛选条件。如果您导出*分布式 Map 状态* 执行的输出，则此选项卡会显示包含执行结果的 Amazon S3 存储桶路径。如果未导出输出，则会将您指向父工作流的*执行详细信息* 页面，以便查看执行输出。

## 错误消息
<a name="map-run-error-banner"></a>

如果您的 Map Run 失败，*Map Run 详细信息* 页面会显示一条错误消息，说明失败的原因。

通过此错误消息上的**恢复**下拉按钮，您可以redrive由该地图运行启动的未成功的子工作流执行，或重新启动父工作流的执行。

请参阅[Redriving Map Run](redrive-map-run.md)以了解如何重新启动工作流程。

## 项目处理状态
<a name="map-run-item-process-status"></a>

**项目处理状态**部分显示在 Map Run 中处理的项目状态。例如，**待处理**表示子工作流执行尚未开始处理该项目。

项目状态取决于处理项目的子工作流执行的状态。如果子工作流执行失败、超时或用户取消执行，Step Functions 将不会收到有关该子工作流执行中项目处理结果的任何信息。该执行处理的所有项目都共享子工作流执行的状态。

例如，假设您要在两个子工作流执行中处理 100 个项目，其中每个执行都要处理一批 50 个项目。如果其中一个执行失败而另一个执行成功，则您将有 50 个成功的项目和 50 个失败的项目。

下表说明了所有项目可用的处理状态类型：


| Status | 说明 | 
| --- | --- | 
|  **待处理**  |  表示子工作流执行尚未开始处理的项目。如果 Map Run 在项目处理开始之前停止、失败或用户取消了执行，则该项目将保持**待处理**状态。 例如，如果 Map Run 失败并有 10 个未处理的项目，则这 10 个项目将保持**待处理**状态。  | 
|  **正在运行**  |  表示子工作流执行当前正在处理的项目。  | 
|  **已成功**  |  表示子工作流执行成功处理了该项目。 成功的子工作流执行不能有任何失败的项目。如果数据集中的一个项目在执行过程中失败，则整个子工作流的执行将失败。  | 
|  **已失败**  |  表示子工作流执行未能成功处理项目或超时。如果子工作流执行中处理的任何一个项目失败，则整个子工作流执行都将失败。 例如，假设一个处理 1000 个项目的子工作流执行。如果该数据集中的任何一个项目在执行期间失败，则 Step Functions 会将整个子工作流的执行视为失败。 [redrive](redrive-map-run.md) Map Run 时，处于此状态的项目计数会重置为 0。  | 
|  **已中止**  |  表示子工作流程执行已开始处理该项目，但要么用户取消了执行，要么是 Step Functions 因 Map Run 失败而停止了执行。 例如，假设一个**正在运行**的子工作流执行正在处理 50 个项目。如果 Map Run 由于失败或用户取消执行而停止，则子工作流执行和所有 50 个项目的状态都将更改为**已中止**。 如果您使用**快速**类型的子工作流执行，则无法停止执行。 当您[redrive](redrive-map-run.md)启动快速类型的子工作流执行的 Map Run 时，具有此状态的项目计数将重置为 0。这是因为 Express 子工作流程是使用 API 操作重新启动的，而不是使用 [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)API 操作。redriven  | 

## 执行列表
<a name="map-run-exec-table"></a>

**执行**部分列出了特定 Map Run 的所有子工作流执行。使用**按准确的执行名称搜索**字段可搜索特定的子工作流执行。要查看有关特定执行的详细信息，请从列表中选择子工作流执行，然后选择**查看详细信息**按钮，打开其[*执行详细信息*](concepts-view-execution-details.md) 页面。

您还可以使用 API 或列 AWS CLI 出由 Map Run 启动的子工作流程执行：
+ 使用 API，[ListExecutions](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListExecutions.html)使用设置为父工作流程的 ARN 的`mapRunArn`参数进行调用。
+ 使用 AWS CLI，将`map-run-arn`参数设置为父工作流程的 ARN 的调用[列表执行](https://docs.aws.amazon.com/cli/latest/reference/stepfunctions/list-executions.html)。

**重要**  
子工作流执行的保留政策为 90 天。  
 即使 *Distributed Map 状态*或父工作流的运行时间超过了保留期，较旧的已完成子工作流执行也不会显示在**执行**表中。如果使用 `ResultWriter （地图）` 将*分布式 Map 状态*输出导出到 Amazon S3 存储桶，则可以查看这些子工作流执行的详细信息，包括结果。

**提示**  
选择刷新按钮 可查看所有子工作流执行的最新列表。