本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
等待工作流程狀態
管理狀態和轉換資料
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) -
狀態中的路徑將輸入資料輸入到絕對日期和時間 (時間戳記),以便在繼續下一個狀態之前等待。
注意
您必須指定 Seconds
、Timestamp
、SecondsPath
或 TimestampPath
其中一項。此外,您可以為標準工作流程和快速工作流程指定的等待時間上限為一年又五分鐘。
Wait 狀態範例
以下 Wait
狀態導致狀態機器延遲 10 秒。
"wait_ten_seconds": {
"Type": "Wait",
"Seconds": 10,
"Next": "NextState"
}
在下一個範例中, Wait
狀態會等到絕對時間:2024 年 3 月 14 日,UTC 上午 1:59。
"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"
}