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

AWS Step Functions è un servizio di flusso di lavoro visivo che consente di creare applicazioni distribuite, automatizzare processi, orchestrare microservizi e creare pipeline di dati e machine learning (ML).

Nella console grafica di Step Functions, puoi vedere il flusso di lavoro della tua applicazione come una serie di passaggi guidati dagli eventi.

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 svolta da un altro AWS servizio, ad esempio chiamarne un altro Servizio AWS o un'API.

Con i controlli integrati di Step Functions, 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 disporre di AWS servizi di chiamata Step Functions, come Lambda, per eseguire attività. È possibile creare flussi di lavoro che elaborano e pubblicano modelli di machine learning. È possibile disporre di AWS servizi di controllo Step Functions AWS Glue, ad esempio per creare flussi di lavoro di estrazione, trasformazione e caricamento (ETL). È possibile anche creare flussi di lavoro automatizzati e di lunga durata per applicazioni che richiedono l'interazione umana.

Suggerimento

Per imparare a usare Step Functions, segui i moduli interattivi del AWS Step Functions Workshop o leggi la sezione Getting Started di questa guida per creare un flusso di lavoro per richiedere una carta di credito.

AWS SDK e integrazioni ottimizzate

Per chiamare altri AWS servizi, puoi utilizzare le integrazioni AWS SDK di Step Functions oppure puoi utilizzare una delle integrazioni ottimizzate di Step Functions.

Flussi di lavoro Standard ed Express

Step Functions ha due tipi di flussi di lavoro. I flussi di lavoro standard prevedono un'esecuzione esatta del flusso di lavoro 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, tuttavia, prevedono l'esecuzione del at-least-once 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.

Le esecuzioni sono istanze in cui si esegue il flusso di lavoro per eseguire attività. 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 Express sono ideali per high-event-rate carichi di lavoro, come l'elaborazione di dati in streaming e l'ingestione di dati IoT.

Specifiche dei flussi di lavoro standard

  • Frequenza di esecuzione di 2.000 al secondo

  • Tasso di transizione tra stati di 4.000 al secondo

  • Prezzo per transizione statale

  • Mostra la cronologia di esecuzione e il debug visivo

  • Supporta tutte le integrazioni e i modelli di servizio

Specifiche dei flussi di lavoro Express

  • Frequenza di esecuzione di 100.000 al secondo

  • Tasso di transizione statale quasi illimitato

  • Prezzo in base al numero e alla durata delle esecuzioni

  • Invia la cronologia di esecuzione ad Amazon CloudWatch

  • Mostra la cronologia di esecuzione e il debug visivo in base al livello di log abilitato

  • Supporta tutte le integrazioni di servizi e la maggior parte dei modelli

Per ulteriori informazioni sui flussi di lavoro Standard ed Express, inclusi i prezzi di Step Functions, consulta quanto segue:

Casi d'uso

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. Questa sezione descrive i casi d'uso tipici per lavorare con Step Functions.

Caso d'uso #1: orchestrazione delle funzioni

Concatenamento

Si crea un flusso di lavoro che esegue un gruppo di funzioni Lambda (passaggi) in un ordine specifico. L'output di una funzione Lambda passa all'input della funzione Lambda successiva. L'ultima fase del flusso di lavoro produce un risultato. Con Step Functions, puoi vedere come ogni fase del tuo flusso di lavoro interagisce tra loro, in modo da assicurarti che ogni passaggio svolga la funzione prevista.

Per un tutorial che mostra come creare una macchina a stati con un gruppo di funzioni, consulta quanto segue:

Caso d'uso #2: Ramificazione

Ramificazione

Un cliente richiede un aumento del limite di credito. Utilizzando uno Choice stato, puoi fare in modo che Step Functions prenda decisioni in base all'input Choice dello stato. 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.

Caso d'uso #3: gestione degli errori

Riprova/Catch

Retry

In questo caso d'uso, un cliente richiede un nome utente. La prima volta, la richiesta del cliente non va a buon fine. Utilizzando una Retry dichiarazione, puoi fare in modo che Step Functions riprovi la richiesta del cliente. La seconda volta, la richiesta del cliente ha esito positivo.

Catch

In un caso d'uso simile, un cliente richiede un nome utente non disponibile. Utilizzando un'Catchistruzione, Step Functions suggerisce un nome utente disponibile. Se il cliente utilizza il nome utente disponibile, puoi fare in modo che Step Functions passi alla fase successiva del flusso di lavoro, ovvero l'invio di un'e-mail di conferma. Se il cliente non utilizza il nome utente disponibile, devi fare in modo che Step Functions passi a una fase diversa del tuo flusso di lavoro, vale a dire ricominciare la procedura di registrazione.

