本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用行内地图状态重复操作
本教程可帮助您开始在内联模式下使用Map
状态。您可以在工作流程中使用行内地图状态来重复执行操作。有关内联模式的更多信息,请参阅内联模式下的地图状态。
在本教程中,您将使用行内映射状态重复生成版本 4 的通用唯一标识符 (v4 UUID)。首先,在 Workflow Studio 中创建一个包含两个Pass状态和一个行内映射状态的工作流。然后,配置输入和输出,包括Map
状态的输入 JSON 数组。该Map
状态返回一个输出数组,其中包含为输入数组中每个项目生成的 v4 UUID。
目前,该Map
州的内联模式仅在商业区域可用。有关在工作流程中包含Map
状态的信息,请参阅映射。
第 1 步:创建工作流原型
在此步骤中,您将使用 Workflow Studio 为工作流程创建原型。Workflow Studio 是一个可视化工作流程设计器,可在Step Functions 控制台中使用。您将从 Flow 选项卡中选择所需的状态,然后使用 Workflow Studio 的拖放功能来创建工作流程原型。
打开 Step Functions 控制台
并选择创建状态机。 在 “选择创作方法” 页面上,保留 “以可视方式设计工作流程” 和 “标准” 的默认选择,然后选择 “下一步”。
在 Workflo w Studio 中,从 Flow 选项卡中拖动一个通过状态并将其拖放到标有 “将第一个状态拖到此处” 的空白状态。
拖动地图状态并将其放置在 Pass 状态下方。将地图状态重命名为
Map demo
。拖动 P ass 状态并将其放置在 Map 演示状态中。
将通过状态重命名为
Generate UUID
。
第 2 步:配置输入和输出
在此步骤中,您可以为工作流程原型中的所有状态配置输入和输出。首先,使用第一个 Pass 状态将一些固定数据注入工作流程。此 Pass 状态将这些数据作为输入传递到 Map 演示状态。在此输入中,您可以指定包含 Map 演示状态应遍历的输入数组的节点。然后定义地图演示状态应重复的步骤以生成 v4 UUID。最后,配置输出,使其在每次重复时返回。
在工作流程原型中选择第一个 Pass 状态。在 “输出” 选项卡中,在 “结果” 下输入以下内容:
{ "foo": "bar", "colors": [ "red", "green", "blue", "yellow", "white" ] }
选择 “通过” 状态,然后在 “配置” 选项卡中执行以下操作:
选择 “提供条目数组的路径”。
指定以下参考路径以选择包含输入数组的节点:
$.colors
选择 “生成 UUID 状态”,然后在 “输入” 选项卡中执行以下操作:
选择 “使用参数转换输入”。
输入以下 JSON 输入,为每个输入数组项生成 v4 UUID。您可以使用
States.UUID
内部函数生成 UUID。{ "uuid.$": "States.UUID()" }
对于 “生成 UUID” 状态,选择 “输出” 选项卡并执行以下操作:
选择 “使用筛选输出” OutputPath。
输入以下参考路径以选择包含输出数组项的 JSON 节点:
$.uuid
第 3 步:查看自动生成的亚马逊States语言定义
当您将状态从 Flow 面板拖放到画布上时,Workflow Studio 会自动实时编写工作流程的亚马逊状态语言定义。您可以根据需要编辑此定义。
-
(可选)在Inspector面板上选择定义并查看状态机定义。
以下示例显示了为您的工作流程自动生成的亚马逊州语言定义。
{ "Comment": "Using Map state in Inline mode", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "Map demo", "Result": { "foo": "bar", "colors": [ "red", "green", "blue", "yellow", "white" ] } }, "Map demo": { "Type": "Map", "ItemsPath": "$.colors", "ItemProcessor": { "ProcessorConfig": { "Mode": "INLINE" }, "StartAt": "Generate UUID", "States": { "Generate UUID": { "Type": "Pass", "End": true, "Parameters": { "uuid.$": "States.UUID()" }, "OutputPath": "$.uuid" } } }, "End": true } } }
-
选择 Next(下一步)。
-
在查看生成的代码页面上,查看您的工作流程的 Amazon States 语言定义。如果需要,您可以在 “定义” 下进行其他更改。
-
选择 Next(下一步)。
-
输入工作流的名称。例如,输入
InlineMapDemo
。 -
保留 “指定状态机设置” 页面上的所有默认选择,然后选择 “创建状态机”。
第 4 步:开始新的执行
状态机执行是指运行工作流程来执行任务的实例。
-
在InlineMapDemo页面上,选择开始执行。
-
(可选)要识别您的执行情况,可以在名称框中为其指定名称。默认情况下,Step Functions 会自动生成唯一的执行名称。
注意 Step Functions 允许您为包含非 ASCII 字符的状态机、执行、活动和标签创建名称。这些非 ASCII 名称不适用于亚马逊 CloudWatch。为确保您可以跟踪 CloudWatch 指标,请选择仅使用 ASCII 字符的名称。
-
选择 Start execution (开始执行)。
-
Step Functions 控制台将您定向到标有您的执行 ID 的页面。在此页面上,您可以查看新执行的结果。在 “详细信息” 下,您可以查看您的执行 ARN 和状态机的执行状态。要查看执行输入和输出 side-by-side,请选择执行输入和输出。在 “输出” 下,查看
Map
状态返回的输出数组。下面是输出数组的示例:[ "a85cbc7b-4e65-4ac2-97af-80ed504adc1d", "b05bca11-d481-414e-aa9a-88285ec6590d", "f42d59f7-bd32-480f-b270-caddb518ce2a", "15f18616-517d-4b69-b7c3-bf22222d2efd", "690bcfee-6d58-408c-a6b4-1995ccafdbd2" ]