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 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 frammentazione di un'applicazione in componenti (o fasi) evita che un errore di un solo componente faccia collassare l'intero sistema, garantendo nel contempo il dimensionamento indipendente dei singoli componenti e l'aggiornamento dei componenti senza richiedere la ridistribuzione dell'intero sistema dopo ogni modifica. Il coordinamento dei componenti del servizio prevede la gestione di dipendenze di esecuzione, programmazione e simultaneità in conformità con il flusso logico dell’applicazione. In un'applicazione di questo genere, gli sviluppatori possono 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 AWS Step Functions?

AWS 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 large in formati utili, o coordinare analisi multi-step e flussi di lavoro machine learning
  • DevOps e automazione IT: costruire strumenti per integrazione continua e distribuzione continua, o creare un’applicazione guidata dagli eventi che risponde 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?

Usando AWS 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 uno step individuale nel diagramma del flusso di lavoro. Gli stati possono eseguire lavoro, fare scelte, passare parametri, iniziare esecuzioni parallele, gestire timeouts, 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 AWS Step Functions.

D: Come si connette AWS Step Functions alle mie risorse?

Puoi orchestrare qualsiasi servizio AWS usando Service Integrations o qualsiasi componente applicativo autogestito usando Activity Tasks.

Service Integrations ti consente di creare chiamate ai servizi AWS e di includere la risposta nel flusso di lavoro. AWS-SDK Service Integrations ti consentono di richiamare una delle oltre 9.000 azioni API AWS da oltre 200 servizi direttamente dal tuo flusso di lavoro. Optimized Service Integrations semplificano ulteriormente l'uso di servizi comuni come Lambda, ECS, Glue o EMR con capacità che includono la generazione di policy IAM e il modello RunAJob che attende automaticamente il completamento dei lavori asincroni.

Activity Tasks consentono l'integrazione con le attività che esegui in una posizione a tua scelta, incluso in Amazon EC2, in Amazon ECS, su un dispositivo mobile o su un server locale. Activity worker usa Step Functions per lavoro, accetta qualsiasi input da Step Functions, esegue il lavoro usando il tuo codice e restituisce risultati. Dato che gli activity workers richiedono lavoro, è facile usare workers che sono impiegati dietro firewall.

Una macchina di stato AWS Step Functions può contenere combinazioni di Service Integrations e Activity Tasks. Le applicazioni AWS Step Functions possono combinare activity workers in esecuzione in un data center con service tasks nel cloud. I lavoratori del data center continuano le operazioni come sempre, insieme alle eventuali attività basate su cloud.

D: Come si inizia a usare AWS Step Functions?

Ci sono vari modi per iniziare a usare AWS Step Functions:

D: Quali linguaggi sono supportati da AWS Step Functions?

Le macchine a stati di AWS Step Functions vengono definite in JSON attraverso le dichiarazioni di Amazon States Language. Per creare un activity worker, si può utilizzare qualsiasi linguaggio di programmazione, a condizione che si possa comunicare con AWS Step Functions utilizzando le API del servizio Web. Per praticità puoi utilizzare un SDK di AWS nel linguaggio di tua scelta. AWS 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 AWS 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?

Puoi comporre i due tipi di flussi di lavoro: il flusso di lavoro express può essere eseguito come flusso di lavoro secondario del flusso di lavoro standard. 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. Puoi anche chiamare gli Express Workflow dall’interno di un Express Workflow, purché tutti i flussi di lavoro non superino il limite di durata del flusso principale. 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. 

Confronti

D: In quali casi è preferibile usare AWS Step Functions anziché Amazon SQS?

