AWS Step Functions
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

状态

有限状态机可以将算法表示为许多状态、它们的关系,以及它们的输入和输出。AWS Step Functions 能让您通过将工作流程表示为一个用 Amazon 状态语言编写的有限状态机,来协调各个任务。

各个状态可以根据其输入做出决定,执行操作并将输出传递给其他状态。在 Step Functions 中,您可以使用 Amazon 状态语言表示工作流程,并且 Step Functions 控制台提供了该状态机的图形表示,以帮助可视化您的应用程序逻辑。

状态是您状态机中的元素。状态通过其名称 来引用,这可以是任意字符串,但在整个状态机的范围内必须唯一。

注意

状态实例将一直存在到其执行结束。

在状态机中,状态可以执行各种函数:

  • 在您的状态机中执行一些工作 (Task 状态)。

  • 在执行分支之间进行选择 (Choice 状态)

  • 停止执行,返回失败或成功 (FailSucceed 状态)

  • 单纯将其输入传递到其输出或者注入一些固定数据 (Pass 状态)

  • 提供一定时间量的延迟或直至指定时间/日期 (Wait 状态)

  • 开始执行的并行分支 (Parallel 状态)

以下是一个名为 HelloWorld 的执行 AWS Lambda 函数的示例状态。

"HelloWorld": { "Type": "Task", "Resource": "arn:aws-cn:lambda:us-east-1:123456789012:function:HelloFunction", "Next": "AfterHelloWorldState", "Comment": "Run the HelloWorld Lambda function" }

状态有许多共同特征:

  • 每个状态必须有一个 Type 字段,指示状态是什么类型。

  • 每个状态可以有可选的 Comment 字段,以人类可读的格式存放有关状态的评论或说明。

  • 每个状态 (除了 SucceedFail 状态) 需要一个 Next 字段,或者也可以通过指定 End 字段成为最终状态。

    注意

    一个 Choice 状态可能会有多个 Next,但每个选项规则中只能有一个。Choice 状态无法使用 End

某些状态类型需要额外的字段,也可能重新定义常见字段用法。

有关您可以使用 Amazon 状态语言定义的各种状态的更多信息,请参阅状态

创建并执行状态机后,您可以通过在 Step Functions 控制台中查看 Execution Details (执行详细信息) 页面,来访问有关各个状态、其输入和输出、何时活动以及活动时长的信息。