本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
等待工作流程狀
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"
}