使用 Workflow Studio - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Workflow Studio

学习使用 Step Functions Workflow Studio 创建、编辑和运行工作流。工作流准备就绪后,您可以将其导出。您也可以使用 Workflow Studio 进行快速设计原型。

创建工作流

在 Workflow Studio 中,您可以选择初学者模板,也可以选择空白模板从头开始创建工作流。对于空白模板,您可以使用设计代码模式来创建工作流。

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

使用初学者模板创建工作流

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

  2. 选择模板对话框中,执行以下任一操作来选择示例项目,例如任务计时器示例项目:

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

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

  3. 选择下一步继续。

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

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

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

    • 如果您选择构建依据,Step Functions 将为您选择的示例项目创建工作流原型。Step Functions 不会部署工作流定义中列出的资源。在设计模式下,从状态浏览器中拖放状态,继续构建工作流原型。或者切换到代码模式,更新工作流的 Amazon States Language (ASL) 定义。

      重要

      请记住,在运行工作流之前,为示例项目中使用的资源更新占位符 Amazon 资源名称 (ARN)。

    • 如果您选择了 “运行演示”,Step Functions 将创建一个只读示例项目,该项目使用 Amazon CloudFormation 模板将该模板中列出的 Amazon 资源部署到您的 Amazon Web Services 账户。

      提示

      要查看示例项目的状态机定义,请选择代码

      准备就绪后,选择部署并运行以部署示例项目并创建资源。

      注意

      创建这些资源和相关 IAM 权限可能需要长达 10 分钟的时间。在部署资源时,您可以打开 CloudFormation 堆栈 ID 链接以查看正在配置哪些资源。

      重要

      CloudFormation 模板中使用的每项服务均按标准收费。

使用空白模板创建工作流

  1. 打开 Step Functions 控制台

  2. 选择创建状态机

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

  4. 选择选择。这将在设计模式中打开 Workflow Studio。

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

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

设计工作流

如果您知道要添加的状态的名称,请使用顶部的搜索框,在设计模式操作状态浏览器选项卡中查找该状态。


          Step Functions Workflow Studio 搜索

如果不知道名称,请从状态浏览器中选择一个状态,然后将其拖放到画布上,放置在工作流中所需的位置。您还可以通过将状态拖到工作流中的其他位置,从而对工作流中的状态进行重新排序。将状态拖到画布上时,工作流中可以放置状态的位置会出现一条线。将状态拖放到画布上后,其代码会自动生成并添加到您的工作流定义中。要查看定义,请打开 Inspector 面板上的定义切换开关。要编辑工作流定义,请选择提供集成代码编辑器的代码模式


          Step Functions Workflow Studio 将状态添加到画布上

将状态拖放到画布上后,可以在右侧的 Inspector 面板中对其进行配置。此面板包含您在画布上放置的每个状态或 API 操作的配置输入输出错误处理选项卡。您可以在配置选项卡中配置工作流中包含的状态。例如,Lambda Invoke API 操作的配置选项卡包含以下选项:


          配置选项
  1. 状态名称用于标识状态。您可以自定义名称,也可以接受默认生成的名称。

  2. API 显示状态使用的 API 操作。

  3. 集成类型下拉列表提供用于在 Step Functions 中选择可用服务集成类型的选项。您选择的集成类型用于调用工作流程 Amazon Web Service 中特定的 API 操作。

  4. 函数名称提供了以下选项:

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

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

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

  5. 有效负载允许您从以下选项中进行选择:

    • 使用状态输入作为有效负载:您可以使用此选项将状态输入作为有效负载传递给 Lambda 函数。

    • 输入自己的有效负载:您可以使用此选项构造一个 JSON 对象,作为有效负载传递给 Lambda 函数。此 JSON 可以包含静态值和从状态输入中选择的值。

    • 无有效负载:如果不想向 Lambda 函数传递任何有效负载,则可以使用此选项。

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

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

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

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

  7. (可选)为了访问工作流程 Amazon Web Services 账户 中不同配置的资源,Step Functions 提供跨账户访问权限用于跨账户存取的 IAM 角色提供以下选项:

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

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

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

  9. (可选)注释字段可用于添加自己的注释。它不会影响工作流,但可以用来为您的工作流添加注释。

有些状态会有更通用的配置选项。例如,Amazon ECS RunTask 状态配置包含一个填充了占位符值的 API Parameters 字段。


          Amazon ECS RunTask 状态的配置选项

对于此类状态,您可以将占位符值替换为适合您需求的配置。

要删除状态,您可以使用退格键,右键单击并选择删除状态,或者在设计工具栏上选择删除


          删除状态

随着工作流的发展,其可能不适合画布。您可以:

  1. 使用侧面板上的控件调整面板大小或关闭面板。

  2. 使用画布顶部设计工具栏控件放大或缩小工作流图表。


          画布控件

运行工作流

使用 Workflow Studio 创建或编辑工作流后,您可以在 Step Functions 控制台中运行该工作流并查看其执行情况。

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

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

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

    1. (可选)要识别您的执行,您可以在名称框中为其指定一个名称。默认情况下,Step Functions 会自动生成一个唯一的执行名称。

      注意

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

    2. (可选)在输入框中,以 JSON 格式输入输入值以便运行工作流。

    3. 选择启动执行

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

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

编辑工作流

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

要编辑现有工作流,请执行以下操作:

  1. 打开 Step Functions 控制台

  2. 状态机页面上,选择要编辑的工作流。

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

  4. 工作流程在 Workflow Studio 的设计模式下打开。根据需要编辑工作流。

    
              在“设计”模式下编辑工作流
    注意

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

  5. (可选)选择代码按钮,在 Workflow Studio 中查看或编辑工作流定义。

    
              在“代码”模式下查看或编辑工作流
  6. 操作完成后,选择保存,保存更新后的工作流。

  7. (可选)要运行更新后的工作流,请选择执行开始执行对话框将在新选项卡中打开。

导出工作流

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

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

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

  3. (可选)您的工作流在 Workflow Studio 的设计模式下打开。在设计模式下编辑工作流或切换到代码模式。

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

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

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

创建工作流原型

您可以使用 Workflow Studio 创建包含占位符资源的新工作流原型。您也可以使用 Application Composer 中的 Workflow Studio 来构建工作流。要创建原型,请执行以下操作:

  1. 登录 Step Functions 控制台

  2. 选择创建状态机

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

  4. 选择选择。这将在设计模式中打开 Workflow Studio。

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

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

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

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

      • 对于“Amazon SNS 发布”状态,从主题中选择一个主题 ARN。

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

      注意

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

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

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

      注意

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

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

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

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

  8. 选择 创建

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

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

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