0Pricing
Cloud & IT Cert Prep · Lezione

Step Functions: orchestrazione dei flussi di lavoro serverless

Definire flussi di lavoro composti da più passaggi come macchine a stati in Step Functions, gestire gli errori con blocchi catch e retry e integrare le integrazioni SDK native

Step Functions: orchestrazione dei flussi di lavoro serverless è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Che cosa sono AWS Step Functions?

AWS Step Functions è un servizio completamente gestito per l'orchestrazione dei workflow, che coordina applicazioni distribuite come una serie di passaggi definiti in una macchina a stati. Ogni passaggio della macchina a stati è uno stato: un'invocazione Lambda, una chiamata AWS SDK, un periodo di attesa, un ramo parallelo o una scelta (if/else). Step Functions gestisce lo stato, i tentativi e fornisce una cronologia visiva delle esecuzioni, eliminando la necessità di scrivere la logica di orchestrazione nel codice dell'applicazione.

Amazon States Language (ASL)

Le macchine a stati sono definite in Amazon States Language (ASL), un linguaggio basato su JSON. Ogni stato ha un Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) e passa a uno stato Next oppure termina. Il campo Resource di uno stato Task specifica il servizio AWS da richiamare: un ARN per Lambda oppure un ARN di integrazione ottimizzata del servizio per oltre 200 servizi AWS, senza una Lambda intermedia.

{
  'Comment': 'Order processing workflow',
  'StartAt': 'ValidateOrder',
  'States': {
    'ValidateOrder': {
      'Type': 'Task',
      'Resource': 'arn:aws:lambda:us-east-1:123456789012:function:ValidateOrder',
      'Next': 'ChargePayment',
      'Retry': [{'ErrorEquals': ['Lambda.ServiceException'], 'IntervalSeconds': 2, 'MaxAttempts': 3}]
    },
    'ChargePayment': {
      'Type': 'Task',
      'Resource': 'arn:aws:states:::dynamodb:putItem',
      'Parameters': {'TableName': 'Orders', 'Item': {'orderId': {'S.$': '$.orderId'}}},
      'End': true
    }
  }
}

Workflow Standard ed Express

Step Functions offre due tipi di workflow. Workflow Standard: durevoli, con durata fino a 1 anno, semantica di esecuzione esattamente una volta e cronologia completa dell'esecuzione conservata per 90 giorni; sono adatti ai processi aziendali di lunga durata. Workflow Express: throughput elevato (oltre 100.000 esecuzioni al secondo), durata fino a 5 minuti, semantica almeno una volta e log inviati a CloudWatch; sono adatti all'elaborazione di eventi in tempo reale e alle pipeline di dati IoT. Scelga in base ai requisiti di durata, throughput e idempotenza.

# Create a Standard workflow state machine
aws stepfunctions create-state-machine \
  --name OrderProcessing \
  --definition file://order-state-machine.json \
  --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
  --type STANDARD

# Create an Express workflow for high-throughput
aws stepfunctions create-state-machine \
  --name ClickstreamProcess \
  --definition file://click-state-machine.json \
  --role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
  --type EXPRESS

Stati Task e integrazioni dei servizi

Gli stati Task di Step Functions supportano due pattern di integrazione. Request-Response: richiama un servizio AWS e procede immediatamente (fire-and-forget). Integrazione sincrona: richiama un servizio e attende il completamento prima di passare allo stato successivo (ad esempio, attende il completamento di un task ECS, di un job Glue o di un job di addestramento SageMaker). L'integrazione sincrona usa il suffisso :sync:2 nell'ARN della risorsa ed elimina la necessità della logica di polling.

# Sync integration: start Glue job and wait for completion
'RunGlueETL': {
  'Type': 'Task',
  'Resource': 'arn:aws:states:::glue:startJobRun.sync:2',
  'Parameters': {
    'JobName': 'clean-sales'
  },
  'Next': 'RunAthenaQuery'
}

Stati Choice per la logica di diramazione

Uno stato Choice implementa una diramazione condizionale, equivalente in un workflow a un'istruzione if/else o switch. Definisce Choices come array di condizioni; la prima condizione corrispondente determina lo stato successivo. Uno stato Default gestisce i casi senza corrispondenza. Gli stati Choice consentono di instradare un ordine verso diversi percorsi di evasione in base al tipo di prodotto, alla categoria del cliente o allo stato del pagamento, senza scrivere logica condizionale in Lambda.

'RouteByOrderType': {
  'Type': 'Choice',
  'Choices': [
    {
      'Variable': '$.orderType',
      'StringEquals': 'DIGITAL',
      'Next': 'FulfillDigital'
    },
    {
      'Variable': '$.orderType',
      'StringEquals': 'PHYSICAL',
      'Next': 'FulfillPhysical'
    }
  ],
  'Default': 'HandleUnknownType'
}

Stati Parallel e Map

Uno stato Parallel esegue più rami contemporaneamente e attende che tutti siano completati prima di proseguire, risultando utile per attività concorrenti come eseguire contemporaneamente un controllo del credito e un controllo dell'inventario. Uno stato Map itera su un array nell'input e applica lo stesso insieme di stati a ogni elemento in parallelo; è utile per elaborare un batch di elementi restituiti da un passaggio precedente, ad esempio per ridimensionare più immagini caricate.

'ProcessImages': {
  'Type': 'Map',
  'ItemsPath': '$.imageKeys',
  'MaxConcurrency': 10,
  'Iterator': {
    'StartAt': 'ResizeImage',
    'States': {
      'ResizeImage': {
        'Type': 'Task',
        'Resource': 'arn:aws:lambda:us-east-1:123:function:ResizeImage',
        'End': true
      }
    }
  },
  'Next': 'NotifyComplete'
}