Valuta l’utilizzo di AWS Step Functions se hai bisogno di coordinare i componenti di un servizio nello sviluppo di applicazioni altamente scalabili e controllabili. Se quello che cerchi è un servizio di accodamento affidabile e altamente scalabile per l'invio, l'archiviazione e la ricezione di messaggi da e verso servizi diversi, ti consigliamo di valutare l'utilizzo di Amazon Simple Queue Service (Amazon SQS). Step Functions monitora tutte le task e gli eventi di un’applicazione. Con Amazon SQS, devi implementare il tuo monitoraggio personale a livello di applicazione, soprattutto se la tua 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. Amazon SQS richiede l'implementazione di questa funzionalità aggiuntiva. Step Functions offre varie caratteristiche per facilitare lo sviluppo delle applicazioni, come trasferimento di dati tra task e flessibilità nella distribuzione delle task. Amazon SQS richiede l'implementazione di alcune funzionalità a livello di applicazione. Anche Amazon SQS ti consente di creare flussi di lavoro di base per coordinare un'applicazione distribuita, ma potrai ottenere questa stessa funzionalità da Step Functions senza alcuna configurazione (e non è l'unica caratteristica peculiare di Step Functions).

 

D: In quali casi è preferibile usare AWS Step Functions anziché Amazon Simple Workflow Service (SWF)?

AWS 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 Amazon Simple Workflow Service (Amazon SWF). Con Amazon SWF, anziché scrivere macchine a stati nel linguaggio dichiarativo JSON, si definisce 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.

Integrazione

D: In che modo AWS Step Functions connette e coordina altri servizi AWS?

Il flusso di lavoro creato con AWS Step Functions può connettere e coordinare oltre 200 servizi AWS usando Service Integrations. Per esempio, puoi:

  • Ricorrere ad una funzione AWS Lambda
  • Eseguire Amazon Elastic Container Service o AWS Fargate task
  • Prendere un elemento esistente da un tavolo Amazon DynamoDB o metterne uno nuovo in un tavolo DynamoDB
  • Presentare un lavoro AWS Batch e aspettare che sia completo
  • Pubblicare un messaggio su una tematica Amazon SNS
  • Inviare un messaggio ad una lista Amazon SQS
  • Iniziare l’esecuzione di un lavoro AWS Glue
  • Creare un lavoro Amazon SageMaker per allenare un modello machine learning o trasformare in batch un data set

Per maggiori informazioni su come connettere Step Functions ad altri servizi AWS, vedere la Guida dello sviluppatore Step Functions. È possibile creare attività nella macchina a stati che esegue applicazioni, fare riferimento alle Domande frequenti nella sezione Panoramica e consultare In che modo AWS Step Functions si connette alle mie risorse?

D: In che modo AWS Step Functions si integra con Amazon API Gateway?

Puoi associare le API Step Functions ad Amazon API Gateway in modo che tali API richiamino la macchina a stati quando una richiesta HTTPS viene inviata ad un metodo API da te definito. È possibile usare Amazon 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 API Gateway

 

D: Come funziona la registrazione di log e il lavoro di monitoraggio per AWS Step Functions?

AWS Step Functions invia i parametri ad Amazon CloudWatch e AWS CloudTrail per il monitoraggio dell'applicazione. Amazon CloudWatch raccoglie e monitora i parametri, imposta allarmi e reagisce automaticamente ai cambiamenti in AWS Step Functions. AWS 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 Amazon 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 di log nella Guida per gli sviluppatori di AWS Step Functions.

 

D: Cosa succede se il mio Express Workflow 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.

Sicurezza

D: È possibile accedere alle funzioni Step dalle risorse in Amazon VPC senza doversi collegare a Internet?

Inoltre, Step Functions supporta 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 Virtual Private Cloud per AWS Step Functions nella guida per sviluppatori di AWS Step Functions.

Conformità

D: Quali sono gli standard di conformità supportati da Step Functions?

AWS 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 di AWS Cloud

Nozioni di base su AWS Step Functions

Visita la pagina sulle nozioni di base
Sei pronto per iniziare?
Accedi alla console AWS Step Functions.
Hai altre domande?
Contattaci