Per esempi Retry e Catch dichiarazioni più dettagliati, consulta quanto segue:

Caso d'uso #4: Human in the loop

Concatenamento

Utilizzando un'app bancaria, uno dei tuoi clienti invia denaro a un amico. Il cliente attende un'e-mail di conferma. Con un callback e un task token, puoi fare in modo che Step Functions dica a Lambda di inviare il denaro del cliente e di riferire quando un amico del cliente lo riceve. Dopo che Lambda avrà comunicato che un amico del cliente ha ricevuto il denaro, puoi fare in modo che Step Functions passi alla fase successiva del tuo flusso di lavoro, ovvero inviare al cliente un'email di conferma.

Per vedere un progetto di esempio che mostra un callback con un token task, consulta quanto segue:

Caso d'uso #5: elaborazione parallela

Parallelism

Un cliente converte un file video in cinque diverse risoluzioni di visualizzazione, in modo che gli spettatori possano guardarlo su più dispositivi. Utilizzando uno Parallel stato, Step Functions inserisce il file video, in modo che Lambda possa elaborarlo contemporaneamente nelle cinque risoluzioni dello schermo.

Caso d'uso #6: parallelismo dinamico

Concatenamento

Un cliente ordina tre articoli e tu devi preparare ogni articolo per la consegna. Verifica la disponibilità di ogni articolo, ritira ogni articolo e poi impacchetta ogni articolo per la consegna. Utilizzando uno Map stato, Step Functions consente a Lambda di elaborare in parallelo ogni articolo del cliente. Una volta che tutti gli articoli del cliente sono stati imballati per la consegna, Step Functions passa alla fase successiva del flusso di lavoro, che consiste nell'inviare al cliente un'e-mail di conferma con le informazioni di tracciamento.

Per vedere un progetto di esempio che mostra il parallelismo dinamico utilizzando uno Map stato, consulta quanto segue:

Integrazioni dei servizi

Step Functions si integra con più AWS servizi. Per combinare Step Functions con questi servizi, utilizzate i seguenti modelli di integrazione dei servizi:

Richiedi una risposta (impostazione predefinita)
  • Chiama un servizio e lascia che Step Functions passi allo stato successivo dopo aver ricevuto una risposta HTTP.

Esegui un lavoro (.sync)
  • Chiama un servizio e chiedi a Step Functions di attendere il completamento di un lavoro.

Attendi una richiamata con un task token (. waitForTaskToken)
  • Chiama un servizio con un task token e fai in modo che Step Functions attenda che il task token ritorni con una callback.

La tabella seguente mostra le integrazioni di servizio disponibili e i modelli di integrazione dei servizi per Step Functions.

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

  • Il supporto dei modelli di integrazione ottimizzati è diverso per ogni integrazione.

  • I flussi di lavoro Express non supportano Run a Job (.sync) o Wait for Callback (. waitForTaskToken).

  • Per ulteriori informazioni, consulta Flussi di lavoro Standard e Express.

Standard Workflows
Integrazioni di servizi supportate
Servizio Richiesta e risposta Esegui un job (.sync) Attendi ilcallback (.waitForTaskToken)
Integrazioni ottimizzate Amazon API Gateway
Amazon Athena
AWS Batch
Amazon Bedrock
AWS CodeBuild
Amazon DynamoDB
Amazon ECS/Fargate
Amazon EKS
Amazon EMR
Amazon EMR on EKS
Amazon EMR Serverless
Amazon EventBridge
AWS Glue
AWS Glue DataBrew
AWS Lambda
AWS Elemental MediaConvert
Amazon SageMaker
Amazon SNS
Amazon SQS
AWS Step Functions
AWS Integrazioni SDK Oltre duecento
Express Workflows

Regioni supportate

La maggior parte AWS delle regioni supporta Step Functions. Per un elenco completo delle AWS regioni in cui è disponibile Step Functions, consulta la Tabella delle AWS regioni.

È la prima volta che usi Step Functions?

Se è la prima volta che utilizzi Step Functions, i seguenti argomenti ti aiutano a comprendere le diverse parti dell'utilizzo di Step Functions, incluso il modo in cui Step Functions si combina con altri AWS servizi: