本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
探索要在 Step Functions 中使用的工作流程状态
状态是状态机中的元素。状态通过其名称 来引用,这可以是任意字符串,但在整个状态机的范围内必须唯一。
状态从调用或前一个状态中获取输入。状态可以筛选输入,然后处理发送到下一个状态的输出。
以下是一个调用 Amazon Lambda 函数的名为 HelloWorld
的示例状态。
"HelloWorld": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789012:function:HelloFunction",
"Next": "AfterHelloWorldState",
"Comment": "Run the HelloWorld Lambda function"
}
单个状态可以根据其输入做出决定、执行操作,并将输出传递给其他状态。在 Amazon Step Functions 中,您可以使用 Amazon States Language (ASL) 定义工作流。Step Functions 控制台提供了状态机的图形表示,以帮助可视化您的应用程序逻辑。
以下屏幕截图显示了工作流程工作室中一些最受欢迎的操作和七个流程状态:

状态有许多共同特征:
-
Type
字段指示状态是什么类型。 -
可选的
Comment
字段以人类可读的格式存放有关状态的评论或说明。 -
每个状态(
Succeed
或Fail
状态除外)需要一个Next
字段,用于指定工作流程中的下一个状态。Choice
状态实际上在每条 Choice 规则中可以有超过一个Next
。或者,通过将End
字段设置为 true,状态可以变为终止状态。
某些状态类型需要额外的字段,也可能重新定义常见字段用法。
访问工作流程的日志信息
创建并运行标准流后,您可以通过在 Step Functions 控制台中查看执行详细信息页面,来访问有关各个状态、其输入和输出、何时活动以及活动时长的信息。
-
创建快速工作流程执行后,如果启用了日志记录,则可以在 Step Functions 控制台或 Amazon CloudWatch Logs 中查看执行历史记录。
有关查看和调试执行的信息,请参阅查看工作流程运行和 在 Step Functions 中使用 CloudWatch 日志记录执行历史记录。
工作流程状态参考列表
在工作流程工作室中,状态分为操作(也称为任务状态)和七个流程状态。使用工作流程工作室中的任务状态或操作,可以调用第三方服务、调用函数和使用数百个 Amazon 服务端点。使用流程状态,可以指导和控制工作流程。所有状态都从上一个状态获取输入,并且许多状态提供输入筛选,并对传递到工作流程中下一个状态的输出进行筛选/转换。
-
Task 工作流程状态:添加由状态机执行的单个工作单元。
-
Choice 工作流程状态:在工作流的执行分支之间添加选择。
-
Parallel 工作流程状态:为工作流添加并行执行分支。
-
Map 状态工作流程。:针对输入数组每个元素的动态迭代步骤。与
Parallel
流状态不同,Map
状态将对状态输入中数组的多个条目执行相同的步骤。 -
Pass 工作流程状态:将状态输入传递到输出。(可选)筛选、转换固定数据并将其添加到输出。
-
Wait 工作流程状态:将工作流程暂停一段时间或直到指定的时间或日期。
-
Succeed 工作流程状态:成功后停止工作流。
-
Fail 工作流程状态:因故障而停止工作流。