在 Step Functions 中使用工作流工作室创建工作流程 - AWS Step Functions

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

在 Step Functions 中使用工作流工作室创建工作流程

学习使用 Step Functions Workflow Studio 创建、编辑和运行工作流。工作流程准备就绪后,您可以将其保存、运行和导出。

创建状态机

在 Workflow Studio 中,您可以选择入门模板或空白模板来创建工作流程。

入门模板是一个 ready-to-run 示例项目,它会自动创建工作流程原型和定义,并将项目所需的所有相关 AWS 资源部署到您的 AWS 账户项目中。您可以使用这些初学者模板按原样部署和运行,也可以使用工作流原型在其基础上进行构建。有关初学者模板的更多信息,请参阅 使用 Step Functions 的入门模板部署状态机

使用空白模板时,您可以使用 “设计” 或 “代码” 模式来创建自定义工作流程。

使用入门模板创建状态机

  1. 打开 Step Functions 控制台,然后选择创建状态机

  2. “选择模板” 对话框中,执行以下任一操作来选择示例项目:

    • Task Timer在 “按关键字搜索” 框中键入,然后从搜索结果中选择 “任务计时器”。

    • 浏览右侧窗格中全部下列出的示例项目,然后选择任务计时器

  3. 选择下一步继续。

  4. Step Functions 列出了您选择的示例项目中 AWS 服务 使用的。它还显示了示例项目的工作流图。将此项目部署到您的, AWS 账户 或者将其用作构建您自己的项目的起点。根据您想继续的方式,选择运行演示构建依据

  5. 选择使用模板继续进行选择。

  6. 请执行以下操作之一:

    • 如果您选择了在其上构建,Step Functions 将创建工作流原型,但不会在工作流定义中部署资源,因此您可以继续构建工作流程原型。

      在 Workflow Studio 中设计模式,你可以在工作流程原型中添加其他状态。或者,您可以切换到,使用集成代码编辑器从 Step Functions 控制台编辑状态机的 Amazon States Language (ASL) 定义。代码模式

      重要

      运行工作流程之前,您可能需要更新示例项目中使用的资源的占位符 Amazon 资源名称 (ARN)。

    • 如果您选择了 “运行演示”,Step Functions 将创建一个只读项目,该项目使用 AWS CloudFormation 模板将该模板中的 AWS 资源部署到您的 AWS 账户。您可以通过选择代码模式来查看状态机定义。

      选择 “部署并运行” 以部署项目并创建资源。

      请注意,部署最多可能需要 10 分钟才能创建资源和IAM权限。在部署资源时,您可以打开 AWS CloudFormation 堆栈 ID 链接以查看正在配置哪些资源。

      创建完所有资源后,您应该可以在控制台的 State machines 页面上看到该项目。

      重要

      CloudFormation 模板中使用的每项服务都可能收取标准费用。

使用空白模板创建工作流

当你想从一个干净的画布开始时,可以用空白模板创建一个工作流程。

  1. 打开 Step Functions 控制台

  2. 选择创建状态机

  3. 选择模板对话框中,选择空白

  4. 选择 “选择” 以在中打开 “工作流工作室” 设计模式

    现在,您可以开始在设计模式下设计工作流,或在代码模式下编写工作流定义。

  5. 选择配置可在配置模式下管理工作流程的配置。例如,为工作流提供名称并选择其类型。

设计工作流

当您知道要添加的州的名称后,请使用顶部的搜索框状态浏览器进行查找。否则,请在浏览器中查找所需的状态并将其添加到画布上。

您可以通过将状态拖动到工作流程中的其他位置来重新排序工作流程中的状态。当您将状态拖到画布上时,会出现一条线,显示该状态将插入到工作流程中的位置,如以下屏幕截图所示:

说明性屏幕截图显示了表示州目的地的蓝线。

将状态拖放到画布上后,其代码会自动生成并添加到工作流程定义中。要查看定义,请打开 Inspector 面板上的定义切换开关。您可以选择代码模式使用内置的代码编辑器编辑定义。

将状态拖放到画布上后,可以在右侧的 “检查器” 面板 面板中对其进行配置。此面板包含您在画布上置入的每种状态或API操作的 “配置”、“”、“输出” 和 “错误处理” 选项卡。您可以在配置选项卡中配置工作流中包含的状态。

例如,Lambda 调用API操作的 “配置” 选项卡提供了以下选项:

  • 州名:您可以使用自定义名称来标识州,也可以接受默认生成的名称。

  • API显示该州正在使用哪个API动作。

  • 集成类型:您可以选择用于调用其他服务的API操作的服务集成类型

  • 函数名称提供以下选项:

    • 输入函数名称:您可以输入您的函数名称或其名称ARN。

    • 运行时从状态输入中获取函数名称:您可以使用此选项根据指定的路径从状态输入中动态获取函数名称。

    • 选择函数名称:您可以直接从您的账户和区域的可用函数中进行选择。

  • 负载:您可以选择使用状态输入、JSON对象或无负载作为有效负载传递给 Lambda 函数。如果选择JSON,则可以包括静态值和从状态输入中选择的值。

  • (可选)某些状态可以选择等待任务完成等待回调。如果可用,您可以选择以下服务集成模式之一:

    • 未选择任何选项:Step Functions 将使用请求响应集成模式。Step Functi HTTP ons 将等待响应,然后进入下一个状态。Step Functions 不会等待作业完成。当没有可用选项时,状态将使用此模式。

    • 等待任务完成:Step Functions 将使用运行作业 (.sync) 集成模式。

    • 等待回调:Step Functions 将使用等待具有任务令牌的回调集成模式。

  • (可选)为了访问工作流程 AWS 账户 中不同配置的资源,Step Functions 提供跨账户访问权限IAM跨账户访问角色提供以下选项:

    • 提供IAM角色 ARN:指定包含相应资源访问权限的IAM角色。这些资源可在目标账户中使用,您可以 AWS 账户 向该账户进行跨账户调用。

    • ARN在运行时从状态输入中获取IAM角色:在包含角色的状态JSON输入中指定现有键值对的引用路径。IAM

  • 下一个状态用于选择下一个要过渡的状态。

  • (可选)注释字段不会影响工作流程,但您可以使用它来注释您的工作流程。

