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à.
Struttura della macchina a stati nei flussi di lavoro di Amazon States Language for Step Functions
Le macchine a stati vengono definite utilizzando JSON testo che rappresenta una struttura contenente i seguenti campi.
-
Comment
(facoltativo). -
Una descrizione leggibile della macchina a stati.
-
StartAt
(Obbligatorio) -
Una stringa che deve corrispondere esattamente (con distinzione tra maiuscole e minuscole) al nome di uno degli oggetti di stato.
TimeoutSeconds
(Facoltativo)-
Il numero massimo di secondi durante i quali può essere eseguita la macchina a stati. Se viene eseguita per un tempo superiore a quello specificato, l'esecuzione ha esito negativo con un
States.Timeout
nome di errore. -
Version
(facoltativo). -
La versione di Amazon States Language utilizzata nella macchina a stati (l'impostazione predefinita è «1.0").
-
States
(Obbligatorio) -
Un oggetto contenente un set di stati delimitati da virgola.
Il campo States
contiene stati.
{
"State1" : {
},
"State2" : {
},
...
}
Una macchina a stati è definita dagli stati che contiene e dalle relazioni tra gli stessi.
Di seguito è riportato un esempio.
{
"Comment": "A Hello World example of the Amazon States Language using a Pass state",
"StartAt": "HelloWorld",
"States": {
"HelloWorld": {
"Type": "Pass",
"Result": "Hello World!",
"End": true
}
}
}
Quando viene avviata un'esecuzione di questa macchina a stati, il sistema inizia con lo stato cui viene fatto riferimento nel campo StartAt
("HelloWorld"
). Se questo stato ha un campo "End": true
, l'esecuzione viene arrestata e restituisce un risultato. In caso contrario, il sistema cerca un campo "Next":
e continua con quello stato. Questo processo si ripete finché il sistema non raggiunge uno stato terminale, ovvero uno stato con "Type": "Succeed"
, "Type": "Fail"
o "End": true
, oppure finché non si verifica un errore di runtime.
Le regole seguenti si applicano agli stati in una macchina a stati:
-
Gli stati possono verificarsi in qualsiasi ordine nel blocco di inclusione, ma l'ordine in cui sono elencati non influenza l'ordine in cui vengono eseguiti, che dipende dal contenuto degli stati stessi.
-
Una macchina a stati può includere un solo stato designato come stato
start
tramite il valore del campoStartAt
nella struttura di livello superiore. Questo stato è quello che viene eseguito per primo quando viene avviata l'esecuzione. -
Qualsiasi stato per il quale il campo
End
ètrue
viene considerato uno statoend
(oterminal
). A seconda della logica della macchina a stati, ad esempio se la macchina a stati ha più rami di esecuzione, potresti avere più di uno stato.end
-
Se la macchina a stati include un solo stato, può essere contemporaneamente lo stato
start
e lo statoend
.
Campi di stato comuni nei flussi di lavoro
I seguenti campi sono comuni a tutti gli elementi di stato.
-
Type
(Obbligatorio) -
Il tipo di stato.
-
Next
-
Il nome dello stato successivo che viene eseguito al termine dello stato corrente. Alcuni tipi di stato, ad esempio
Choice
, consentono più stati di transizione.Se lo stato corrente è l'ultimo stato del flusso di lavoro o uno stato terminale, ad esempio Stato del flusso di lavoro Success oStato del flusso di lavoro fallito, non è necessario specificare il
Next
campo. -
End
-
Designa questo stato come stato terminale (termina l'esecuzione) se impostato su
true
. È possibile avere un numero qualsiasi di stati terminali per macchina a stati. Uno solo traNext
oEnd
può essere utilizzato in uno stato. Alcuni tipi di stato, ad esempioChoice
, o stati terminali, come Stato del flusso di lavoro Success eStato del flusso di lavoro fallito, non supportano o utilizzano ilEnd
campo. -
Comment
(facoltativo). -
Contiene una descrizione leggibile dello stato.
-
InputPath
(facoltativo). -
Un percorso che seleziona una parte dell'input dello stato da passare al task dello stato per l'elaborazione. Se non specificato, ha il valore predefinito
$
, che designa l'intero input. Per ulteriori informazioni, consultare Elaborazione di input e output. -
OutputPath
(facoltativo). -
Un percorso che seleziona una parte dell'output dello stato da passare allo stato successivo. Se omesso, ha il valore
$
che designa l'intero output. Per ulteriori informazioni, consultare Elaborazione di input e output.