本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
等待工作流程状态
Wait
状态 ("Type": "Wait"
) 使状态机延迟指定的时间,然后再继续。您可以选择一个相对时间,指定从状态开始后的秒数;也可以选择以时间戳的方式指定绝对结束时间。
除了常用状态字段之外,Wait
状态还具有以下字段之一。
-
Seconds
-
启动
Next
字段中指定状态之前等待的时间,以秒为单位。时间必须指定为介于 0 到 99999999 之间的正整数值。 -
Timestamp
-
一个绝对时间,等到该时间后再启动
Next
字段中指定的状态。时间戳必须符合 ISO 8601 的RFC3339配置文件,还有其他限制,即日期和时间部分
T
必须使用大写字母分隔,大写Z
必须表示不存在数字时区偏移量,例如,。2024-08-18T17:33:00Z
注意
当前,如果您将等待时间指定为时间戳,Step Functions 会选取秒以内的时间值并截断毫秒。
-
SecondsPath
-
启动在
Next
字段中指定的状态所等待的时间,以秒为单位,使用状态输入数据中的路径指定。必须为此字段指定一个整数值。
-
TimestampPath
-
一个绝对时间,等到该时间后再启动在
Next
字段中指定的状态,使用状态输入数据中的路径指定。
注意
您必须且只能指定以下之一:Seconds
、Timestamp
、SecondsPath
或 TimestampPath
。此外,您可以为标准工作流和快速工作流指定的最长等待时间分别为一年和五分钟。
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"
}