教程:了解如何使用Amazon Step FunctionsWorkflow Studio - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

教程:了解如何使用Amazon Step FunctionsWorkflow Studio

在本教程中,您将学习使用 Workflow Studio 的基础知识Amazon Step Functions. 在 Workflow Studio 中,您将创建一个包含多个状态的状态机,其中包括PassChoiceFailWait, 和Parallel. 您将使用拖放功能搜索、选择和配置这些状态。然后,您将查看工作流程自动生成的 Amazon State Language JSON 代码,退出 Workflow Studio,运行状态机,然后查看执行详细信息。

在本教程中,您还将学习如何更新状态机以及如何查看执行输出中的更改。最后,您将执行清理步骤并删除状态机。

完成本教程后,您将知道如何使用 Workflow Studio 创建和配置工作流程。你还将知道如何更新、执行和删除状态机。

注意

在开始之前,请确保完成本教程的先决条件.

第 1 步:导航到工作流工作室

  1. 登录到Step Functions Contions.

  2. 选择 Create state machine (创建状态机)

  3. 在存储库的选择创作方法页面上,选择直观设计工作流程.

  4. 适用于类型,请保留默认选项标准.

    Step Functions 有两种工作流程类型:标准Express. 这些类型决定了 Step Functions 如何执行任务,并与Amazon服务,并管理定价。创建状态机后,便无法再更改其工作流程类型。

    对于 side-by-side 两个工作流程的比较,类型,选择帮我决定.

  5. 选择 Next (下一步)。这将打开工作流工作室。

    
            工作流 Studio 界面。这些区域有:操作左侧的面板处于选中状态。

第 2 步:创建状态机

在 Workflow Studio 中,状态机是您的工作流程的图形化表示。您可以使用 Workflow Studio 来定义、配置和检查工作流程的各个步骤。

创建 状态机
  1. 在 Workflow Studio 中,从左侧的状态浏览器中,选择面板。然后,拖动Pass状态到标记为空状态将第一个州拖到这里.

  2. 拖动Choice状态来自面板然后将其放在Pass状态。

  3. 适用于州名称,请替换默认名称。在本教程中,请使用名称IsHelloWorldExample.

  4. 拖动另一个Pass状态并将其放到Choice状态。然后,拖动Fail州到另一个分支机构Choice状态。

  5. 选择Pass (1)状态,然后将其重命名为Yes. 将重命名为Fail状态为No.

  6. 指定Choice状态使用布尔变量的分支逻辑IsHelloWorldExample.

    如果IsHelloWorldExampleFalse,工作流程将进入No状态。否则,工作流程将继续其执行流程Yes州的分支机构。

    要定义分支逻辑,请执行以下操作:

    1. 选择Choice在画布上状态,然后在下面选项规则 选择 
                  edit Choice Rule
                中的规则 #1框来定义第一个c选择rule.

    2. 选择添加条件.

    3. 规则 #1 的条件对话框中,输入$.IsHelloWorldExample变量.

    4. 选择等于运算符.

    5. 选择布尔值常量选择,然后选择真的从下拉列表中。

    6. 选择保存条件.

    7. 确保然后下一个状态是:下拉列表有已选择。

    8. 选择添加新的选择规则,然后选择添加条件. 在规则 #2框中,定义第二个选项规则当IsHelloWorldExample通过重复子步骤 6.c 到 6.e,变量的值是错误的。对于步骤 6.e,请选择假的而不是真的.

    9. 规则 #2框中,选择No来自 的然后下一个状态是:下拉列表。

    10. 默认规则框中,单击 
                  edit
                    Choice
                    Rule
                定义默认值选项规则选择,然后选择从下拉列表中。

  7. 添加Wait之后的状态Yes Pass州,然后命名它Wait 3 sec. 然后,通过执行以下步骤将等待时间配置为三秒:

    1. UDR选项,请保留默认选项等待固定的时间间隔.

    2. UDRSeconds,确保输入秒数被选中,然后输入3在框中输入。

  8. 在结束后Wait 3 sec州,添加Parallel状态。再添加两个Pass州在其两个分支机构。命名为PassstateHello. 命名为第二个PassstateWorld.

    完成的工作流程如下所示:

    
            已完成的工作流IsHelloWorldExample状态机。

第 3 步:查看自动生成的亚马逊州语言定义

