Che cos'è Step Functions? - 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à.

Che cos'è Step Functions?

Con AWS Step Functions, puoi creare flussi di lavoro, detti Macchine a stati anche, per creare applicazioni distribuite, automatizzare processi, orchestrare microservizi e creare pipeline di dati e apprendimento automatico.

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.

Il lavoro nelle attività della macchina a stati può essere svolto anche utilizzando lavoratori Attività che esistono al di fuori di Step Functions.

Esempio illustrativo di un diagramma del flusso di lavoro Step Functions.

Nella console di Step Functions, puoi visualizzare, modificare ed eseguire il debug del flusso di lavoro della tua applicazione. Puoi esaminare lo stato di ogni fase del flusso di lavoro per assicurarti che l'applicazione funzioni nell'ordine e come previsto.

A seconda del caso d'uso, è possibile richiedere la chiamata Step Functions AWS servizi, come Lambda, per eseguire attività. Puoi avere il controllo di Step Functions AWS servizi, come AWS Glue, per creare flussi di lavoro di estrazione, trasformazione e caricamento. È possibile anche creare flussi di lavoro automatizzati e di lunga durata per applicazioni che richiedono l'interazione umana.

Per un elenco completo di AWS regioni in cui è disponibile Step Functions, vedi AWS Tabella delle regioni.

Scopri come usare Step Functions

Per imparare a usare Step Functions, segui i moduli interattivi di The Step Functions Workshop o consulta la sezione Getting Started di questa guida.

Tipi di flussi di lavoro Standard ed Express

Step Functions ha due tipi di flussi di lavoro:

  • I flussi di lavoro standard sono ideali per flussi di lavoro di lunga durata e verificabili, in quanto mostrano la cronologia di esecuzione e il debug visivo.

    I flussi di lavoro standard prevedono l'esecuzione del flusso di lavoro esattamente una volta e possono durare fino a un anno. Ciò significa che ogni fase di un flusso di lavoro Standard verrà eseguita esattamente una volta.

  • I flussi di lavoro Express sono ideali per high-event-rate carichi di lavoro, come l'elaborazione di dati in streaming e l'ingestione di dati IoT.

    I flussi di lavoro Express prevedono l'esecuzione at-least-oncedel flusso di lavoro e possono durare fino a cinque minuti. Ciò significa che uno o più passaggi in un Express Workflow possono potenzialmente essere eseguiti più di una volta, mentre ogni passaggio del flusso di lavoro viene eseguito almeno una volta.

Flussi di lavoro standard Flussi di lavoro rapidi
Velocità di esecuzione di 2.000 al secondo Frequenza di esecuzione di 100.000 al secondo
Tasso di transizione tra stati di 4.000 al secondo Tasso di transizione statale quasi illimitato
Prezzo in base alla transizione statale Prezzo in base al numero e alla durata delle esecuzioni
Mostra la cronologia delle esecuzioni e il debug visivo Mostra la cronologia di esecuzione e il debug visivo in base al livello di registro
Vedi la cronologia delle esecuzioni in Step Functions

Invia la cronologia delle esecuzioni a CloudWatch

Supporta le integrazioni con tutti i servizi.

Supporta integrazioni ottimizzate con alcuni servizi.

Supporta le integrazioni con tutti i servizi.
Modello Support Request Response per tutti i servizi

Supporta i modelli Run a Job e/o Wait for Callback in servizi specifici (vedi la sezione seguente per i dettagli)

Modello Support Request Response per tutti i servizi

Per ulteriori informazioni sui prezzi di Step Functions e sulla scelta del tipo di flusso di lavoro, consulta quanto segue:

Integrazione con altri servizi

Step Functions si integra con più AWS servizi. Per chiamare altri AWS servizi, puoi utilizzare due tipi di integrazione:

  • AWS SDKle integrazioni forniscono un modo per chiamare qualsiasi AWS servizio direttamente dalla tua macchina a stati, che ti dà accesso a migliaia di API azioni.

  • Le integrazioni ottimizzate offrono opzioni personalizzate per l'utilizzo di tali servizi nelle vostre macchine a stati.

Per combinare Step Functions con altri servizi, esistono tre modelli di integrazione dei servizi:

I flussi di lavoro standard e i flussi di lavoro Express supportano le stesse integrazioni ma non gli stessi modelli di integrazione.

  • I flussi di lavoro standard supportano le integrazioni Request Response. Alcuni servizi supportano Run a Job (.sync) o Wait for Callback (. waitForTaskToken) ed entrambi in alcuni casi. Consulta la seguente tabella di integrazioni ottimizzate per i dettagli.

  • Express Workflows supporta solo le integrazioni Request Response.

Per aiutarti a decidere tra i due tipi, consulta. Scelta del tipo di flusso di lavoro in Step Functions

AWS SDKintegrazioni in Step Functions

Servizio integrato Richiesta e risposta Esegui un Job - .sync Attendi la richiamata -. waitForTaskToken
Oltre duecento servizi Standard ed Express Non supportato Standard

Integrazioni ottimizzate in Step Functions

