Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Attendi lo stato del workflow
Gestione dello stato e trasformazione dei dati
Scopri come passare dati tra stati con variabili e trasformare i dati con JSonata.
Uno stato Wait ("Type": "Wait") impedisce il funzionamento della macchina a stati per un determinato periodo di tempo. Puoi scegliere tra un intervallo di tempo relativo, specificato in secondi a partire dal momento in cui inizia lo stato, oppure un'ora di fine assoluta, specificata come timestamp.
Oltre ai campi di stato comuni, gli stati Wait hanno uno dei seguenti campi.
-
Seconds -
Un tempo di attesa in secondi prima dell'inizio dello stato specificato nel campo
Next. È necessario specificare l'ora come valore intero compreso tra 0 e 99.999.999. Negli stati JSonata, puoi in alternativa specificare un'espressione JSonata che deve restituire un numero intero nell'intervallo indicato. -
Timestamp -
Un tempo di attesa assoluto fino all'inizio dello stato specificato nel campo
Next.I timestamp devono essere conformi al profilo RFC3339 della norma ISO 8601, con ulteriori restrizioni secondo cui una
Tmaiuscola deve separare la data e l'ora e unaZmaiuscola deve indicare che un offset di fuso orario non è presente, ad esempio,2024-08-18T17:33:00Z.Negli stati JSonata, è possibile specificare un'espressione JSonata che restituisce una stringa conforme ai requisiti precedenti.
Nota
Attualmente, se si specifica il tempo di attesa come timestamp, Step Functions considera il valore temporale fino a secondi e tronca i millisecondi.
-
SecondsPath(Facoltativo, solo JsonPath) -
Un percorso negli stati immette i dati in un valore intero che specifica il tempo di attesa, in secondi, prima di passare allo stato successivo.
-
TimestampPath(Facoltativo, solo JsonPath) -
Un percorso negli stati inserisce i dati con una data e un'ora assolute (timestamp) da attendere prima di passare allo stato successivo.
Nota
Devi specificare esattamente Seconds, Timestamp, SecondsPath o TimestampPath. Inoltre, il tempo di attesa massimo che è possibile specificare per i flussi di lavoro Standard e i flussi di lavoro Express è rispettivamente di un anno e cinque minuti.
Esempi di stato Wait
Il seguente stato Wait introduce un ritardo di 10 secondi in una macchina a stati.
"wait_ten_seconds": {
"Type": "Wait",
"Seconds": 10,
"Next": "NextState"
}
Nel prossimo esempio, lo Wait stato attende fino a un'ora assoluta: il 14 marzo 2024 alle 01:59 UTC.
"wait_until" : {
"Type": "Wait",
"Timestamp": "2024-03-14T01:59:00Z",
"Next": "NextState"
}
Non è necessario effettuare l'hard coding del tempo di attesa. Ad esempio, con i seguenti dati di input:
{
"expirydate": "2024-03-14T01:59:00Z"
}
Puoi selezionare il valore di "expirydate" dall'input utilizzando un percorso di riferimento per selezionarlo dai dati di input.
"wait_until" : {
"Type": "Wait",
"TimestampPath": "$.expirydate",
"Next": "NextState"
}