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à.
Creazione di una macchina a stati Step Functions che utilizza Lambda
In questo tutorial, creerai un flusso di lavoro in un'unica fase utilizzando AWS Step Functions invocare un AWS Lambda funzione.
Nota
Step Functions si basa su macchine e attività a stati. In Step Functions, le macchine a stati sono chiamate flussi di lavoro, che sono una serie di passaggi guidati dagli eventi. Ogni fase di un flusso di lavoro è denominata stato. Ad esempio, uno stato Task rappresenta un'unità di lavoro rispetto a un'altra AWS il servizio esegue, ad esempio chiamandone un altro Servizio AWS oppureAPI. Le istanze di flussi di lavoro in esecuzione che eseguono attività sono chiamate esecuzioni in Step Functions.
Per ulteriori informazioni, consultare:
Lambda è ideale per Task
gli stati, perché le funzioni Lambda sono senza server e facili da scrivere. È possibile scrivere codice in AWS Management Console o il tuo editor preferito. AWS gestisce i dettagli relativi alla fornitura di un ambiente informatico per la funzione e alla sua esecuzione.
Fase 1: Creazione di una funzione Lambda
La funzione Lambda riceve i dati degli eventi e restituisce un messaggio di saluto.
Importante
Assicurati che la tua funzione Lambda sia sotto la stessa AWS account e Regione AWS come tua macchina statale.
-
Apri la console Lambda
e scegli Crea funzione. -
Nella pagina Create function (Crea funzione), scegliere Author from scratch (Crea da zero).
-
Nel campo Function name (Nome funzione), immettere
HelloFunction
. -
Mantieni le selezioni predefinite per tutte le altre opzioni, quindi scegli Crea funzione.
-
Dopo aver creato la funzione Lambda, copia il nome Amazon Resource Name (ARN) della funzione visualizzato nell'angolo in alto a destra della pagina. Di seguito è riportato un esempio: ARN
arn:aws:lambda:us-east-1:123456789012:function:
HelloFunction
-
Copiate il codice seguente per la funzione Lambda nella sezione Code source del
HelloFunction
pagina.export const handler = async(event, context, callback) => { callback(null, "Hello from " + event.who + "!"); };
Questo codice assembla un saluto utilizzando il campo
who
dei dati di input, forniti dall'oggettoevent
passato alla funzione. I dati di input per questa funzione vengono aggiunti in seguito, quando si avvia una nuova esecuzione. Il metodocallback
restituisce il saluto assemblato dalla funzione. -
Seleziona Deploy (Implementa).
Fase 2: testare la funzione Lambda
Prova la tua funzione Lambda per vederla in funzione.
-
Scegli Test (Esegui test).
-
Per Event name (Nome evento) immettere
HelloEvent
. -
Sostituisci i JSON dati dell'evento con i seguenti.
{ "who": "AWS Step Functions" }
La
"who"
voce corrisponde alevent.who
campo della funzione Lambda, che completa il saluto. Immetterai gli stessi dati di input quando eseguirai la tua macchina a stati. -
Scegli Salva, quindi scegli Test.
-
Per esaminare i risultati del test, in Execution result (Risultato esecuzione), espandi Details (Dettagli).
Fase 3: Creare una macchina a stati
-
Apri la console Step Functions
e scegli Crea macchina a stati. Importante
Assicurati che la tua macchina a stati sia sotto la stessa AWS account e Region come funzione Lambda creata in precedenza.
-
Nella finestra di dialogo Scegli un modello, seleziona Vuoto.
-
Scegliete Seleziona per aprire Workflow Studio inmodalità di progettazione.
-
Nel browser Stati a sinistra, assicurati di aver scelto la scheda Azioni. Quindi, trascina e rilascia il AWS Lambda APIInvoca lo stato vuoto denominato Drag first state here.
-
Nel pannello Inspector a destra, configura la funzione Lambda:
-
Nella sezione APIParametri, scegli la funzione Lambda che hai creato in precedenza nell'elenco a discesa Nome funzione.
-
Mantieni la selezione predefinita nell'elenco a discesa Payload.
-
-
(Facoltativo) Scegliete Definizione per visualizzare la definizione della macchina a stati Amazon States Language (ASL), che viene generata automaticamente in base alle selezioni effettuate nella scheda Azioni e nel pannello Inspector.
-
Specificate un nome per la vostra macchina a stati. Per fare ciò, scegli l'icona di modifica accanto al nome della macchina a stati predefinita di MyStateMachine. Quindi, nella configurazione della macchina a stati, specifica un nome nella casella Nome macchina a stati.
Ad esempio, è possibile inserire il nome
LambdaStateMachine
.Nota
I nomi delle macchine a stati, delle esecuzioni e delle attività non devono superare gli 80 caratteri di lunghezza. Questi nomi devono essere univoci per il tuo account e AWS Regione e non deve contenere nessuno dei seguenti elementi:
-
Spazi bianchi
-
Caratteri jolly ()
? *
-
Caratteri tra parentesi quadre ()
< > { } [ ]
-
Caratteri speciali ()
" # % \ ^ | ~ ` $ & , ; : /
-
Caratteri di controllo (
\\u0000
-\\u001f
o\\u007f
-\\u009f
).
Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono non ASCII caratteri. Poiché tali caratteri non funzioneranno con Amazon CloudWatch, ti consigliamo di utilizzare solo ASCII caratteri in modo da poter tenere traccia delle metriche. CloudWatch
-
-
(Facoltativo) Nella configurazione della macchina a stati, specifica altre impostazioni del flusso di lavoro, come il tipo di macchina a stati e il relativo ruolo di esecuzione.
Per questo tutorial, mantieni tutte le selezioni predefinite nelle impostazioni della macchina a stati.
-
Scegli Create (Crea) .
-
Nella finestra di dialogo Conferma creazione del ruolo, scegliete Conferma per continuare.
Puoi anche scegliere Visualizza le impostazioni del ruolo per tornare alla configurazione della macchina a stati.
Nota
Se elimini il IAM ruolo creato da Step Functions, Step Functions non può ricrearlo in un secondo momento. Allo stesso modo, se modifichi il ruolo (ad esempio, rimuovendo Step Functions dai principi della IAM politica), Step Functions non può ripristinare le impostazioni originali in un secondo momento.
Passaggio 4: Esegui la macchina a stati
Dopo aver creato la macchina a stati, puoi eseguirla.
-
Nella pagina Macchine a stati, scegli LambdaStateMachine.
-
Selezionare Start execution (Avvia esecuzione).
Viene visualizzata la finestra di dialogo Avvia esecuzione.
-
(Facoltativo) Immettete un nome di esecuzione personalizzato per sovrascrivere il valore predefinito generato.
ASCIINomi diversi e registrazione
Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono non ASCII caratteri. Poiché tali caratteri non funzioneranno con Amazon CloudWatch, ti consigliamo di utilizzare solo ASCII caratteri in modo da poter tenere traccia delle metriche. CloudWatch
-
Nell'area Input, sostituisci i dati di esecuzione di esempio con i seguenti.
{ "who" : "AWS Step Functions" }
"who"
è il nome chiave utilizzato dalla funzione Lambda per ottenere il nome della persona da salutare. -
Selezionare Start Execution (Avvia esecuzione).
L'esecuzione della macchina a stati inizia e viene visualizzata una nuova pagina che mostra l'esecuzione in esecuzione.
-
La console Step Functions ti indirizza a una pagina intitolata con il tuo ID di esecuzione. Questa pagina è nota come pagina dei dettagli di esecuzione. In questa pagina è possibile esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o dopo il suo completamento.
Per esaminare i risultati dell'esecuzione, scegliete i singoli stati nella vista Grafico, quindi scegliete le singole schede Dettagli del passaggio nel riquadro per visualizzare i dettagli di ogni stato, inclusi rispettivamente input, output e definizione. Per i dettagli sulle informazioni sull'esecuzione che è possibile visualizzare nella pagina Dettagli di esecuzione, vederePanoramica dei dettagli di esecuzione.
Nota
Puoi anche passare payload mentre richiami Lambda da una macchina a stati. Per ulteriori informazioni ed esempi su come richiamare Lambda inserendo il payload nel Parameters
campo, vedere. Invoca un AWS Lambda funzione con Step Functions