AWS Step Functions è ora disponibile al pubblico

Prova AWS Step Functions gratuitamente

Il piano gratuito AWS Step Functions comprende 4.000 transizioni di stato ogni mese.  

Visualizza i dettagli del piano gratuito AWS »


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 da componenti individuali che eseguono ciascuno una funzione discreta permette di dimensionare e modificare rapidamente le applicazioni. 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. Si possono modificare e aggiungere fasi senza bisogno di scrivere codice, per consentire un'evoluzione e un'innovazione più rapide della tua applicazione.

AWS Step Functions gestisce le operazioni e l'infrastruttura per tuo conto per garantirne la disponibilità su qualsiasi scala.

D: Quali sono i vantaggi di progettare la mia applicazione utilizzando l’orchestrazione del servizio per il coordinamento delle task?

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 i casi d'uso che è possibile risolvere con 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. I casi d’uso più comuni sono:

  • Elaborazione di dati e documenti – Consolida i dati provenienti da vari database in report unificati. Affina grandi set di dati e li riduce in formati utili.
  • DevOps – Costruisce strumenti per l’integrazione e la distribuzione continue. Crea applicazioni basate sull’evento che rispondono automaticamente alle modifiche apportate all’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.

D: Come funziona AWS Step Functions?

Con AWS Step Functions definisci la tua applicazione come una macchina a stati, una serie di fasi che prese tutte insieme riflettono il comportamento dell’app. Gli stati della macchina possono essere task, fasi sequenziali, fasi parallele, percorsi di diramazione (scelta) e/o timer (attesa). Le task sono unità di un lavoro che possono essere eseguite da funzioni di AWS Lambda, istanze Amazon EC2 di qualsiasi tipo, contenitori o server locali; una task può essere assegnata a qualsiasi elemento in grado di comunicare con l’API di Step Functions. 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. Step Functions esegue e dimensiona le fasi della tua applicazione ed effettua l'elaborazione per tuo conto per assicurare che l'applicazione venga eseguita in modo affidabile con l'aumento della domanda.

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 cerchi è un servizio di accomodamento affidabile e altamente scalabile per l’invio, lo storage e la ricezione di messaggi da e a servizi diversi, ti consigliamo di valutare l’utilizzo di Amazon Simple Queue Service (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é AWS Batch?

AWS Batch è un servizio che consente di eseguire lavori di elaborazione in batch su qualsiasi scala nel Cloud AWS. AWS Step Functions è indicato se desideri costruire un’applicazione distribuita suddividendola in più fasi, che possono essere fasi sequenziali, parallele e/o diramazioni logiche (scelte). Puoi utilizzare Batch per eseguire i lavori nella tua applicazione e Step Functions per inviare lavori Batch multipli con le relative interdipendenze. Utilizza Batch se vuoi automatizzare la gestione dell’infrastruttura di elaborazione dimensionando la quantità di elaborazione in batch richiesta.

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 lanciare processi figlio che restituiscano un risultato a un padre, allora dovresti valutare l’utilizzo del servizio Amazon Simple Workflow (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.

D: Cosa accadrà al servizio Amazon Simple Workflow (SWF) esistente?

AWS continuerà a fornire Amazon Simple Workflow (SWF) e a supportare tutti i clienti Amazon SWF.

D: Come funziona AWS Step Functions con altri servizi AWS?

AWS Step Functions si integra con numerosi altri servizi AWS, tra cui AWS CloudFormation, AWS Lambda, Amazon EC2, Amazon EC2 Container Service (ECS), Amazon API Gateway, Amazon CloudWatch, AWS CloudTrail e Auto Scaling.

Di seguito vengono riportati alcuni esempi di alcune cose che puoi fare con i servizi AWS:

  • Avviare risorse correlate necessarie per il funzionamento di attività e di stati macchina di AWS Step Functions utilizzando AWS CloudFormation.
  • Implementare attività utilizzando funzioni Lambda o programmi in esecuzione in EC2 o in container ECS.
  • Associare le API di Step Functions con metodi in un'API di API Gateway.
  • Scalare il tuo gruppo di task EC2 per le attività di AWS Step Functions in risposta ai parametri di CloudWatch.

D: Come funziona AWS Step Functions con AWS Lambda?

Puoi utilizzare le funzioni di AWS Lambda per eseguire task all’interno della tua macchina a stati. AWS Step Function inoltra un input alla funzione Lambda specificata, quindi attende che quest’ultima restituisca un risultato. Con Lambda è possibile creare task senza effettuare il provisioning o gestire appositi server, in tutti i linguaggi supportati da Lambda. Per ulteriori informazioni sull’uso di Step Functions con Lambda, consulta la documentazione di Step Functions.

D: Come funziona AWS Step Functions con Amazon EC2 e altre risorse di elaborazione?

Tutti i lavori nella tua macchina a stati vengono eseguiti mediante task. Una task può essere un’attività che a sua volta può consistere in un codice scritto in un qualsiasi linguaggio. Le attività possono essere ospitate su Amazon EC2, Amazon ECS, dispositivi mobili, praticamente su qualsiasi computer in grado di comunicare con l’API di AWS Step Functions. Le attività interagiscono con Step Functions in polling lungo utilizzando chiamate API per richiedere un lavoro, ricevere i dati di input, eseguire il lavoro e restituire un risultato.

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

Amazon API Gateway è un servizio completamente gestito che semplifica agli sviluppatori la pubblicazione, la manutenzione, il monitoraggio e la protezione delle API su qualsiasi scala. Bastano pochi clic nella Console di gestione AWS per associare le API di Step Functions con metodi nell'API di API Gateway; in questo modo, quando viene inoltrata una richiesta HTTPS a un metodo API personalizzato, API Gateway richiamerà le operazioni API di Step Functions.

È possibile utilizzare l'API di Amazon API Gateway per avviare stati macchina di Step Functions che coordinino componenti di un'applicazione di back-end distribuita. È anche possibile integrare nelle fasi dell'applicazione attività manuali, ad esempio richieste di approvazione. Inoltre, è possibile inoltrare chiamate serverless asincrone alle API dei servizi utilizzati dall'applicazione.

Amazon API Gateway gestisce tutte le attività di accettazione ed elaborazione relative a centinaia di migliaia di chiamate API simultanee, inclusi gestione del traffico, controllo di accessi e autorizzazioni, monitoraggio e gestione delle versioni delle API.

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

Amazon CloudWatch è un servizio di monitoraggio per i servizi AWS e le applicazioni in esecuzione su AWS. Amazon CloudWatch raccoglie e monitora i parametri, imposta allarmi e reagisce automaticamente ai cambiamenti in AWS Step Functions.

Di seguito vengono riportati alcuni esempi di alcune cose che puoi fare con Amazon CloudWatch e AWS Step Functions:

  • Monitorare i parametri del flusso di lavoro di Step Functions.
  • Avviare flussi di lavoro di Step Functions in risposta a CloudWatch Events.
  • Generare allarmi quando Step Functions supera le soglie dei parametri.
  • Pianificare i flussi di lavoro di Step Functions per intervalli di tempo ridotti fino a un minuto tramite CloudWatch Events.

D: Posso utilizzare AWS Step Functions con le mie risorse locali?

Sì. Le applicazioni basate su Amazon Step Functions possono combinare lavoratori in esecuzione nel data center con lavoratori in esecuzione nel cloud. I lavoratori del data center continuano le operazioni come sempre, insieme agli eventuali lavoratori basati sul cloud.


D: Come si inizia a usare AWS Step Functions?

Per iniziare a usare AWS Step Functions, vai alla pagina dei dettagli di AWS Step Functions e fai clic sul pulsante “Inizia a usarlo gratis”. Se non disponi di un account Amazon Web Service, ti verrà chiesto di crearne uno. Una volta registrato, potrai lanciare una procedura guidata nella Console di AWS Step Functions che ti accompagnerà attraverso le fasi della creazione di una macchina a stati. Accedi a AWS Step Functions dalla Console di gestione AWS. Quindi seleziona il blueprint “Hello World” e aggiungi una funzione Lambda “HellWorld”. Ora puoi visualizzare in anteprima ed eseguire la tua macchina a stati. Per iniziare a utilizzare Amazon Step Functions nelle tue applicazioni, fai riferimento alla documentazione di Amazon Step Functions.

D: Quali linguaggi sono supportati da AWS Step Functions?

Puoi utilizzare qualsiasi linguaggio di programmazione per scrivere un’attività, a condizione che tu 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 codice scritto in Node.js (JavaScript), Python, Java (compatibile con Java 8) e C# (utilizzando il runtime .NET Core). Le macchine a stati sono definite in JSON utilizzando Amazon States Language.


D: Come si autenticano gli utenti?

AWS Step Functions è integrato con AWS Identity and Access Management (IAM). Le policy IAM possono essere usate per controllare l’accesso alle API di Step Functions.


D: Come avviene la fatturazione per l’utilizzo di AWS Step Functions?

Con AWS Step Functions paghi solo per il passaggio da una fase del flusso di lavoro nell’applicazione alla successiva, quello che viene denominato transizione di stato. La fatturazione si basa sulle transizioni di stato, indipendentemente dalla permanenza in un determinato stato (fino a un anno), il che rende il dimensionamento conveniente e semplice sia per poche esecuzioni al giorno che per milioni di operazioni al mese Per ulteriori informazioni, visita la pagina dei prezzi di AWS Step Functions.