Pubblicato il 02/07/2022 da alnao nella categoria AWS

Il servizio Step Function è uno dei più innovativi servizi disponibili su AWS: permette di costruire flussi e state machine senza la scrittura di molto codice e senza la definizione dell’infrastruttura di esecuzione in quanto è classificato come server-less. E’ un servizio low-code per definisce processi business grazie ad un workflow visuale con l’interfacciamento di altri servizi in maniera veloce e sicura. Spesso una step function viene anche State Machine tanto che i due concetti vengono spessi confusi, usando le traduzioni migliori disponibili possiamo dire che:

  • step function è il nome del servizio AWS usato per definire state machine
  • state machine è la singola definizione di una sequenza di operazioni
  • task è il nome di ogni singola operazione/passo eseguito all’interno di una state machine

All’interno della console sono elencate tutte le state machine disponibili, all’interno del dettaglio di ogni singola state è possibile vedere tutte le esecuzioni , i relativi log e lo schema di definizione. La definizione di una state machine è un elenco di task che possono essere rappresentati come file json, file yaml oppure in forma grafica come schema grazie ad un servizio chiamato “Graph inspector”. I task base chiamati “flow” possono essere del tipo:

  • pass: inserire dati in output
  • choise: definizione di una istruzione logica a seconda dell’input
  • wait: aggiungere un delay alla state machine
  • success: termina l’esecuzione con un successo
  • fail: termina l’esecuzione con un errore
  • parralel: implementa esecuzioni parallele
  • task: talvolta vengono chiamati task quei passi che eseguono altri servizi come funzioni lambda o altri servizi

Usando la console di AWS è possibile creare manualmente una StateMachine scrivendo il codice manualmente oppure l’opzione per disegnare il flow selezionando l’opzione “Design your workflow visually”. Nel diagramma si possono inserire i tipi descritti poco fa nella vista “flow” oppure inserire oggetti AWS nella vista “actions”, in questo secondo caso si possono inserire

  • esecuzioni di funzioni Lambda
  • push su code SNS
  • esecuzioni di task ECS
  • esecuzioni ad altre state machin
  • esecuzione di job AWS Glue

Una delle funzionalità principali di AWS Toolit su MS Visual Studio Code è la creazione di state machine si rimanda all’articolo dedicato per una mini guida.