View a markdown version of this page

Creazione di una macchina a stati Step Functions che utilizza Lambda - AWS Step Functions

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 per richiamare una funzione. AWS Lambda

Nota

Step Functions si basa su macchine e attività a stati. In Step Functions, le macchine a stati sono denominate flussi di lavoro, che sono una serie di passaggi guidati da eventi. Ogni fase di un flusso di lavoro è denominata stato. Ad esempio, uno stato Task rappresenta un'unità di lavoro eseguita da un altro AWS servizio, ad esempio chiamando un altro servizio Servizio AWS o un'API. Le istanze di esecuzione di flussi di lavoro che eseguono attività sono denominate esecuzioni in Step Functions.

Per ulteriori informazioni, consulta:

Lambda è adatta per Task gli stati, perché le funzioni Lambda sono serverless e facili da scrivere. Puoi scrivere codice nel Console di gestione AWS o nel tuo editor preferito. AWS gestisce i dettagli relativi alla fornitura di un ambiente informatico per la funzione e alla sua esecuzione.

Fase 1: creare 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 associata allo stesso AWS account e alla tua macchina a Regione AWS stati.

  1. Apri la console Lambda e scegli la funzione Crea.

  2. Nella pagina Create function (Crea funzione), scegliere Author from scratch (Crea da zero).

  3. Nel campo Function name (Nome funzione), immettere HelloFunction.

  4. Mantieni le selezioni predefinite per tutte le altre opzioni, quindi scegli Crea funzione.

  5. Dopo aver creato la funzione Lambda, copia l'Amazon Resource Name (ARN) della funzione visualizzato. Di seguito è riportato un esempio di ARN:

    arn:aws:lambda:region:123456789012:function:HelloFunction
  6. Copia il codice seguente per la funzione Lambda nella sezione Code source della HelloFunction pagina.

    export const handler = async (event) => { return "Hello from " + event.who + "!"; };

    Questo codice assembla un saluto utilizzando il campo who dei dati di input, forniti dall'oggetto event passato alla funzione. I dati di input per questa funzione vengono aggiunti in seguito, quando si avvia una nuova esecuzione. La funzione restituisce il saluto assemblato come output.

  7. Seleziona Implementa.

Fase 2: testare la funzione Lambda

Prova la tua funzione Lambda per vederla in funzione.

  1. Scegli Test (Esegui test).

  2. Per Event name (Nome evento) immettere HelloEvent.

  3. Sostituisci i dati JSON dell'evento con i seguenti.

    { "who": "AWS Step Functions" }

    La "who" voce corrisponde al event.who campo della funzione Lambda, che completa il messaggio di saluto. Inserirai gli stessi dati di input quando avvierai la tua macchina a stati.

  4. Scegli Salva, quindi scegli Test.

  5. Per esaminare i risultati del test, in Execution result (Risultato esecuzione), espandi Details (Dettagli).

Passaggio 3: creare una macchina a stati