Gestione degli errori: Catch e Retry

Ogni stato Task in Step Functions può includere blocchi Retry e Catch per una gestione resiliente degli errori. Retry specifica quali tipi di errore attivano automaticamente nuovi tentativi, con IntervalSeconds, MaxAttempts e BackoffRate configurabili (moltiplicatore del backoff esponenziale). Catch specifica gli stati di fallback per gli errori non recuperabili. Questa gestione dichiarativa degli errori evita blocchi try/catch ripetitivi all'interno delle funzioni Lambda.

'ChargeCard': {
  'Type': 'Task',
  'Resource': 'arn:aws:lambda:us-east-1:123:function:ChargeCard',
  'Retry': [{
    'ErrorEquals': ['Lambda.ServiceException', 'States.TaskFailed'],
    'IntervalSeconds': 2,
    'MaxAttempts': 3,
    'BackoffRate': 2.0
  }],
  'Catch': [{
    'ErrorEquals': ['PaymentDeclined'],
    'Next': 'NotifyPaymentFailed',
    'ResultPath': '$.error'
  }],
  'Next': 'FulfillOrder'
}

Stati Wait e callback

Uno stato Wait sospende l'esecuzione del workflow per una durata fissa o fino a uno specifico timestamp. Un pattern Callback (che usa .waitForTaskToken) sospende l'esecuzione finché un sistema esterno non chiama SendTaskSuccess o SendTaskFailure con il token. In questo modo Step Functions modella i passaggi di approvazione umana: invia un'email con il token dell'attività e il workflow riprende quando una persona fa clic sul link di approvazione o rifiuto nel proprio client email.

# Callback pattern: wait for human approval
'RequestApproval': {
  'Type': 'Task',
  'Resource': 'arn:aws:states:::sqs:sendMessage.waitForTaskToken',
  'Parameters': {
    'QueueUrl': 'https://sqs.us-east-1.amazonaws.com/123/approvals',
    'MessageBody': {
      'taskToken.$': '$$.Task.Token',
      'orderId.$': '$.orderId'
    }
  },
  'Next': 'ProcessApproval'
}

Integrazione di Step Functions con EventBridge

Le esecuzioni di Step Functions possono essere avviate dalle regole EventBridge, semplificando l'attivazione dei workflow in risposta agli eventi dei servizi AWS. Ad esempio, un evento S3 ObjectCreated attiva una regola EventBridge che avvia un workflow Step Functions per l'elaborazione delle immagini. Step Functions può anche pubblicare i propri eventi su EventBridge quando le esecuzioni hanno esito positivo o negativo, consentendo il monitoraggio e gli avvisi a valle senza eseguire il polling dell'API Step Functions.

Monitoraggio delle esecuzioni di Step Functions

La console Step Functions fornisce un diagramma visivo dell'esecuzione del workflow che mostra quale stato è riuscito, quale è in esecuzione e quale ha avuto esito negativo, con colori distintivi in tempo reale. Ogni esecuzione conserva la cronologia completa di input e output per i workflow Standard (conservazione di 90 giorni). Per i workflow Express, i log vengono inviati a CloudWatch Logs. Usi il tracing X-Ray per tracciare la latenza end-to-end delle richieste tra le funzioni Lambda e gli altri servizi chiamati nel workflow.

# List recent executions and check status
aws stepfunctions list-executions \
  --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:OrderProcessing \
  --status-filter FAILED

# Describe a specific failed execution for debugging
aws stepfunctions describe-execution \
  --execution-arn arn:aws:states:us-east-1:123456789012:execution:OrderProcessing:exec-001

Step Functions a confronto con SQS ed EventBridge

Capire quando usare Step Functions anziché SQS o EventBridge è un caso frequente nelle domande d'esame. Usi Step Functions quando è necessaria un'orchestrazione visibile e con stato di un processo composto da più passaggi, con gestione degli errori e diramazioni. Usi SQS per una messaggistica asincrona point-to-point affidabile tra due servizi, con nuovi tentativi tramite il visibility timeout. Usi EventBridge per instradare gli eventi verso più sottoscrittori in base a pattern del contenuto. Un workflow Step Functions può integrare tutti e tre: attendere un messaggio SQS tramite un token dell'attività, pubblicare il completamento su EventBridge e concatenare chiamate Lambda e SDK.

Verifica rapida

Verifichi la Sua comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha imparato che: Step Functions orchestra i flussi di lavoro come macchine a stati con gli stati Task, Choice, Parallel, Map, Wait e Catch, i flussi di lavoro Standard supportano una durata massima di 1 anno con la cronologia completa delle esecuzioni, mentre i flussi di lavoro Express gestiscono carichi ad alto throughput di durata inferiore a 5 minuti e il pattern Callback con i token delle attività consente di implementare fasi di approvazione con coinvolgimento umano. Ora analizzeremo Kinesis Data Streams per l'elaborazione di eventi in tempo reale ad alto throughput.

Domande Frequenti

La lezione «Step Functions: orchestrazione dei flussi di lavoro serverless» è gratuita?

Sì — il testo completo di «Step Functions: orchestrazione dei flussi di lavoro serverless» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Step Functions: orchestrazione dei flussi di lavoro serverless»?

Definire flussi di lavoro composti da più passaggi come macchine a stati in Step Functions, gestire gli errori con blocchi catch e retry e integrare le integrazioni SDK native Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Step Functions: orchestrazione dei flussi di lavoro serverless»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. EventBridge: bus degli eventi e regole
  2. Step Functions: orchestrazione dei flussi di lavoro serverless
  3. Kinesis Data Streams per l'elaborazione degli eventi in tempo reale
  4. Pattern di choreography e orchestration
← Torna a Cloud & IT Cert Prep