本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
转换
在启动状态机的新执行时,系统以在顶级 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 状态。