Panoramica

  • Che 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. Si possono modificare e aggiungere fasi senza bisogno di scrivere 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.

  • 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, esplorare i casi d’uso e le testimonianze dei clienti di AWS Step Functions.

  • Come funziona AWS Step Functions?

    Usando AWS Step Functions, definisci macchine a stati che descrivono il tuo flusso di lavoro come una serie di step, 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, vedere Come agisce la funzione dei step nella guida dello sviluppatore AWS Step Functions.

  • Come si connette alle mie risorse AWS Step Functions?

    Puoi configurare la tua macchina a stati a eseguire lavori usando task di attività e task di servizi. Task di attività permette di assegnare uno specifico step nel tuo flusso di lavoro per codificare da qualche altra parte (conosciuto come un activity worker). Un activity worker può essere ogni applicazione che riesce a fare una connessione HTTP, ospitata ovunque. Per esempio, activity workers possono essere eseguiti su un istanza Amazon EC2, 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.

    Service tasks permette di connettere un step nel flusso di lavoro ad un servizio AWS supportato. La funzione step invia richieste ad altri servizi così che questi possano eseguire azioni per il flusso di lavoro; aspetta che il task di servizio sia completo e continua con il prossimo step.

    Una macchina a stati AWS Step Functions può contenere una combinazione di attività e servizi. Le applicazioni AWS Step Functions possono combinare activity workers in esecuzione in un data center con service tasks nel cloud. Gli workers del data center continuano le operazioni come sempre, insieme agli eventuali task basati sul cloud.

  • Come si inizia a usare AWS Step Functions?

    Ci sono vari modi per iniziare con AWS Step Functions:

  • Quali linguaggi sono supportati da AWS Step Functions?

    Le macchine a stati AWS Step Functions vengono definite in JSON attraverso Amazon States Language. Per creare un activity worker, puoi utilizzare qualsiasi linguaggio di programmazione, 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 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, vedere la Guida dello sviluppatore AWS Lambda.

Confronti

  • 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 (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).

  • 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 (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

  • 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 altri servizi AWS usando service tasks. 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. E possibile creare tasks nella macchina a stati che esegue applicazioni, vedere le Domande nella sezione Overview,In che modo AWS Step Functions si connette alle risorse?

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

    E possibile associare l’API Step Functions con Amazon API Gateway cosi che queste API richiamino la macchina a stati quando una richiesta HTTPS viene inviata ad un metodo API da te definito. E possibile usare Amazon API Gateway per accendere la macchina a stati Step Functions che coordina i componenti di un applicazione backend distribuita, e integrare task di attività umane negli step 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, Creare un Step Functions API usando API Gateway.

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

    AWS Step Functions invia metriche a 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 tuo flusso di lavoro, e crea e gestisce le regole CloudWatch nel tuo account AWS se necessario. Per maggiori informazioni, vedere Monitoraggio e Logging nella Guida dello sviluppatore AWS Step Functions.

Sicurezza

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