检查分布式 Map 状态的 Map Run - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

检查分布式 Map 状态的 Map Run

当您运行分布式模式下的 Map 状态时,Step Functions 会创建一个 Map Run 资源。Map Run 是指分布式 Map 状态 启动的一组子工作流执行,以及控制这些执行的运行时设置。Step Functions 会为 Map Run 分配一个 Amazon 资源名称 (ARN)。您可以在 Step Functions 控制台中查看 Map Run。您也可以调用 DescribeMapRun API 操作。Map Run 还会向发送指标。 CloudWatch

Step Functions 控制台提供 Map Run 详细信息 页面,其中显示了与分布式 Map 状态 执行相关的所有信息。例如,您可以查看分布式 Map 状态 的执行、Map Run 的 ARN 以及由分布式 Map 状态启动的子工作流执行中处理项目的状态。您还可以查看所有子工作流执行的列表并访问其详细信息。此外,如果您 Map Run 经过了redriven,则可以在 Map Run 执行摘要部分中查看 Map Run 的redrive详细信息。例如,上次redrive时间。控制台采用控制面板格式显示此信息。

Map Run 详细信息 页面包含以下部分:


            Map Run 详细信息 页面显示三个部分:Map Run 执行摘要、项目处理状态 和执行列表。

Map Run 执行摘要

Map Run 执行摘要 部分显示在 Map Run详细信息 页面的顶部。本节为您提供分布式 Map 状态 的执行详细信息概览。此信息分为以下几个选项卡:

详细信息

显示分布式 Map 状态 的执行状态、Map Run ARN 和分布式 Map 状态 启动的子工作流执行类型等信息。您可以查看其他配置,例如 Map Run 容许的故障阈值和为子工作流执行指定的最大并发数。您也可以编辑这些配置。

输入和输出

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

错误消息

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

通过此错误消息上的恢复下拉按钮,您可以redrive由该地图运行启动的未成功的子工作流执行,或重新启动父工作流的执行。有关更多信息,请参阅Redriving Map Run


                Map Run 详细信息 页面上显示 Map Run 失败的错误消息。该错误消息还显示了从故障中恢复的选项。

项目处理状态

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

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

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

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

Status 描述

待处理

表示子工作流执行尚未开始处理的项目。如果 Map Run 在项目处理开始之前停止、失败或用户取消了执行,则该项目将保持待处理状态。

例如,如果 Map Run 失败,有 10 个项目待处理,则这 10 个项目将保持待处理状态。

正在运行

表示子工作流执行当前正在处理的项目。

已成功

表示子工作流执行成功处理了该项目。

成功的子工作流执行不能有任何失败的项目。如果数据集中的一个项目在执行过程中失败,则整个子工作流的执行将失败。

已失败

表示子工作流执行未能成功处理项目或超时。如果子工作流执行中处理的任何一个项目失败,则整个子工作流执行都将失败。

例如,假设一个处理 1000 个项目的子工作流执行。如果该数据集中的任何一个项目在执行期间失败,则 Step Functions 会将整个子工作流的执行视为失败。

redrive Map Run 时,处于此状态的项目计数会重置为 0。

已中止

表示子工作流程执行已开始处理该项目,但要么用户取消了执行,要么是 Step Functions 因 Map Run 失败而停止了执行。

例如,假设一个正在运行的子工作流执行正在处理 50 个项目。如果 Map Run 由于失败或用户取消执行而停止,则子工作流执行和所有 50 个项目的状态都将更改为已中止

如果您使用快速类型的子工作流执行,则无法停止执行。

当您redrive启动快速类型的子工作流执行的 Map Run 时,具有此状态的项目计数将重置为 0。这是因为 Express 子工作流程是使用 StartExecutionAPI 操作而不是重新启动的。redriven

执行清单

执行部分列出了特定 Map Run 的所有子工作流执行。使用按准确的执行名称搜索字段可搜索特定的子工作流执行。您也可以使用任何状态下拉列表按状态筛选子工作流执行历史记录。要查看有关特定执行的详细信息,请从列表中选择子工作流执行,然后选择查看详细信息按钮,打开其执行详细信息 页面。

重要

子工作流执行的保留政策为 90 天。超过此保留期的已完成子工作流执行不会显示在执行表格中。即使分布式 Map 状态或父工作流的运行时间持续超过保留期,也是如此。如果使用 ResultWriter分布式 Map 状态输出导出到 Amazon S3 存储桶,则可以查看这些子工作流执行的详细信息,包括结果。

提示

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