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

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

转换

在启动状态机的新执行时,系统以在顶级 StartAt 字段中引用的状态开始。此字段为字符串形式,必须完全匹配工作流中某个状态的名称,并且区分大小写。

运行状态之后,Amazon Step Functions 使用 Next 字段的值来确定要前进到的下一个状态。

Next 字段还将状态名称指定为字符串。此字符串区分大小写,并且必须完全匹配状态机定义中指定的状态名称。

例如,以下状态包括到 NextState 的转换。

"SomeState" : { ..., "Next" : "NextState" }

大部分状态只允许使用具有 Next 字段的一个转换规则。不过,某些流控制状态(例如,Choice 状态)允许您指定多个转换规则,每个具有各自的 Next 字段。Amazon States Language 提供有关您可指定的各个状态类型的详细信息,包括如何指定转换的信息。

状态可以有多个来自其他状态的传入转换。

该过程重复,直至到达最终状态 ("Type": Succeed"Type": Fail"End": true 状态) 或者出现运行时错误。

当您redrive执行时,则视为一种状态转换。此外,在redrive中重新运行的所有状态也视为状态转换。

以下规则适用于状态机中的状态:

  • 状态在封闭块中可以按任意顺序出现。但是,它们列出的顺序不会影响到它们的运行顺序。运行顺序由状态的内容决定。

  • 在状态机中,只能有一个状态指定为 start 状态。start 状态由顶级结构中 StartAt 字段的值定义。

  • 根据您的状态机逻辑,您可能会有多个 end 状态 (例如状态机有多个逻辑分支时)。

  • 如果状态机只包含一个状态,该状态可以为 start 状态和 end 状态。