某些州将有其他通用配置选项。例如,Amazon ECS RunTask 状态配置包含一个填充了占位符值的API Parameters字段。对于此类状态,您可以将占位符值替换为适合您需求的配置。

删除状态

您可以按退格键,右键单击并选择 “删除状态”,或者在 “设计” 工具栏上选择 “删除”。

运行工作流

当您的工作流程准备就绪时,您可以从 Step Functions 控制台运行该工作流程并查看其执行情况。

在 Workflow Studio 中运行工作流
  1. 设计代码配置模式下,选择执行

    开始执行对话框将在新选项卡中打开。

  2. 启动执行对话框中,执行以下操作:

    1. (可选)要识别您的执行,您可以指定名称或使用默认生成的执行名称。

      注意

      Step Functions 接受状态机、执行、活动和包含非ASCII字符的标签的名称。由于带有非ASCII字符的名称不适用于亚马逊 CloudWatch,因此我们建议您仅使用字ASCII符,以便您可以跟踪中的指标。 CloudWatch

    2. (可选)在 “输入” 框中,按JSON格式输入输入值以运行您的工作流程。

    3. 选择启动执行

    4. Step Functions 控制台会将您引导到一个以您的执行 ID 为标题的页面。该页面被称为执行详细信息页面。在此页面上,您可以随着执行的进展或者在执行完成后查看执行结果。

      要查看执行结果,请在图表视图上选择各个状态,然后在步骤详细信息窗格中选择各个选项卡,分别查看每个状态的详细信息,包括输入、输出和定义。有关可在执行详细信息页面上查看的执行信息的详细信息,请参阅“执行详细信息”页面 – 界面概述

编辑工作流

您可以在 Workflow Studio 的设计模式中直观地编辑现有工作流。

Step Functions 控制台中,从状态机页面中选择要编辑的工作流程。工作流程在 Workflow Studio 的设计模式下打开。

您也可以在中编辑工作流程定义代码模式。选择 “代码” 按钮可在 Workflow Studio 中查看或编辑工作流定义。

注意

如果您在工作流中发现错误,则必须在设计模式下进行修复。如果工作流中存在任何错误,则无法切换到代码配置模式。

导出工作流

您可以导出工作流程 Amazon States Language (ASL) 的定义和工作流程图:

  1. Step Functions 控制台中选择您的工作流。

  2. 状态机详细信息页面上,选择编辑

  3. 选择操作下拉按钮,然后执行以下一项或两项操作:

    • 要将工作流程图表导出到SVG或PNG文件,请在导出图表下选择所需的格式。

    • 要将工作流定义导出为JSON或YAML文件,请在导出定义下选择所需的格式。

使用占位符创建工作流程原型

您可以在中使用 Workflow Studio 或 Workf low Studio Application Composer 来创建包含占位符资源的新工作流程的原型,这些占位符资源是尚未存在的命名资源。

要创建工作流程原型,请执行以下操作:

  1. 登录 Step Functions 控制台

  2. 选择创建状态机

  3. 选择模板对话框中,选择空白

  4. 选择 “选择” 以在中打开 “工作流工作室” 设计模式

  5. 打开 Workflow Studio 的设计模式。在 Workflow Studio 中设计您的工作流。要包含占位符资源,请执行以下操作:

    1. 选择要为其添加占位符资源的状态,然后在配置中:

      • 对于 Lambda 调用状态,选择函数名称,然后选择输入函数名称。您也可以输入函数的自定义名称。

      • 对于 Amazon SQS 发送消息状态,选择队列 URL,然后选择进入队列URL。输入占位符队列URL。

      • 对于 Amazon P SNS ublish 状态,从主题中选择一个主题ARN。

      • 对于操作下列出的所有其他状态,您可以使用默认配置。

      注意

      如果您在工作流中发现错误,则必须在设计模式下进行修复。如果工作流中存在任何错误,则无法切换到代码配置模式。

    2. (可选)要查看自动生成的工作流程ASL定义,请选择定义

    3. (可选)要在 Workflow Studio 中更新工作流定义,请选择代码按钮。

      注意

      如果您在工作流定义中看到错误,则必须在代码模式下对其进行修复。如果工作流定义中存在任何错误,则无法切换到设计配置模式。

  6. (可选)要编辑状态机名称,请选择默认状态机名称旁边的编辑图标,MyStateMachine然后在状态机名称框中指定名称

    您也可以切换到配置模式编辑默认状态机名称。

  7. 指定工作流设置,例如状态机类型及其执行角色。

  8. 选择创建

现在,您已经创建了一个新的工作流,其中包含可用于原型的占位符资源。您可以导出工作流定义和工作流图表。

  • 要将工作流程定义导出为JSON或YAML文件,请在 “设计” 或 “代码” 模式下,选择 “操作” 下拉按钮。然后,在导出定义下,选择要导出的格式。您可以使用此导出的定义作为使用 AWS Toolkit for Visual Studio Code 进行本地开发的起点。

  • 要将工作流程图表导出到SVG或PNG文件,请在 “设计” 或 “代码” 模式下,选择 “操作” 下拉按钮。然后,在导出定义下,选择所需的格式。