Servizio integrato Richiesta e risposta Esegui un Job - .sync Attendi la richiamata -. waitForTaskToken
Amazon API Gateway Standard ed Express Non supportato Standard
Amazon Athena Standard ed Express Standard Non supportato
AWS Batch Standard ed Express Standard Non supportato
Amazon Bedrock Standard ed Express Standard Standard
AWS CodeBuild Standard ed Express Standard Non supportato
Amazon DynamoDB Standard ed Express Non supportato Non supportata
Amazon ECS/Fargate Standard ed Express Standard Standard
Amazon EKS Standard ed Express Standard Standard
Amazon EMR Standard ed Express Standard Non supportato
Amazon EMR on EKS Standard ed Express Standard Non supportato
Amazon EMR Serverless Standard ed Express Standard Non supportato
Amazon EventBridge Standard ed Express Non supportato Standard
AWS Glue Standard ed Express Standard Non supportato
AWS Glue DataBrew Standard ed Express Standard Non supportato
AWS Lambda Standard ed Express Non supportato Standard
AWS Elemental MediaConvert Standard ed Express Standard Non supportato
Amazon SageMaker Standard ed Express Standard Non supportato
Amazon SNS Standard ed Express Non supportato Standard
Amazon SQS Standard ed Express Non supportato Standard
AWS Step Functions Standard ed Express Standard Standard

Esempi di casi d'uso per i flussi di lavoro

Step Functions gestisce i componenti e la logica dell'applicazione, così puoi scrivere meno codice e concentrarti sulla creazione e sull'aggiornamento rapido dell'applicazione. L'immagine seguente mostra sei casi d'uso per i flussi di lavoro Step Functions.

Esempi visivi di sei casi d'uso comuni di flussi di lavoro, descritti nel testo seguente.

  1. Orchestrazione delle attività: è possibile creare flussi di lavoro che orchestrano una serie di attività, o passaggi, in un ordine specifico. Ad esempio, l'Attività A potrebbe essere una funzione Lambda che fornisce input per un'altra funzione Lambda nel Task B. L'ultimo passaggio del flusso di lavoro fornisce il risultato finale.

  2. Scegli le attività in base ai dati: utilizzando uno Choice stato, puoi fare in modo che Step Functions prenda decisioni in base all'input dello stato. Ad esempio, immaginate che un cliente richieda un aumento del limite di credito. Se la richiesta supera il limite di credito preapprovato dal cliente, puoi fare in modo che Step Functions invii la richiesta del cliente a un responsabile per l'approvazione. Se la richiesta è inferiore al limite di credito preapprovato dal cliente, puoi fare in modo che Step Functions approvi la richiesta automaticamente.

  3. Gestione degli errori (Retry/Catch): puoi riprovare le attività non riuscite o catturare le attività fallite ed eseguire automaticamente passaggi alternativi.

    Ad esempio, dopo che un cliente ha richiesto un nome utente, forse la prima chiamata al servizio di convalida non riesce, quindi il flusso di lavoro potrebbe ritentare la richiesta. Quando la seconda richiesta ha esito positivo, il flusso di lavoro può continuare.

    Oppure, se il cliente ha richiesto un nome utente non valido o non disponibile, un'Catchistruzione potrebbe portare a una fase del flusso di lavoro di Step Functions che suggerisce un nome utente alternativo.

    Per esempi di Retry eCatch, vediGestione degli errori nei flussi di lavoro di Step Functions.

  4. Human in the loop — Step Functions può includere fasi di approvazione umana nel flusso di lavoro. Ad esempio, immagina che un cliente bancario tenti di inviare fondi a un amico. Con un callback e un task token, puoi fare in modo che Step Functions attenda fino alla conferma del trasferimento da parte dell'amico del cliente, dopodiché Step Functions continuerà il flusso di lavoro per notificare al cliente bancario che il trasferimento è stato completato.

    Per vedere un esempio, consulta Crea un esempio di pattern di callback con Amazon SQSSNS, Amazon e Lambda.

  5. Elaborazione dei dati in fasi parallele: utilizzando uno Parallel stato, Step Functions è in grado di elaborare i dati di input in fasi parallele. Ad esempio, un cliente potrebbe aver bisogno di convertire un file video in diverse risoluzioni di visualizzazione, in modo che gli spettatori possano guardare il video su più dispositivi. Il flusso di lavoro potrebbe inviare il file video originale a diverse funzioni Lambda o utilizzare l'ottimizzato AWS Elemental MediaConvert integrazione per elaborare un video in più risoluzioni di visualizzazione contemporaneamente.

  6. Elabora dinamicamente gli elementi dei dati: utilizzando uno Map stato, Step Functions può eseguire una serie di passaggi del flusso di lavoro su ciascun elemento di un set di dati. Le iterazioni vengono eseguite in parallelo, il che rende possibile elaborare rapidamente un set di dati. Ad esempio, quando il cliente ordina trenta articoli, il sistema deve applicare lo stesso flusso di lavoro per preparare ogni articolo per la consegna. Dopo che tutti gli articoli sono stati raccolti e imballati per la consegna, il passaggio successivo potrebbe consistere nell'inviare rapidamente al cliente un'e-mail di conferma con le informazioni di tracciamento.

    Per un esempio di modello iniziale, vedi. Elabora i dati con una mappa