Wait workflow state
A Wait
state ("Type": "Wait"
) delays the state machine from
continuing for a specified time. You can choose either a relative time, specified in seconds
from when the state begins, or an absolute end time, specified as a timestamp.
In addition to the common state
fields, Wait
states have one of the following fields.
-
Seconds
-
A time, in seconds, to wait before beginning the state specified in the
Next
field. You must specify time as a positive, integer value from 0 up to 99999999. -
Timestamp
-
An absolute time to wait until beginning the state specified in the
Next
field.Timestamps must conform to the RFC3339 profile of ISO 8601, with the further restrictions that an uppercase
T
must separate the date and time portions, and an uppercaseZ
must denote that a numeric time zone offset is not present, for example,2024-08-18T17:33:00Z
.Note
Currently, if you specify the wait time as a timestamp, Step Functions considers the time value up to seconds and truncates milliseconds.
-
SecondsPath
-
A time, in seconds, to wait before beginning the state specified in the
Next
field, specified using a path from the state's input data.You must specify an integer value for this field.
-
TimestampPath
-
An absolute time to wait until beginning the state specified in the
Next
field, specified using a path from the state's input data.
Note
You must specify exactly one of Seconds
, Timestamp
, SecondsPath
, or TimestampPath
. In addition, the maximum wait time that
you can specify for Standard Workflows and Express workflows is one year and five minutes respectively.
Wait State Examples
The following Wait
state introduces a 10-second delay into a
state machine.
"wait_ten_seconds": {
"Type": "Wait",
"Seconds": 10,
"Next": "NextState"
}
In the next example, the Wait
state waits until an absolute time: March 14, 2024,
at 1:59 AM UTC.
"wait_until" : {
"Type": "Wait",
"Timestamp": "2024-03-14T01:59:00Z",
"Next": "NextState"
}
You don't have to hard-code the wait duration. For example, given the following input data:
{
"expirydate": "2024-03-14T01:59:00Z"
}
You can select the value of "expirydate" from the input using a reference path to select it from the input data.
"wait_until" : {
"Type": "Wait",
"TimestampPath": "$.expirydate",
"Next": "NextState"
}