本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
转换
在启动状态机执行时,系统以在顶级 StartAt
字段中引用的状态开始。此字段 (字符串) 必须完全匹配某个状态的名称,并且区分大小写。
执行状态之后,Amazon Step Functions 使用 Next
字段的值来确定要前进到的下一个状态。
Next
字段还以字符串的形式指定状态名称,并且必须完全匹配(区分大小写)在状态机说明中指定的状态名称。
例如,以下状态包括到 NextState
的转换。
"SomeState" : {
...,
"Next" : "NextState"
}
大部分状态只允许通过 Next
字段使用一个转换规则。不过,某些流控制状态 (例如,Choice
状态) 允许您指定多个转换规则,每个具有各自的 Next
字段。Amazon 状态语言提供有关您可指定的各个状态类型的详细信息,包括如何指定转换的信息。
状态可以有多个来自其他状态的传入转换。
该过程重复,直至到达最终状态 ("Type": Succeed
、"Type": Fail
或 "End": true
状态) 或者出现运行时错误。
以下规则适用于状态机中的状态:
-
状态在封闭块中可以按任意顺序出现,但它们列出的顺序不会影响到它们的运行顺序。运行顺序由状态的内容决定。
-
在状态机中,只能有一个状态指定为
start
状态,它由顶级结构中StartAt
字段的值指定。 -
根据您的状态机逻辑,您可能会有多个
end
状态 (例如状态机有多个执行分支时)。 -
如果状态机只包含一个状态,该状态可以为
start
状态和end
状态。