Usa la console Step Functions per creare una macchina a stati che richiami la funzione Lambda creata nel passaggio 1.

  1. Apri la console Step Functions, scegli State machines dal menu, quindi scegli Create state machine.

    Importante

    Assicurati che la tua macchina a stati si trovi nello stesso AWS account e nella stessa regione della funzione Lambda che hai creato in precedenza.

  2. Scegli Crea da vuoto.

  3. Assegna un nome alla tua macchina a stati, quindi scegli Continua per modificare la tua macchina a stati in Workflow Studio.

  4. Nel browser degli Stati a sinistra, assicurati di aver scelto la scheda Azioni. Quindi, trascina l'API AWS Lambda Invoke nello stato vuoto denominato Trascina il primo stato qui.

  5. Nel pannello Inspector a destra, configura la funzione Lambda:

    1. Nella sezione Parametri API, scegli la funzione Lambda che hai creato in precedenza nell'elenco a discesa Nome della funzione.

    2. Mantieni la selezione predefinita nell'elenco a discesa Payload.

  6. (Facoltativo) Scegliete Definizione per visualizzare la definizione della macchina a stati Lingua degli Stati di Amazon (ASL), che viene generata automaticamente in base alle selezioni effettuate nella scheda Azioni e nel pannello Inspector.

  7. 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, specificate un nome nella casella Nome macchina a stato.

    Ad esempio, è possibile inserire il nome LambdaStateMachine.

    Nota

    I nomi delle macchine a stato, delle esecuzioni e delle attività non devono superare gli 80 caratteri di lunghezza. Questi nomi devono essere univoci per l'account e la AWS regione e non devono contenere nessuno dei seguenti elementi:

    • Spazi bianchi

    • Caratteri jolly () ? *

    • Caratteri tra parentesi () < > { } [ ]

    • Caratteri speciali () " # % \ ^ | ~ ` $ & , ; : /

    • Caratteri di controllo (\\u0000- \\u001f o \\u007f -\\u009f).

    Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono caratteri non ASCII. Poiché tali caratteri impediranno ad Amazon di registrare i dati, consigliamo di utilizzare solo caratteri ASCII in modo CloudWatch da poter tenere traccia delle metriche di Step Functions.

  8. (Facoltativo) Nella configurazione della macchina a stato, specifica altre impostazioni del flusso di lavoro, come il tipo di macchina a stato e il relativo ruolo di esecuzione.

    Per questo tutorial, mantieni tutte le selezioni predefinite nelle impostazioni della macchina a stato.

  9. Scegli Create (Crea).

  10. Nella finestra di dialogo Conferma creazione ruolo, scegli Conferma per continuare.

    Puoi anche scegliere Visualizza le impostazioni dei ruoli per tornare alla configurazione della macchina State.

    Nota

    Se elimini il ruolo IAM creato da Step Functions, Step Functions non può ricrearlo in un secondo momento. Analogamente, se modifichi il ruolo (ad esempio, rimuovendo Step Functions dai principali nella policy IAM), Step Functions non può ripristinare le impostazioni originali in un secondo momento.

Fase 4: Esegui la macchina di stato

Dopo aver creato la macchina a stati, puoi eseguirla.

  1. Nella pagina State machines, scegli LambdaStateMachine.

  2. Selezionare Start execution (Avvia esecuzione).

    Viene visualizzata la finestra di dialogo Avvia esecuzione.

  3. (Facoltativo) Immettete un nome di esecuzione personalizzato per sovrascrivere il valore predefinito generato.

    Non-ASCII nomi e registrazione

    Step Functions accetta nomi per macchine a stati, esecuzioni, attività ed etichette che contengono caratteri non ASCII. Poiché tali caratteri impediranno ad Amazon di registrare i dati, consigliamo di utilizzare solo caratteri ASCII in modo CloudWatch da poter tenere traccia delle metriche di Step Functions.

  4. 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.

  5. Selezionare Start Execution (Avvia esecuzione).

    L'esecuzione della macchina a stati viene avviata e viene visualizzata una nuova pagina che mostra l'esecuzione in esecuzione.

  6. La console Step Functions ti indirizza a una pagina intitolata al tuo ID di esecuzione. Questa pagina è nota come pagina dei dettagli di esecuzione. In questa pagina, puoi esaminare i risultati dell'esecuzione man mano che l'esecuzione procede o al suo completamento.

    Per esaminare i risultati dell'esecuzione, scegli i singoli stati nella vista Grafico, quindi scegli 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, è possibile visualizzare nella pagina Dettagli di esecuzione, vederePanoramica dei dettagli di esecuzione.

Nota

Puoi anche trasferire payload mentre richiami Lambda da una macchina a stati. Per ulteriori informazioni ed esempi su come richiamare Lambda inserendo il payload nel campo, consulta. Parameters Invoca un AWS Lambda funzione con Step Functions