本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Workflow Studio
学习使用 Step Functions Workflow Studio 创建、编辑和运行工作流。工作流准备就绪后,您可以将其导出。您也可以使用 Workflow Studio 进行快速设计原型。
创建工作流
在 Workflow Studio 中,您可以选择初学者模板,也可以选择空白模板从头开始创建工作流。对于空白模板,您可以使用设计或代码模式来创建工作流。
入门模板是一个 ready-to-run 示例项目,它会自动创建工作流程 proptotype 和定义,并将项目所需的所有相关 Amazon 资源部署到您的。 Amazon Web Services 账户您可以使用这些初学者模板按原样部署和运行,也可以使用工作流原型在其基础上进行构建。有关初学者模板的更多信息,请参阅 Step Functions 的示例项目。
使用初学者模板创建工作流
-
打开 Step Functions 控制台
,然后选择创建状态机。 -
在选择模板对话框中,执行以下任一操作来选择示例项目,例如任务计时器示例项目:
-
在“按关键字搜索”框中键入
Task Timer
,然后从返回的搜索结果中选择任务计时器。 -
浏览右侧窗格中全部下列出的示例项目,然后选择任务计时器。
-
-
选择下一步继续。
-
Step Functions 列出了您选择的示例项目中 Amazon Web Services 使用的。它还显示了示例项目的工作流图。将此项目部署到您的, Amazon Web Services 账户 或者将其用作构建您自己的项目的起点。根据您想继续的方式,选择运行演示或构建依据。
-
选择使用模板继续进行选择。
-
请执行以下操作之一:
-
如果您选择构建依据,Step Functions 将为您选择的示例项目创建工作流原型。Step Functions 不会部署工作流定义中列出的资源。在设计模式下,从状态浏览器中拖放状态,继续构建工作流原型。或者切换到代码模式,更新工作流的 Amazon States Language (ASL) 定义。
重要
请记住,在运行工作流之前,为示例项目中使用的资源更新占位符 Amazon 资源名称 (ARN)。
-
如果您选择了 “运行演示”,Step Functions 将创建一个只读示例项目,该项目使用 Amazon CloudFormation 模板将该模板中列出的 Amazon 资源部署到您的 Amazon Web Services 账户。
提示
要查看示例项目的状态机定义,请选择代码。
准备就绪后,选择部署并运行以部署示例项目并创建资源。
注意
创建这些资源和相关 IAM 权限可能需要长达 10 分钟的时间。在部署资源时,您可以打开 CloudFormation 堆栈 ID 链接以查看正在配置哪些资源。
重要
CloudFormation 模板中使用的每项服务均按标准收费。
-
使用空白模板创建工作流
设计工作流
如果您知道要添加的状态的名称,请使用顶部的搜索框,在设计模式的操作和状态浏览器流选项卡中查找该状态。
如果不知道名称,请从状态浏览器中选择一个状态,然后将其拖放到画布上,放置在工作流中所需的位置。您还可以通过将状态拖到工作流中的其他位置,从而对工作流中的状态进行重新排序。将状态拖到画布上时,工作流中可以放置状态的位置会出现一条线。将状态拖放到画布上后,其代码会自动生成并添加到您的工作流定义中。要查看定义,请打开 Inspector 面板上的定义切换开关。要编辑工作流定义,请选择提供集成代码编辑器的代码模式。
将状态拖放到画布上后,可以在右侧的 Inspector 面板中对其进行配置。此面板包含您在画布上放置的每个状态或 API 操作的配置、输入、输出和错误处理选项卡。您可以在配置选项卡中配置工作流中包含的状态。例如,Lambda Invoke API 操作的配置选项卡包含以下选项:
-
状态名称用于标识状态。您可以自定义名称,也可以接受默认生成的名称。
-
API 显示状态使用的 API 操作。
-
集成类型下拉列表提供用于在 Step Functions 中选择可用服务集成类型的选项。您选择的集成类型用于调用工作流程 Amazon Web Service 中特定的 API 操作。
-
函数名称提供了以下选项:
-
输入函数名称:您可以输入函数名称或其 ARN。
-
运行时从状态输入中获取函数名称:您可以使用此选项根据指定的路径从状态输入中动态获取函数名称。
-
选择函数名称:您可以直接从您的账户和区域的可用函数中进行选择。
-
-
有效负载允许您从以下选项中进行选择:
-
使用状态输入作为有效负载:您可以使用此选项将状态输入作为有效负载传递给 Lambda 函数。
-
输入自己的有效负载:您可以使用此选项构造一个 JSON 对象,作为有效负载传递给 Lambda 函数。此 JSON 可以包含静态值和从状态输入中选择的值。
-
无有效负载:如果不想向 Lambda 函数传递任何有效负载,则可以使用此选项。
-
-
(可选)某些状态可以选择等待任务完成或等待回调。如果可用,这些选项可选择以下服务集成模式之一:
-
未选择任何选项:Step Functions 将使用请求响应集成模式。Step Functions 将等待 HTTP 响应,然后进入下一个状态。Step Functions 不会等待作业完成。当没有可用选项时,状态将使用此模式。
-
等待任务完成:Step Functions 将使用运行作业 (.sync) 集成模式。
-
等待回调:Step Functions 将使用等待具有任务令牌的回调集成模式。
-
-
(可选)为了访问工作流程 Amazon Web Services 账户 中不同配置的资源,Step Functions 提供跨账户访问权限。用于跨账户存取的 IAM 角色提供以下选项:
-
提供 IAM 角色 ARN:指定包含相应资源访问权限的 IAM 角色。这些资源可在目标账户中使用,您可以 Amazon Web Services 账户 向该账户进行跨账户调用。
-
在运行时从状态输入中获取 IAM 角色 ARN:在包含 IAM 角色的状态 JSON 输入中指定一个指向现有键值对的引用路径。
-
-
下一个状态用于选择下一个要过渡的状态。
-
(可选)注释字段可用于添加自己的注释。它不会影响工作流,但可以用来为您的工作流添加注释。
有些状态会有更通用的配置选项。例如,Amazon ECS RunTask
状态配置包含一个填充了占位符值的 API Parameters
字段。
对于此类状态,您可以将占位符值替换为适合您需求的配置。
要删除状态,您可以使用退格键,右键单击并选择删除状态,或者在设计工具栏上选择删除。
随着工作流的发展,其可能不适合画布。您可以:
-
使用侧面板上的控件调整面板大小或关闭面板。
-
使用画布顶部设计工具栏控件放大或缩小工作流图表。
运行工作流
使用 Workflow Studio 创建或编辑工作流后,您可以在 Step Functions 控制台
在 Workflow Studio 中运行工作流
-
在设计、代码或配置模式下,选择执行。
开始执行对话框将在新选项卡中打开。
-
在启动执行对话框中,执行以下操作:
-
(可选)要识别您的执行,您可以在名称框中为其指定一个名称。默认情况下,Step Functions 会自动生成一个唯一的执行名称。
注意
Step Functions 允许您为状态机、执行、活动、速率控制和包含非 ASCII 字符的标签创建名称。这些非 ASCII 名称不适用于亚马逊。 CloudWatch为确保您可以跟踪 CloudWatch 指标,请选择仅使用 ASCII 字符的名称。
-
(可选)在输入框中,以 JSON 格式输入输入值以便运行工作流。
-
选择启动执行。
-
Step Functions 控制台会将您引导到一个以您的执行 ID 为标题的页面。该页面被称为执行详细信息页面。在此页面上,您可以随着执行的进展或者在执行完成后查看执行结果。
要查看执行结果,请在图表视图上选择各个状态,然后在步骤详细信息窗格中选择各个选项卡,分别查看每个状态的详细信息,包括输入、输出和定义。有关可在执行详细信息页面上查看的执行信息的详细信息,请参阅“执行详细信息”页面 – 界面概述。
-
编辑工作流
您可以在 Workflow Studio 的设计模式中直观地编辑现有工作流。您也可以在 Workflow Studio 的代码模式中编辑工作流定义。
要编辑现有工作流,请执行以下操作:
-
在状态机页面上,选择要编辑的工作流。
-
在状态机详细信息页面上,选择编辑。
-
工作流程在 Workflow Studio 的设计模式下打开。根据需要编辑工作流。
注意
如果您在工作流中发现错误,则必须在设计模式下进行修复。如果工作流中存在任何错误,则无法切换到代码或配置模式。
-
(可选)选择代码按钮,在 Workflow Studio 中查看或编辑工作流定义。
-
操作完成后,选择保存,保存更新后的工作流。
-
(可选)要运行更新后的工作流,请选择执行。开始执行对话框将在新选项卡中打开。
导出工作流
您可以导出工作流程 Amazon States Language (ASL) 的定义和工作流图:
-
在 Step Functions 控制台
中选择您的工作流。 -
在状态机详细信息页面上,选择编辑。
-
(可选)您的工作流在 Workflow Studio 的设计模式下打开。在设计模式下编辑工作流或切换到代码模式。
-
选择操作下拉按钮,然后执行以下一项或两项操作:
-
要将工作流图表导出到 SVG 或 PNG 文件,请在导出图表下选择所需的格式。
-
要将工作流定义导出为 JSON 或 YAML 文件,请在导出定义下选择所需的格式。
-
创建工作流原型
您可以使用 Workflow Studio 创建包含占位符资源的新工作流原型。您也可以使用 Application Composer 中的 Workflow Studio 来构建工作流。要创建原型,请执行以下操作:
-
选择创建状态机。
-
在 选择模板对话框中,选择空白。
-
选择选择。这将在设计模式中打开 Workflow Studio。
-
打开 Workflow Studio 的设计模式。在 Workflow Studio 中设计您的工作流。要包含占位符资源,请执行以下操作:
-
选择要为其添加占位符资源的状态,然后在配置中:
-
对于 Lambda 调用状态,选择函数名称,然后选择输入函数名称。您也可以输入函数的自定义名称。
-
对于“Amazon SQS 发送消息”状态,选择队列 URL,然后选择输入队列 URL。输入占位符队列 URL。
-
对于“Amazon SNS 发布”状态,从主题中选择一个主题 ARN。
-
对于操作下列出的所有其他状态,您可以使用默认配置。
注意
如果您在工作流中发现错误,则必须在设计模式下进行修复。如果工作流中存在任何错误,则无法切换到代码或配置模式。
-
-
(可选)要查看自动生成的工作流 ASL 定义,请选择定义。
-
(可选)要在 Workflow Studio 中更新工作流定义,请选择代码按钮。
注意
如果您在工作流定义中看到错误,则必须在代码模式下对其进行修复。如果工作流定义中存在任何错误,则无法切换到设计或配置模式。
-
-
(可选)要编辑状态机名称,请选择默认状态机名称旁边的编辑图标,MyStateMachine然后在状态机名称框中指定名称。
您也可以切换到配置模式编辑默认状态机名称。
-
指定工作流设置,例如状态机类型及其执行角色。
-
选择 创建。
现在,您已经创建了一个新的工作流,其中包含可用于原型的占位符资源。您可以导出工作流定义和工作流图表。
-
要将工作流定义导出为 JSON 或 YAML 文件,请在设计或代码模式下,选择操作下拉按钮。然后,在导出定义下,选择要导出的格式。您可以使用此导出的定义作为使用 Amazon Toolkit for Visual Studio Code 进行本地开发的起点。
-
要将工作流图表导出为 SVG 或 PNG 文件,请在设计或代码模式下,选择操作下拉按钮。然后,在导出定义下,选择所需的格式。