Domande frequenti su AWS Step Functions
Panoramica
D: Cos'è AWS Step Functions?
AWS Step Functions è un servizio completamente gestito che facilita il coordinamento dei componenti delle applicazioni distribuite e dei microservizi tramite flussi di lavoro visivi. La creazione di applicazioni a partire da singoli componenti che eseguono una funzione dedicata permette di ricalibrare facilmente le risorse e modificare un'applicazione con maggiore rapidità.
Step Functions è un modo affidabile di coordinare componenti e controllare passo per passo le funzioni della tua applicazione. Step Functions fornisce una console grafica per riordinare e visualizzare i componenti della tua applicazione in una serie di fasi. Questo semplifica la creazione e l'esecuzione di applicazioni multifase.
Step Functions attiva automaticamente e tiene traccia di ogni fase e, in caso di errore, riprova, in modo che la tua applicazione venga eseguita nell'ordine e nel modo previsto. Step Functions registra lo stato di ogni fase, per consentirti, in caso di errore, di eseguire una diagnosi e risolvere i problemi più rapidamente. Puoi modificare e aggiungere fasi senza bisogno di scrivere il codice, per consentire un'evoluzione e un'innovazione più rapide della tua applicazione.
Quali sono i vantaggi di progettare la mia applicazione usando l'orchestrazione?
La suddivisione di un'applicazione in componenti di servizio (o passaggi) garantisce che il guasto di un componente non provochi l'arresto dell'intero sistema. Ogni componente si ridimensiona in modo indipendente e quel componente può essere aggiornato senza richiedere la ridistribuzione dell'intero sistema dopo ogni modifica.
Il coordinamento dei componenti del servizio prevede la gestione di dipendenze di esecuzione e programmazione e simultaneità in base al flusso logico dell'applicazione. In un'applicazione di questo genere, puoi utilizzare l'orchestrazione del servizio per compiere queste operazioni e per gestire gli errori.
D: Quali sono alcuni dei casi d'uso più comuni di Step Functions?
Step Functions facilita la gestione di qualsiasi problema di elaborazione o processo di business che può essere suddiviso in una serie di fasi. E utile anche per creare flussi di lavoro end-to-end per gestire lavori con interdipendenze. I casi d'uso più comuni sono:
- Elaborazione dati: unificare dati da vari database in report unificati, perfezionare e ridurre set di dati di grosse dimensioni in formati utili, iterare ed elaborare milioni di file in un bucket Amazon Simple Storage Service (S3) con un numero elevato di flussi di lavoro simultanei o coordinare analisi multi-step e flussi di lavoro machine learning
- Creazione di applicazioni basate sull’IA generativa serverless: sfruttare Step Functions per orchestrare le interazioni con i modelli di base di Amazon Bedrock, gestire tempestivamente, perfezionare e arricchire con le funzionalità di oltre 220 servizi AWS
- DevOps e automazione IT: costruire strumenti per integrazione continua e implementazione continua, o creare applicazioni guidate dagli eventi che rispondono automaticamente ai cambi nell'infrastruttura.
- E-commerce: Automatizza processi di business mission-critical, come l’evasione degli ordini e il monitoraggio dell’inventario.
- Applicazioni Web: Implementa processi stabili di registrazione degli utenti e autenticazione degli accessi.
Per maggiori dettagli, esplora i casi d'uso e le testimonianze dei clienti di AWS Step Functions.
D: Come funziona AWS Step Functions?
Quando utilizzi Step Functions, definisci macchine a stati che descrivono il tuo flusso di lavoro come una serie di fasi, la loro relazione, gli input e gli output. Le macchine a stati contengono un numero di stati, ognuno dei quali rappresenta una fase nel diagramma del flusso di lavoro.
Gli stati possono eseguire lavoro, fare scelte, passare parametri, iniziare esecuzioni parallele, gestire timeout o terminare il tuo flusso di lavoro con un successo o un fallimento.
La console visiva rappresenta automaticamente in modo grafico il singolo stato nell'ordine di esecuzione, semplificando la pianificazione di applicazioni multifase. La console evidenzia lo stato di ogni fase in tempo reale e fornisce la cronologia dettagliata di ogni esecuzione.
Per maggiori informazioni, consulta Come funziona Step Functions nella Guida per gli sviluppatori di Step Functions.
D: Come si connette Step Functions alle mie risorse?
Puoi orchestrare qualsiasi servizio AWS usando le integrazioni dei servizi o qualsiasi componente applicativo autogestito usando task di attività.
Le integrazioni dei servizi consentono di creare chiamate ai servizi AWS e di includere la risposta nel flusso di lavoro. Le integrazioni dei servizi dell'SDK AWS consentono di richiamare una delle oltre 9.000 operazioni API AWS da oltre 200 servizi direttamente dal tuo flusso di lavoro.
Le integrazioni dei servizi ottimizzati semplificano ulteriormente l'uso di servizi comuni come AWS Lambda, Amazon Elastic Container Service (ECS), AWS Glue o Amazon EMR con capacità che includono la generazione di policy IAM e il modello RunAJob che attende automaticamente il completamento dei lavori asincroni.
I task di attività consentono l'integrazione con le attività che esegui in una posizione a tua scelta, incluso in Amazon Elastic Compute Cloud (EC2), in Amazon ECS, su un dispositivo mobile o su un server on-premise. Il worker di attività usa Step Functions per il lavoro, accetta qualsiasi input da Step Functions, esegue il lavoro usando il tuo codice e restituisce i risultati. Dato che i worker attività richiedono lavoro, è facile usare worker che sono implementati con un firewall.
Una macchina di stato AWS Step Functions può contenere combinazioni di integrazioni di servizi e task di attività. Le applicazioni Step Functions possono combinare worker di attività in esecuzione in un data center con attività di servizio nel cloud. I worker del data center continuano le operazioni come sempre, insieme alle eventuali attività basate su cloud.
D: Come si inizia a usare Step Functions?
Esistono diversi modi per iniziare a usare Step Functions:
- Esplorazione dei progetti di esempio nella console Step Functions
- Leggi la Guida per gli sviluppatori di Step Functions
- Prova i nostri tutorial di 10 minuti
D: Quale linguaggio utilizza Step Functions?
Le macchine a stati di AWS Step Functions vengono definite in JSON attraverso le dichiarazioni di Amazon States Language.
Per creare un worker di attività, puoi utilizzare qualsiasi linguaggio di programmazione, a condizione che si possa comunicare con Step Functions utilizzando le API del servizio Web.
Per praticità puoi utilizzare un SDK di AWS nel linguaggio di tua scelta. Lambda supporta il codice scritto in Node.js (JavaScript), Python, Golang (Go) e C# (usando .NET Core runtime o altri linguaggi). Per ulteriori informazioni sul modello di programmazione Lambda, consulta la Guida per gli sviluppatori di Lambda.
D: Il mio flusso di lavoro presenta alcune proprietà del flusso di lavoro standard e alcune del flusso di lavoro express. Come possono ottenere il meglio di entrambe?
È possibile comporre i due tipi di flusso di lavoro:
- Eseguendo Express Workflows come flusso di lavoro figlio di Standard Workflows: Express Workflow viene richiamato da uno stato di task nel flusso di lavoro di orchestrazione principale e dà esito completamente positivo o negativo dal punto di vista del flusso principale. È soggetto alla policy dei nuovi tentativi del flusso principale per quel task.
- Richiamando Express Workflows dall'interno di un Express Workflow, purché tutti i flussi di lavoro non superino il limite di durata del padre: puoi scegliere di scomporre i tuoi flussi di lavoro in questo modo se il tuo caso d'uso ha una combinazione di passaggi di lunga durata o solo una volta e di alta frequenza e breve durata.
D: In che modo Step Functions supporta il parallelismo?
Step Functions include uno stato della mappa per il parallelismo dinamico. Lo stato della mappa ha due modalità operative, In linea e Distribuita, ed entrambe le modalità eseguono la stessa serie di passaggi per una raccolta di elementi. Una mappa in modalità in linea può supportare la simultaneità di 40 diramazioni parallele e limiti della cronologia di esecuzione di 25.000 eventi o circa 6.500 transizioni di stato in un flusso di lavoro. Con la modalità distribuita, puoi eseguire 10.000 diramazioni parallele simultanee. La mappa distribuita è stata ottimizzata per Amazon S3, consentendoti di iterare più facilmente sugli oggetti in un bucket S3. Consulta le domande frequenti nella sezione relativa all'integrazione. Le iterazioni di una mappa distribuita sono suddivise in esecuzioni parallele per aiutarti a superare i limiti del payload e della cronologia delle esecuzioni. Puoi anche scegliere se ogni iterazione viene eseguita da un flusso di lavoro standard, che è idempotente, o da un flusso di lavoro express, che ha una velocità maggiore e un costo inferiore, ma non è idempotente. Scopri di più sullo stato della mappa.
Confronti
D: In quali casi è preferibile usare Step Functions anziché Amazon Simple Queue Service (SQS)?
- Step Functions tiene traccia di tutte le attività e gli eventi in un'applicazione, SQS richiede di implementare il proprio monitoraggio a livello di applicazione, soprattutto se l'applicazione utilizza più code.
- La console Step Functions e le API di visibilità forniscono una visione incentrata sull'applicazione che ti consente di cercare, amministrare e approfondire i dettagli di un'esecuzione. SQS richiede l'implementazione di una funzionalità aggiuntiva.
- Step Functions offre varie caratteristiche per facilitare lo sviluppo delle applicazioni, come trasferimento di dati tra task e flessibilità nella distribuzione dei task, mentre SQS richiederebbe di implementare funzionalità a livello di applicazione.
- Step Functions ha funzionalità pronte all'uso per creare flussi di lavoro per coordinare la tua applicazione distribuita. SQS ti consente di creare flussi di lavoro di base, ma ha funzionalità limitate.
In quali casi è preferibile usare Step Functions anziché Amazon Simple Workflow Service (SWF)?
Step Functions dovrebbe essere preso in considerazione per tutte le nuove applicazioni, in quanto offre un approccio più produttivo e agile per il coordinamento dei componenti dell'applicazione grazie alla presenza di flussi di lavoro visivi. Se hai bisogno che segnali esterni intervengano nei tuoi processi o vuoi avviare processi figlio che restituiscano un risultato a un padre, allora dovresti valutare l'utilizzo di Servizio di flusso di lavoro semplice Amazon (Amazon SWF).
Con SWF, anziché scrivere macchine a stati nel linguaggio dichiarativo JSON, puoi scrivere un programma decisore per separare le fasi operative da quelle decisionali. Ciò offre un controllo completo sulla logica di orchestrazione, ma aumenta la complessità delle applicazioni di sviluppo. È possibile scrivere i programmi decisori nel linguaggio di programmazione scelto oppure ricorrere a Flow Framework per utilizzare costrutti di programmazione che strutturano interazioni asincrone per conto dell’utente.
In che modo l'integrazione degli endpoint HTTPS di Step Functions è correlata alle destinazioni dell'API di Amazon EventBridge?
Amazon EventBridge è un servizio di integrazione serverless che utilizza gli eventi per connettere tra loro i componenti dell'applicazione, rendendo più semplice per gli sviluppatori la creazione di applicazioni scalabili basate sugli eventi. API Destinations è una funzionalità di EventBridge che consente di creare regole per inoltrare eventi a endpoint di terze parti per disaccoppiare produttori e consumatori di eventi.
L'integrazione degli endpoint HTTPS di AWS Step Functions consentirà di richiamare i servizi basati su HTTPS e ricevere una risposta che può essere utilizzata per controllare il flusso dell'esecuzione in base alla logica di business. Amazon EventBridge si concentra sugli eventi di routing, mentre Step Functions si concentra sull'orchestrazione dei flussi di lavoro e sulla gestione dello stato. L'integrazione degli endpoint HTTPS di EventBridge API Destinations e Step Functions può supportare una connessione per l'autenticazione, in modo da poter riutilizzare le credenziali di autenticazione tra i vari servizi. Entrambi i servizi possono essere utilizzati in maniera congiunta per creare applicazioni distribuite altamente scalabili e robuste.
Integrazione
D: In che modo Step Functions connette e coordina altri servizi AWS?
Il flusso di lavoro creato con Step Functions può connettere e coordinare oltre 200 servizi AWS usando integrazioni di servizi. Per esempio, puoi:
- Richiamare una funzione AWS Lambda
- Eseguire un'attività ECS o AWS Fargate
- Prendere un elemento esistente da una tabella Amazon DynamoDB o metterne uno nuovo in una tabella DynamoDB
- Presenta un processo Batch AWS e aspetta che sia completo
- Richiama il modello di base Amazon Bedrock
- Pubblica un messaggio su un argomento SNS
- Inviare un messaggio a una coda Amazon SQS
- Iniziare l’esecuzione di un lavoro AWS Glue
- Creare un processo Amazon SageMaker per addestrare un modello di machine learning o trasformare in batch un set di dati
Per maggiori informazioni su come connettere Step Functions ad altri servizi AWS, consulta la Guida per gli sviluppatori di Step Functions. Puoi creare attività nella macchina a stati che eseguono le applicazioni; fai riferimento alle Domande frequenti nella sezione Panoramica e consulta In che modo AWS Step Functions si connette alle mie risorse?
D: Come si integra Step Functions con le applicazioni di terze parti?
Utilizzando l'integrazione degli endpoint HTTPS di AWS Step Functions, è possibile un'integrazione diretta con i servizi basati su HTTP, incluse le applicazioni SaaS. Utilizzando un'interfaccia visiva, è possibile creare e orchestrare applicazioni distribuite composte da servizi AWS e applicazioni SaaS.
D: Come testare, analizzare o eseguire il debug delle esecuzioni?
È possibile utilizzare l'API TestState per testare una singola fase del flusso di lavoro, abilitando cicli di feedback più rapidi per accelerare lo sviluppo. TestState consente di chiamare direttamente servizi ed endpoint, modificare l'input per simulare diversi scenari e rivedere la risposta. È possibile accedere a TestState tramite Workflow Studio, semplificando il test durante la creazione senza la necessità di distribuire il flusso di lavoro. TestState accetta una definizione e un input di stato singoli, quindi restituisce in modo sincrono l'output dello stato insieme alle trasformazioni intermedie dei dati. Dopo aver eseguito il flusso di lavoro, è possibile analizzare ed eseguire il debug delle esecuzioni tramite il file di log Amazon CloudWatch, AWS X-Ray e direttamente nella console di Step Functions attraverso un'esperienza visiva che aiuta a identificare rapidamente le aree problematiche.
D: In che modo Step Functions consente di elaborare un set di dati di grosse dimensioni in Amazon S3?
Puoi creare flussi di lavoro utilizzando uno stato della mappa in modalità distribuita per eseguire l'elaborazione su larga scala di dati come log, file multimediali, transazioni di vendita o dati di sensori IoT. Step Functions eseguirà l'iterazione degli elementi e avvierà istantaneamente esecuzioni parallele del flusso di lavoro, consentendo di creare un'elaborazione dei dati su richiesta su larga scala. Lo stato della mappa distribuita è stato ottimizzato per funzionare con S3. Puoi specificare un bucket S3 con criteri di filtro, un file manifest S3, una raccolta JSON o un file CSV archiviato in S3 come input per il tuo flusso di lavoro. Puoi anche specificare un bucket S3 per gli output di esecuzione di una mappa distribuita.
In che modo Step Functions si integra con Gateway Amazon API?
Puoi associare le API Step Functions ad Gateway Amazon API in modo che tali API richiamino la macchina a stati quando una richiesta HTTPS viene inviata ad un metodo API da te definito.
Puoi usare l'API di API Gateway per accendere le macchine a stati Step Functions che coordinano i componenti di un'applicazione backend distribuita e integrare task di attività umane nelle fasi dell'applicazione quali richieste di approvazione e risposte.
Inoltre, è possibile inoltrare chiamate serverless asincrone alle API dei servizi utilizzati dall'applicazione. Per ulteriori informazioni, prova il nostro tutorial, Creazione di un'API Step Functions usando Gateway API.
D: In che modo AWS Step Functions si integra con Amazon EventBridge?
La coreografia e l'orchestrazione sono due modelli diversi di come i servizi distribuiti possono comunicare tra loro. Nell'orchestrazione, la comunicazione è controllata più strettamente e Step Functions, un servizio di orchestrazione, coordina l'interazione e l'ordine in cui i servizi vengono richiamati.
La coreografia raggiunge la comunicazione senza uno stretto controllo. Con Amazon EventBridge gli eventi scorrono tra i servizi senza un coordinamento centralizzato. Molte applicazioni utilizzano sia la coreografia che l'orchestrazione per diversi casi d'uso.
Esempi di come utilizzare insieme Step Functions ed EventBridge potrebbero includere l'invio di un evento o la creazione di un programma con EventBridge Scheduler per attivare un flusso di lavoro di AWS Step Functions, seguito dall'emissione di eventi in diverse fasi del flusso di lavoro.
Cosa sono AWS Step Functions e AWS Lambda
AWS Step Functions è serverless?
D: Come funziona il processo di registrazione e monitoraggio per Step Functions?
AWS Step Functions invia i parametri ad Amazon CloudWatch e AWS CloudTrail per il monitoraggio dell'applicazione. CloudWatch raccoglie e monitora i parametri, imposta allarmi e reagisce automaticamente ai cambiamenti in AWS Step Functions.
CloudTrail cattura tutte le chiamate API per Step Functions come eventi, incluse chiamate dalla console Step Functions e da chiamate di codice a API Step Functions. Step Functions supporta anche le regole gestite di CloudWatch Events per ogni servizio integrato nel flusso di lavoro e crea e gestisce le regole CloudWatch Events nel tuo account AWS se necessario.
Per maggiori informazioni, consulta Monitoraggio e registrazione nella Guida per gli sviluppatori di Step Functions.
D: Cosa succede se il mio flusso di lavoro express ha esito negativo a causa dell'esaurimento dei tentativi o di un'eccezione non gestita?
Per impostazione predefinita, i flusso di lavoro express riportano tutti i risultati a CloudWatch Logs, tra cui input e output del flusso di lavoro e passaggi completati. Puoi selezionare livelli di versi di registrazione di log per registrare soltanto gli errori e puoi scegliere di non registrare nel log input e output. I flussi di lavoro che esauriscono i tentativi o che hanno un’eccezione non gestita devono essere rieseguiti dall’inizio.
D: In che modo Step Functions aiuta a creare applicazioni di IA generativa?
Step Functions ha un'integrazione ottimizzata con Amazon Bedrock. È possibile richiamare i modelli di base di Bedrock direttamente dal flusso di lavoro di Step Functions utilizzando il linguaggio naturale. Questo dà la possibilità di:
- Arricchire i dati elaborati da Step Functions con funzionalità di IA generativa per ridurre la complessità della gestione dei dati, come il riepilogo del testo, la generazione di immagini o la personalizzazione.
- Recuperare informazioni dai database, come i prezzi dei prodotti più recenti e i dati di personalizzazione degli utenti, e utilizzare le funzioni intrinseche di Step Functions per inserirle nel prompt, assicurando che il LLM utilizzi i dati più recenti per migliorare l'accuratezza della risposta.
- Generare le integrazioni facendo esaminare a Step Functions i documenti, estrarre i dati, suddividere i documenti e quindi trasformare i dati da testo digitale a integrazione con un processo in più fasi. Questo può essere pianificato come un processo ricorrente.
- Usa i flussi di lavoro Step Function per il concatenamento dei prompt. È possibile orchestrare più chiamate LLM e scegliere il modello migliore per ogni fase della catena, formando una catena personalizzata di fasi di elaborazione, curando risposte più consapevoli del contesto e accurate dal modello di base.
- Crea interazioni Human-in-the-Loop (HITL) con il flusso di lavoro di IA generativa per moderare le risposte ed evitare allucinazioni o incorporare una logica per gestire le risposte che non sono supportate dal modello di base.
Sicurezza
D: Posso accedere a Step Functions dalle risorse in Amazon VPC senza dovermi collegare a Internet?
Step Functions supporta anche gli endpoint VPC (VPCE) tramite il servizio AWS PrivateLink. Puoi accedere a Step Functions dalle funzioni AWS Lambda abilitate per VPC e altri servizi AWS senza passare per la rete Internet pubblica.
Per ulteriori informazioni, consulta la sezione Endpoint Amazon VPC per Step Functions nella Guida per gli sviluppatori di Step Functions.
Conformità
D: Quali sono gli standard di conformità supportati da Step Functions?
Step Functions è conforme a HIPAA, FedRAMP, SOC, GDPR e altri standard di conformità comuni. Per ottenere un elenco dettagliato degli standard di conformità supportati, visita il sito sulla sicurezza cloud AWS.
Nozioni di base su AWS Step Functions