Wait 工作流程状态 - AWS Step Functions

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

Wait 工作流程状态

管理状态和转换数据

Wait 状态 ("Type": "Wait") 使状态机延迟指定的时间,然后再继续。您可以选择一个相对时间,指定从状态开始后的秒数;也可以选择以时间戳的方式指定绝对结束时间。

除了常用状态字段之外,Wait 状态还具有以下字段之一。

Seconds

启动 Next 字段中指定状态之前等待的时间,以秒为单位。必须将时间指定为介于 0 到 99999999 之间的整数值。在 JSONata 状态中,您也可以指定一个 JSONata 表达式,该表达式的计算结果必须为指定范围内的整数。

Timestamp

一个绝对时间,等到该时间后再启动 Next 字段中指定的状态。

时间戳必须符合 ISO 8601 的 RFC3339 配置文件,但还有其他限制,即日期和时间部分T必须使用大写字母分隔,大写Z必须表示不存在数字时区偏移量,例如,。2024-08-18T17:33:00Z

在 JSONata 状态中,您可以指定一个 JSONata 表达式,该表达式生成符合先前要求的字符串。

注意

当前,如果您将等待时间指定为时间戳,Step Functions 会选取秒以内的时间值并截断毫秒。

SecondsPath( JSONPath 仅限可选)

状态中的路径将数据输入到一个整数值,该整数值指定进入下一个状态之前等待的时间(以秒为单位)。

TimestampPath( JSONPath 仅限可选)

状态中的路径将数据输入到绝对日期和时间(时间戳),以便在进入下一个状态之前等待。

注意

您必须且只能指定以下之一:SecondsTimestampSecondsPathTimestampPath。此外,您可以为标准工作流和快速工作流指定的最长等待时间分别为一年和五分钟。

Wait 状态示例

以下 Wait 状态向状态机中引入 10 秒的延迟。

"wait_ten_seconds": { "Type": "Wait", "Seconds": 10, "Next": "NextState" }

在下一个示例中,Wait 状态等待直至绝对时间:2024 年 3 月 14 日凌晨 1:59 (UTC 时间)。

"wait_until" : { "Type": "Wait", "Timestamp": "2024-03-14T01:59:00Z", "Next": "NextState" }

您不必对等待持续时间进行硬编码。例如,给定以下输入数据:

{ "expirydate": "2024-03-14T01:59:00Z" }

您可以使用引用路径从输入中选择“expirydate”值,以便从输入数据选择该值。

"wait_until" : { "Type": "Wait", "TimestampPath": "$.expirydate", "Next": "NextState" }