从中拖放状态时面板到画布上,Workflow Studio 会自动合成Amazon States Language实时定义工作流程。您可以根据需要编辑此定义。

  1. (可选)选择定义Inspector面板并查看状态机的工作流程。

    以下示例代码显示了自动生成的亚马逊状态语言定义IsHelloWorldExample状态机。这些区域有:Choice您在 Workflow Studio 中添加的状态用于根据您在步骤 2 中定义的分支逻辑.

    { "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample", "Comment": "A Pass state passes its input to its output, without performing work. Pass states are useful when constructing and debugging state machines." }, "IsHelloWorldExample": { "Type": "Choice", "Comment": "A Choice state adds branching logic to a state machine. Choice rules can implement 16 different comparison operators, and can be combined using And, Or, and Not\"", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" } ], "Default": "Yes" }, "No": { "Type": "Fail", "Cause": "Not Hello World" }, "Yes": { "Type": "Pass", "Next": "Wait 3 sec" }, "Wait 3 sec": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ] } } }
  2. 选择 Next(下一步)。

  3. 在存储库的查看生成的代码页面上,查看状态机的亚马逊州语言定义。如果需要,您可以在下面进行其他更改定义.

  4. 选择 Next(下一步)。

  5. 输入您的工作流程的名称。例如,输入 HelloWorld

  6. UDRPermissions (权限),选择创建新的 IAM 角色.

    创建状态机时,您可以选择一个 IAM 角色,该角色定义状态机在执行期间有权访问哪些资源。请选择以下任一选项:

    • 创建新的 IAM 角色— 当您希望 Step Functions 根据状态机的定义及其配置详细信息为您创建新的 IAM 角色时,请选择此选项。

    • 选择现有角色— 如果您之前为 Step Functions 创建了 IAM 角色,并且状态机具有正确的权限,请选择此选项。

    • 输入角色 ARN— 如果您知道要用于 Step Functions 的 IAM 角色的 ARN,请选择此选项。

  7. 选择 Create state machine (创建状态机)

第 4 步:启动新的执行

状态机执行是指运行工作流程以执行任务的实例。

  1. 在存储库的HelloWorld页面上,选择启动执行.

  2. (可选)要识别您的执行,您可以在名称。默认情况下,Step Functions 会自动生成唯一的执行名称。

    注意

    Step Functions 允许您创建包含非 ASCII 字符的状态机、执行和活动名称。这些非 ASCII 名称不适用于 Amazon CloudWatch。为了确保你可以跟踪 CloudWatch 指标,请选择仅使用 ASCII 字符的名称。

  3. 在执行中输入区域中,请以 JSON 格式输入执行的输入值。根据你的输入,IsHelloWorldExample变量决定将执行哪个状态机流。此时,请使用以下输入值:

    { "IsHelloWorldExample": true }
    注意

    虽然指定执行输入是可选的,但在本教程中,必须指定类似于上述示例输入的执行输入。此输入值在Choice说什么时候你跑状态机.

  4. 选择 Start execution (开始执行)

  5. Step Functions 控制台将您定向到标题为执行 ID 的页面。在此页面上,您可以查看新执行的结果。UDR详细信息,你可以看到你的执行 ARN 以及指示执行是否成功的状态。您还可以查看执行开始和结束的时间戳。要查看执行结果,请选择执行输出. 在本教程中,如果您输入的输入值为"IsHelloWorldExample": true,您应看到以下输出:

    { "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }

第 5 步:更新状态机

当你更新状态机时,你的更新是最终一致性. 在短时间后,所有新启动的执行都将反映您的状态机的更新定义和roleARN. 根据先前的定义,所有当前正在运行的执行都将运行到完成roleARN在他们更新之前。

在此步骤中,您将通过添加状态机Result字段中的字段Pass州命名World.

  1. 在标题为执行 ID 的页面上,选择编辑状态机.

  2. 在存储库的编辑HelloWorld页面,在定义选择区域,选择Workflow Studio.

  3. 选择Pass州命名World在画布上,然后选择输出.

  4. Result框中,输入"World has been updated!".

  5. 选择申请并退出以保存更改并返回到编辑HelloWorld页.

  6. (可选)在定义区域中,请查看您的工作流程的更新亚马逊状态语言定义。

    { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "Result": "World has been updated!", "End": true } } } ] }
  7. 选择 Save (保存),然后选择 Start execution (开始执行)

  8. Step Functions 控制台会显示以下消息:

    状态机的更改可能会影响它需要访问哪些资源。为确保状态机具有正确的权限,您可能需要编辑当前 IAM 角色、创建新角色或选择其他角色。

    此消息是标准消息。选择保存为.

  9. 选择 Start execution (开始执行)。在启动执行对话框中标识您的执行情况,然后在输入区域:

    { "IsHelloWorldExample": true }
  10. 选择启动执行

  11. (可选)在可视化工作流面板中,选择每个步骤以查看其详细信息、输入和输出详细信息步骤输入步骤输出选项卡。例如,在可视化工作流面板中,选择WorldStep (Step),然后选择步骤输出. 输出为世界已更新!

  12. (可选)要将工作流图导出到 SVG 或 PNG 文件,请选择Export.

第 6 步:清除

要删除状态机
  1. 在导航菜单中,选择状态机.

  2. 在存储库的状态机页面上,选择HelloWorld选择,然后选择Delete.

  3. Step Functions 控制台会提示您以下消息:

    您即将删除状态机。要继续吗?

    此消息是标准消息。选择删除状态机.

    如果删除成功,屏幕顶部将显示绿色状态栏。绿色状态栏告诉您状态机已标记为删除。当所有执行停止运行时,您的状态机将被移除。

要删除执行角色
  1. 打开角色页面对于 IAM。

  2. 选择 Step Functions 为您创建的 IAM 角色:Step 函数-HelloWorld-角色-示例.

  3. 选择 Delete role(删除角色)。

  4. 选择 Yes, delete(是,删除)。