等候 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

等候

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 欄位中指定的狀態之前,所要等待的絕對時間,而該欄位使用狀態輸入資料中的路徑來指定。

注意

您必須指定 SecondsTimestampSecondsPathTimestampPath 其中一項。此外,您可以為「標準工作流程」和「快速」工作流程指定的最長等待時間分別為一年五分鐘。

Wait 狀態範例

以下 Wait 狀態導致狀態機器延遲 10 秒。

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

在下一個範例中,Wait狀態會等到絕對時間:2024 年 3 月 14 日,世界標準時間上午 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" }