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à.
Scopri come iniziare a usare Step Functions
Con il servizio Step Functions, puoi orchestrare flussi di lavoro applicativi complessi. Per iniziare, utilizzerai Workflow Studio per creare ed eseguire un flusso di lavoro Hello World integrato. Esaminerai la definizione generata automaticamente Lingua degli Stati di Amazon (ASL) nel codice. Infine, trascinerai l'integrazione di un servizio per eseguire l'analisi del sentiment.
Dopo aver completato questo tutorial, saprai come utilizzare Workflow Studio per creare, configurare, eseguire e aggiornare un flusso di lavoro utilizzando entrambe le modalità Design e Code.
Durata stimata: 20-30 minuti
Cosa costruirai
La tua prima macchina a stati inizierà con gli stati di flusso. Gli stati di flusso vengono utilizzati per dirigere e controllare il flusso di lavoro. Dopo aver appreso come eseguire il flusso di lavoro, aggiungerai un'azione per integrare il servizio Amazon Comprehend con uno stato di attività.
Il diagramma seguente mostra un'immagine della macchina a stati completa che verrà creata. Quando si crea per la prima volta la macchina a stati Hello World, non saranno necessarie risorse aggiuntive per essere eseguita. La console Step Functions creerà tutti gli stati e un ruolo IAM con un solo clic. Successivamente, quando aggiungerai l'integrazione del servizio, dovrai creare un ruolo con una politica di autorizzazione personalizzata.
Passaggio 1: crea la tua macchina a stati
In Step Functions, i flussi di lavoro sono chiamati macchine a stati. Useremo entrambi i termini in modo intercambiabile. I tuoi flussi di lavoro conterranno stati che agiscono o controllano il flusso delle tue macchine a stati.
-
Vai alla console Step Functions.
-
Nella console Step Functions, scegli "Step Functions" nella barra di navigazione in alto a sinistra o nei breadcrumb, quindi scegli Inizia:
-
Tra le opzioni, scegli Run Hello World:
Suggerimento
Ti consigliamo di seguire la breve procedura dettagliata disponibile nella console per acquisire familiarità con l'interfaccia utente.
Panoramica di Workflow Studio
Con Workflow Studio for Step Functions, puoi trascinare visivamente gli stati su un'area di disegno per creare flussi di lavoro.
Puoi aggiungere e modificare stati, configurare passaggi, trasformare i risultati e impostare la gestione degli errori. La schermata seguente mostra quattro aree importanti dell'interfaccia che utilizzerete per creare le vostre macchine a stati.
Modalità: Workflow Studio offre tre modalità operative e per impostazione predefinita è la modalità di progettazione visiva.
-
Design: una modalità di modifica visiva, in cui è possibile trascinare gli stati nel flusso di lavoro.
-
Codice: una modalità che si concentra sul codice Amazon States Language, noto anche come codice ASL. Puoi modificare direttamente il codice ASL e vedere le modifiche riflesse nel design visivo.
-
Configurazione: opzioni di configurazione che includono il nome e il tipo della macchina a stati (Standard o Express), il ruolo assegnato durante l'esecuzione del flusso di lavoro, la registrazione, la traccia, il controllo delle versioni, la crittografia e i tag.
Il browser degli Stati contiene le seguenti tre schede:
-
Azioni: un elenco di AWS API che puoi trascinare nel tuo flusso di lavoro. Ogni azione rappresenta uno stato del flusso di lavoro Task.
-
Flusso: stati del flusso per controllare l'ordine delle fasi del flusso di lavoro.
-
Schemi: elementi costitutivi riutilizzabili e pronti all'uso, come l'elaborazione iterativa dei dati in un bucket Amazon S3.
La tela e il grafico del flusso di lavoro consentono di trascinare gli stati sul grafico del flusso di lavoro, modificare l'ordine degli stati e selezionare gli stati da configurare e testare.
Il pannello Inspector consente di visualizzare e modificare le proprietà di qualsiasi stato selezionato nell'area di disegno. Puoi attivare l'interruttore Definizione per mostrare il codice per lo stato attualmente selezionato.
Panoramica della macchina a stati
Il flusso di lavoro di Hello World inizia con uno stato Pass che passa l'input all'output, senza eseguire alcun lavoro. Gli stati Pass possono essere utilizzati per generare un output JSON statico o trasformare l'input JSON prima di passare i dati allo stato successivo. Gli stati di passaggio sono utili per la costruzione e il debug di macchine a stati.
Lo stato successivo, uno stato Choice, utilizza i dati inseriti IsHelloWorldExample per scegliere il ramo successivo del flusso di lavoro. Se la prima regola corrisponde, il flusso di lavoro si interrompe in uno stato di attesa, quindi esegue due attività in uno stato parallelo, prima di passare a un checkpoint e concludere con successo il flusso di lavoro. Se non c'è corrispondenza, il flusso di lavoro passa allo stato Fail per impostazione predefinita prima di arrestare la macchina a stati.
Gli stati di attesa possono essere utili quando si desidera ritardare prima di eseguire altro lavoro. Forse il tuo flusso di lavoro attenderà 30 secondi dopo l'immissione di un ordine, in modo che il cliente abbia il tempo di notare e correggere un indirizzo di spedizione errato.
Gli stati paralleli possono eseguire più processi sui tuoi dati. Forse il flusso di lavoro stamperà un ticket d'ordine, aggiornerà l'inventario e aumenterà contemporaneamente un rapporto giornaliero sulle vendite.
Visualizza il codice del flusso di lavoro (ASL)
La tua prima macchina a stati è in effetti piuttosto dettagliata, quindi esplora ulteriormente esaminando il codice.
Le macchine a stati sono definite utilizzando Amazon States Language (ASL)
Per visualizzare l'intera definizione di macchina a stati
-
Scegli il pulsante {} Code per visualizzare il codice ASL.
-
Visualizza il codice a sinistra e confrontalo con il grafico della macchina a stati a destra.
-
Seleziona alcuni stati sulla tela da esaminare. Ad esempio, scegli lo stato Choice.
Hai notato come la definizione dello stato è evidenziata nella visualizzazione del codice?
Per visualizzare il codice nell'Inspector
-
Tornate alla modalità Progettazione.
-
Espandi il pannello Inspector sulla destra.
-
Seleziona lo stato di scelta dal grafico del flusso di lavoro sul Canvas.
-
Nel pannello Inspector, scegliete l'interruttore Definizione.
Prova a scegliere altri stati. Vedi come viene visualizzato ed evidenziato il codice ASL per ogni stato selezionato?
(In realtà) Crea la macchina a stati
Attenzione: assegna subito un nome alla tua macchina di stato!
Non è possibile rinominare una macchina a stati dopo averla creata. Scegliete un nome prima di salvare la macchina a stati.
Fino ad ora, hai lavorato su una bozza della tua macchina a stati. Non è stata ancora creata alcuna risorsa.
Per rinominare e creare la tua macchina a stati
-
Scegli la modalità Config.
-
Per il nome della macchina a stato, inserisci
MyFirstStateMachine -
Per le autorizzazioni, accetta l'impostazione predefinita Crea un nuovo ruolo.
-
Scegliete il pulsante Crea per creare effettivamente la vostra macchina a stati.
Dovresti ricevere le notifiche che indicano che la tua macchina a stati e un nuovo ruolo IAM sono stati creati.
Ti verrà presentata automaticamente l'opzione per avviare la macchina a stati. Lo farai nel passaggio successivo!
Creazione del flusso di lavoro completata!
Step Functions ha creato il flusso di lavoro e il ruolo IAM. Ora sei pronto per avviare la tua macchina a stati.
Fase 2 - Avvia la tua macchina di stato
Dopo aver creato la macchina a stati, puoi avviare il flusso di lavoro in esecuzione.
I flussi di lavoro accettano facoltativamente un input che può essere utilizzato nello stato, inviato a servizi integrati e passato allo stato successivo.
La macchina a stati Hello World è autonoma e non richiede input.
Per avviare la macchina a stati
-
Inserire
hello001il nome dell'esecuzione. -
Lascia vuoto il campo di immissione.
-
Scegli il pulsante Avvia esecuzione.
Rivedi i dettagli dell'esecuzione
Subito dopo l'avvio, dovresti vedere che i primi due stati hanno avuto successo.
Dopo una breve attesa, il resto delle transizioni di stato verrà eseguito per completare il flusso di lavoro.
Ti stai chiedendo in che modo lo stato Choice (Is Hello World) è un esempio? ) ha deciso di passare allo stato Wait for X Seconds?
-
Suggerimento: il primo passaggio nella macchina a stati contiene i dati necessari per la decisione della filiale
-
Nella visualizzazione a grafico, puoi monitorare i progressi durante l'esecuzione ed esplorare i dettagli per ogni stato.
-
Seleziona il primo stato del Pass (denominato Set Variables and State Output), quindi esamina la Input/Output scheda.
Dovresti vedere che l'input State è vuoto, ma l'output State contiene JSON che imposta il valore di IsHelloWorldExample totrue.
Passa dalla vista Grafico alla vista Tabella per visualizzare un elenco di stati per nome, tipo e stato.
Suggerimento
Prendi nota dei campi Durata e Timeline nella schermata precedente. A colpo d'occhio, puoi vedere quali stati richiedono più tempo di altri.
Ci sono altre due visualizzazioni da esplorare in questa pagina dei dettagli delle esecuzioni: la vista degli eventi e la vista dello stato.
La vista degli eventi è una vista granulare dettagliata del flusso da uno stato all'altro.
Espandete la prima PassStateEntered e PassStateExited gli eventi nella tabella Event View per vedere come lo stato non riceve alcun input, assegna una variabile chiamata CheckpointCount valore zero e produce l'output visualizzato in precedenza.
Infine, hai la vista State che è simile alla vista Tabella. Nella tabella di visualizzazione dello stato, puoi espandere selettivamente gli stati per visualizzare solo gli input e gli output per ogni stato:
Complimenti! Hai eseguito la tua prima macchina a stati Step Functions!
L'utilizzo di uno stato Pass per aggiungere dati statici a un flusso di lavoro è uno schema comune, soprattutto per la risoluzione dei problemi.
Nel passaggio successivo, aggiornerai il flusso di lavoro in modo da poter impostare dinamicamente l'input della macchina a stati.
Fase 3 - Elabora l'input esterno
L'impostazione del valore di IsHelloWorldExample su un valore costante all'interno del flusso di lavoro non è realistico. Dovresti aspettarti che la tua macchina a stati risponda a dati di input variabili.
In questo passaggio, ti mostreremo come utilizzare i dati JSON esterni come input per il tuo flusso di lavoro:
Rimuovi l'input codificato
Innanzitutto, sostituite il valore hardcoded nell'Output del primo stato Pass.
-
Modifica la tua macchina a stati Hello World selezionando il pulsante Modifica macchina a stati situato in alto a destra nella pagina.
-
Seleziona il primo stato Pass dopo Start (denominato Set Variables and State Output), quindi seleziona la scheda Output.
-
Sostituisci l'output con il seguente JSON:
{ "IsHelloWorldExample": "{% $states.input.hello_world %}", "ExecutionWaitTimeInSeconds": "{% $states.input.wait %}" } -
Salva la macchina a stati.
L'output di stato aggiornato estrarrà i dati di input dalla variabile riservata $states utilizzando un'espressione JSonata. Questi valori verranno passati allo stato successivo come output per diventare l'input per lo stato successivo.
Esegui il flusso di lavoro aggiornato, con i dati di input
Quindi, esegui il flusso di lavoro e fornisci i dati di input esterni come JSON.
-
Scegli il pulsante Esegui per eseguire il flusso di lavoro.
-
Per il nome, usa l'ID generato casualmente.
-
Usa il seguente JSON per il campo di immissione:
{ "wait" : 20, "hello_world": true } -
Scegli il pulsante Avvia esecuzione.
L'esecuzione della macchina a stati dovrebbe attendere molto più a lungo (20 secondi), ma alla fine dovrebbe avere successo utilizzando l'input fornito.
Nella vista Grafico, controllate il Input/Output valore del primo Pass State. Notate come l'input fornito è stato convertito in output. Inoltre, dai un'occhiata all'input e all'output dell'esecuzione nella pagina dei dettagli dell'esecuzione. Entrambe le posizioni mostrano l'input utilizzato per avviare l'esecuzione.
Suggerimento
Cosa ti aspetti se esegui una nuova esecuzione con hello_world impostato su false? Eseguire una prova
Rivedi le esecuzioni del flusso di lavoro
Ora che hai eseguito il flusso di lavoro alcune volte, rivedi i dettagli di esecuzione per rivedere le esecuzioni del flusso di lavoro.
Per esaminare i dettagli dell'esecuzione
-
Scegli State machines dalla barra di navigazione o dal menu a sinistra.
-
Scegli la tua macchina a stati.
Nella scheda Esecuzioni, dovresti vedere un elenco di esecuzioni, simile alla schermata seguente:
Un'ultima nota: i nomi di esecuzione del flusso di lavoro devono essere univoci e non possono essere riutilizzati. Anche se abbiamo suggerito un nome breve (hello001) in questo tutorial, consigliamo di utilizzare una convenzione di denominazione che sia sempre univoca per i carichi di lavoro di produzione.
Suggerimento
Complimenti! Hai modificato il flusso di lavoro per elaborare input esterni che possono variare ogni volta che esegui il flusso di lavoro.
Fase 4 - Integrazione di un servizio
Le macchine a stato Step Functions possono chiamare oltre 220 AWS servizi utilizzando le integrazioni AWS SDK. AWS i servizi forniscono oltre 10.000 potenziali azioni API per le tue macchine a stato.
In questa fase, integrerai un'attività di Amazon Comprehend per l'analisi del sentiment per elaborare l'input della macchina a stati.
Importante
L'DetectSentimentAPI Amazon Comprehend utilizzata in questo tutorial non è completamente disponibile. Regioni AWS Per completare questo tutorial, utilizza una regione in cui Amazon Comprehend è disponibile, ad esempio Stati Uniti orientali (Virginia settentrionale). us-east-1 Per un elenco completo delle regioni supportate, consulta gli endpoint e le quote di Amazon Comprehend nel.
Le integrazioni dei servizi utilizzano uno dei tre modelli di integrazione dei servizi:
-
Richiedi una risposta (impostazione predefinita): attendi la risposta HTTP, quindi passa immediatamente allo stato successivo.
-
Esegui un lavoro (.sync): attendi il completamento di un lavoro prima di passare alla fase successiva.
-
Wait for Callback (.wait ForTaskToken): sospende un flusso di lavoro finché un processo esterno non restituisce un token di attività.
Per la prima integrazione, utilizzerai il modello di integrazione Request Response (predefinito).
Come funzionano le integrazioni?
Uno stato di attività rappresenta una singola unità di lavoro eseguita da una macchina a stati. Tutte le operazioni nella macchina a stati vengono eseguite mediante task.
Un'attività in genere esegue il lavoro trasmettendo l'input alle azioni API di altri servizi che quindi eseguono il proprio lavoro. È possibile specificare le prestazioni di un'attività utilizzando una serie di campi tra cui: CredentialsRetry,Catch,TimeoutSeconds, e altro. Puoi trovare ulteriori informazioni su Tasks inStato del flusso di lavoro delle attività.
Per utilizzare le integrazioni AWS SDK, specifichi il nome del servizio e l'API da chiamare. Alcune integrazioni richiedono anche parametri.
Puoi utilizzare Amazon States Language per specificare un'azione AWS API nel campo Resource dello stato di un'attività. Facoltativamente, puoi aggiungere un tipo di integrazione del servizio al nome del servizio.
Per specificare un'azione API, utilizzerai il seguente modello di nome di risorsa:
arn:aws:states:::aws-sdk:serviceName:apiAction.[serviceIntegrationPattern]
Caso del nome del parametro
Nota che le azioni API saranno camelCase (iniziale minuscola), ma ParameterNames saranno Pascal (iniziale in maiuscolo).
Esempi di nomi di risorse
-
arn:aws:states:::aws-sdk:ec2:describeInstancesrestituirà i risultati della chiamata all'API DescribeInstances di Amazon EC2. -
arn:aws:states:::aws-sdk:s3:listBucketsrestituirà i risultati della chiamata all'API Amazon S3 ListBuckets. -
arn:aws:states:::aws-sdk:sfn:startExecutionavvierà un'esecuzione annidata di una macchina a stati Step Functions e restituirà i risultati di quel flusso di lavoro.
Quando Step Functions chiama un altro servizio utilizzando lo Task stato, il modello predefinito è Request Response. Con il pattern di integrazione Request Response, Step Functions chiama un servizio, riceve una risposta e passa immediatamente allo stato successivo.
Fase 4.1 - Aggiungere lo stato di analisi del sentiment
-
Modifica la tua macchina a MyFirstStateMachine stati.
-
Dal pannello Azioni nel browser Stati, cerca
DetectSentiment. -
Trascina Comprehend DetectSentiment nel ramo Default dello stato Choice.
-
Seleziona ed elimina lo stato Fail.
-
Dalla scheda Flusso nel browser Stati, trascina lo stato Successo dopo DetectSentiment.
Passaggio 4.2 - Configurare lo stato dell'analisi del sentiment
-
Seleziona il passaggio Comprehend per configurarlo nel pannello Inspector.
-
Seleziona la scheda Argomenti e output, quindi sostituisci gli argomenti con il seguente JSON:
{ "LanguageCode": "en", "Text": "{% %}" } -
Posiziona il cursore tra i segni di percentuale:
{% %}e digita:$ -
Usa il completamento automatico nell'editor per scegliere
states,quindi digita
.e sceglicontext,quindi digita
.e scegliExecution,quindi digita
.e scegliInput,infine, digita
.feedback_commentper recuperare l'input iniziale dall'oggetto Context.
Dopo aver scelto queste opzioni di completamento automatico, dovresti avere il seguente JSON per gli argomenti degli stati:
{ "LanguageCode": "en", "Text": "{% $states.context.Execution.Input.feedback_comment %}" }
Utilizzo del completamento automatico dell'editor
Con il completamento automatico dell'editor, puoi esplorare le tue opzioni.
Auto-complete elencherà le tue variabili, la variabile riservata $states che contiene l'oggetto di contesto e le funzioni disponibili con le relative definizioni!
Fase 4.3 - Configurare una politica di identità
Prima di poter eseguire il flusso di lavoro, è necessario creare un ruolo e una policy per consentire allo State Machine di eseguire chiamate API al servizio esterno.
Per creare un ruolo IAM per Step Functions
-
Vai alla console IAM in una nuova scheda e seleziona Ruoli.
-
Scegli Create a new role (Crea un nuovo ruolo).
-
Per il tipo di entità attendibile, scegli
AWS Service. -
Per Caso d'uso, scegli
Step Functions. -
Per Aggiungi autorizzazioni, scegli Avanti per accettare la politica predefinita. Aggiungerai una policy per Comprehend dopo aver creato il ruolo.
-
In Nome, inserisci
HelloWorldWorkflowRole. -
Scegli Crea ruolo.
Per aggiungere una policy a Amazon HelloWorldWorkflowRole Comprehend
-
Seleziona e modifica il HelloWorldWorkflowRole ruolo.
-
Scegli Aggiungi autorizzazione, quindi Crea politica in linea.
-
Seleziona Comprehend per il servizio.
-
In Lettura scegli DetectSentiment, quindi Avanti
-
Per il nome della politica
DetectSentimentPolicy, inserisci, quindi Crea politica.
Se esamini la policy, vedrai che consente a tutte le risorse di intraprendere l'azione "comprehend:DetectSentiment".
Per collegare il ruolo IAM alla macchina a stati Step Functions
-
Torna a modificare la tua macchina a stati e seleziona la scheda Config.
-
Dal menu a discesa del ruolo di esecuzione, scegli.
HelloWorldWorkflowRole -
Salva la tua macchina a stati.
Passaggio 4.4 - Esegui la tua macchina di stato
Inizia a eseguire la tua macchina a stati con il seguente JSON come input:
{ "hello_world": false, "wait": 42, "feedback_comment" : "This getting started with Step Functions workshop is a challenge!" }
Senza la politica corretta, riceverai un errore di autorizzazione, simile al seguente:
User: arn:aws:sts::account-id:assumed-role/StepFunctions-MyStateMachine-role is not authorized
to perform: comprehend:DetectSentiment because no identity-based policy allows the comprehend:DetectSentiment
action (Service: Comprehend, Status Code: 400, Request ID: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111)
Il messaggio di errore precedente indica che la macchina statale non è autorizzata a utilizzare il servizio esterno. Torna indietro di un passaggio e assicurati di aver configurato una politica di identità.
Metti in pratica ciò che hai imparato!
Prima di immergerti in flussi di lavoro più complessi, metti in pratica ciò che hai imparato con le seguenti attività:
-
Rivedi il DetectSentiment passaggio. Dai un'occhiata alle input/output varie visualizzazioni per vedere i risultati del rilevamento dei sentimenti.
-
Trova la durata dello DetectSentiment stato nella visualizzazione della tabella.
-
Modifica il commento nell'input JSON, quindi esegui nuovamente la macchina a stati.
Per saperne di più sui risultati dell'analisi del sentiment, consulta Amazon Comprehend - Sentiment.
Un modo per pensare all'integrazione di Request Response è che la risposta generalmente rappresenta solo un riconoscimento della richiesta. Tuttavia, in alcune integrazioni, come l'analisi del sentiment, il riconoscimento rappresenta effettivamente il completamento dell'attività.
La chiave di apprendimento è che lo Task stato non aspetta il lavoro sottostante nelle integrazioni Request Response. Per attendere una risposta, dovrai esplorare il modello di integrazione del servizio Run a Job (.sync).
Complimenti!
Hai creato la tua prima macchina a stati e integrato un'attività di analisi del sentiment utilizzando il pattern Request Response.
Apprezziamo il tuo feedback!
Se hai trovato utile questo tutorial introduttivo o hai suggerimenti per migliorarlo, faccelo sapere utilizzando le opzioni di feedback in questa pagina.
Eseguire la pulizia delle risorse
Segui i passaggi seguenti per ripulire le risorse che hai creato:
-
Vai alla pagina
Step Functions nella AWS Console. -
Seleziona State machines dal riquadro di navigazione a sinistra.
-
Seleziona MyFirstStateMachine
-
Per eliminare i ruoli IAM
1 - Segui il link relativo al ruolo IAM per accedere alla pagina del ruolo IAM in una nuova scheda. Elimina il ruolo correlato personalizzato.
2 - In IAM Roles, cerca il ruolo generato automaticamente che contiene
MyFirstStateMachine. Elimina il ruolo generato automaticamente. -
Torna alla scheda della console Step Functions e seleziona il menu a discesa Azioni, quindi seleziona Elimina per eliminare la macchina a stati.
La tua macchina a stati e il ruolo correlato dovrebbero ora essere eliminati correttamente.