Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione dei flussi di lavoro e degli eventi Lambda
Quando si creano applicazioni serverless con Lambda, spesso sono necessari modi per orchestrare l'esecuzione delle funzioni e gestire gli eventi. AWS fornisce diversi approcci per coordinare le funzioni Lambda:
-
Funzioni durevoli Lambda per l'orchestrazione del flusso di lavoro incentrata sul codice all'interno di Lambda
-
AWS Step Functions per l'orchestrazione visiva del flusso di lavoro su più servizi
-
Amazon EventBridge Scheduler e Amazon EventBridge per architetture e pianificazioni basate sugli eventi
Puoi anche integrare questi approcci insieme. Ad esempio, è possibile utilizzare EventBridge Scheduler per attivare funzioni durevoli o flussi di lavoro Step Functions quando si verificano eventi specifici o configurare flussi di lavoro per pubblicare eventi su EventBridge Scheduler in punti di esecuzione definiti. I seguenti argomenti di questa sezione forniscono ulteriori informazioni su come utilizzare queste opzioni di orchestrazione.
Orchestrazione incentrata sul codice con funzioni durevoli
Le funzioni durevoli Lambda forniscono un approccio basato sul codice all'orchestrazione del flusso di lavoro, che consente di creare flussi di lavoro statici e di lunga durata direttamente all'interno delle funzioni Lambda. A differenza dei servizi di orchestrazione esterni, le funzioni durevoli mantengono la logica del flusso di lavoro all'interno del codice, semplificandone la versione, il test e la manutenzione insieme alla logica aziendale.
Le funzioni durevoli sono ideali quando hai bisogno di:
-
Definizione del flusso di lavoro incentrata sul codice: definisci i flussi di lavoro utilizzando linguaggi di programmazione familiari anziché JSON o visual designer
-
Processi a lunga durata: esegui flussi di lavoro che possono durare fino a un anno, ben oltre il limite di 15 minuti delle funzioni Lambda standard
-
Sviluppo semplificato: mantieni la logica del flusso di lavoro e la logica aziendale nella stessa base di codice per semplificare la manutenzione e i test
-
Attesa conveniente: sospende l'esecuzione durante gli stati di attesa senza consumare risorse di elaborazione
-
Gestione dello stato integrata: checkpoint automatico e persistenza dello stato senza configurazione dello storage esterno
Scelta tra funzioni durevoli e Step Functions
Sia Durable Functions che Step Functions offrono funzionalità di orchestrazione del flusso di lavoro, ma sono adatte a diversi casi d'uso:
| Considerazione | Funzioni durevoli | Step Functions |
|---|---|---|
| Definizione del workflow | Codice primario (, JavaScript Python, Java) | Amazon States Language o visual designer basato su JSON |
| Approccio allo sviluppo | Base di codice unica con logica aziendale | Definizione del flusso di lavoro e codice di funzione separati |
| Integrazione dei servizi | Tramite il codice della funzione Lambda e AWS SDKs | Integrazioni native con molti servizi AWS |
| Durata dell'esecuzione | Fino a 1 anno | Fino a 1 anno (Standard), 5 minuti (Express) |
| Elaborazione parallela | Promise.all () e modelli basati su codice | Stato parallelo e mappa distribuita |
| Gestione degli errori | Blocchi try-catch e logica di ripetizione personalizzata | Stati retry and catch integrati |
| Monitoraggio visivo | CloudWatch registri e dashboard personalizzati | Grafico di esecuzione visivo e cronologia dettagliata |
| Ideale per | Flussi di lavoro incentrati sugli sviluppatori, logica aziendale complessa, prototipazione rapida | Orchestrazione multiservizio, flussi di lavoro visivi, governance aziendale |
Utilizza funzioni durevoli quando:
-
Il tuo team preferisce approcci di sviluppo incentrati sul codice
-
La logica del flusso di lavoro è strettamente associata alla logica aziendale
-
Hai bisogno di prototipazione e iterazione rapide
-
I tuoi flussi di lavoro coinvolgono principalmente funzioni Lambda e semplici chiamate di servizio
Usa Step Functions quando:
-
Hai bisogno di progettazione e monitoraggio visivi del flusso di lavoro
-
I tuoi flussi di lavoro orchestrano più servizi in modo estensivo AWS
-
Sono necessarie funzionalità di governance e conformità aziendali
-
Le parti interessate non tecniche devono comprendere la logica del flusso di lavoro
Per ulteriori informazioni sulle funzioni durevoli, consulta Funzioni durevoli per Lambda.
Orchestrazione dei flussi di lavoro con Step Functions
AWS Step Functions è un servizio di orchestrazione del flusso di lavoro che consente di coordinare più funzioni Lambda e altri AWS servizi in flussi di lavoro strutturati. Questi flussi di lavoro possono mantenere lo stato, gestire gli errori con sofisticati meccanismi di ripetizione dei tentativi ed elaborare i dati su larga scala.
Step Functions offre due tipi di flussi di lavoro per soddisfare diverse esigenze di orchestrazione:
- Flussi di lavoro standard
-
Ideale per flussi di lavoro verificabili di lunga durata che richiedono una semantica di esecuzione esatta. I flussi di lavoro standard possono durare fino a un anno, fornire una cronologia di esecuzione dettagliata e supportare il debug visivo. Sono adatti per processi come l'evasione degli ordini, le pipeline di elaborazione dei dati o i lavori di analisi in più fasi.
- Flussi di lavoro rapidi
-
Progettato per high-event-rate carichi di lavoro di breve durata con at-least-once semantica di esecuzione. I flussi di lavoro Express possono durare fino a cinque minuti e sono ideali per l'elaborazione di eventi ad alto volume, le trasformazioni di dati in streaming o gli scenari di ingestione di dati IoT. Offrono un throughput più elevato e costi potenzialmente inferiori rispetto ai flussi di lavoro standard.
Nota
Per ulteriori informazioni sui tipi di flusso di lavoro di Step Functions, vedere Scelta del tipo di flusso di lavoro in Step Functions.
All'interno di questi flussi di lavoro, Step Functions fornisce due tipi di stati della mappa per l'elaborazione parallela:
- Mappa in linea
-
Elabora gli elementi di un array JSON all'interno della cronologia di esecuzione del flusso di lavoro principale. Inline Map supporta fino a 40 iterazioni simultanee ed è adatto per set di dati più piccoli o quando è necessario mantenere tutte le elaborazioni all'interno di un'unica esecuzione. Per ulteriori informazioni, vedere Utilizzo dello stato della mappa in modalità Inline.
- Mappa distribuita
-
Consente l'elaborazione di carichi di lavoro paralleli su larga scala iterando su set di dati che superano i 256 KiB o richiedono più di 40 iterazioni simultanee. Con il supporto per un massimo di 10.000 esecuzioni parallele di flussi di lavoro secondari, Distributed Map eccelle nell'elaborazione di dati semistrutturati archiviati in Amazon S3, come file JSON o CSV, il che la rende ideale per l'elaborazione in batch e le operazioni ETL. Per ulteriori informazioni, consulta Utilizzo dello stato della mappa in modalità distribuita.
Combinando questi tipi di flusso di lavoro e gli stati della mappa, Step Functions fornisce un set di strumenti flessibile e potente per orchestrare applicazioni serverless complesse, da operazioni su piccola scala a pipeline di elaborazione dati su larga scala.
Per iniziare a usare Lambda con Step Functions, vedi Orchestrating Lambda functions with Step Functions.
Gestione degli eventi con Stand Scheduler EventBridge EventBridge
Amazon EventBridge è un servizio di bus per eventi che ti aiuta a creare architetture basate sugli eventi. Instrada gli eventi tra AWS servizi, applicazioni integrate e applicazioni SaaS (Software as a Service). EventBridge Scheduler è uno scheduler senza server che consente di creare, eseguire e gestire attività da un unico servizio centrale, che consente di richiamare le funzioni Lambda in base a una pianificazione utilizzando le espressioni cron e rate o di configurare chiamate singole.
Amazon EventBridge e EventBridge Scheduler ti aiutano a creare architetture basate sugli eventi con Lambda. EventBridge indirizza gli eventi tra AWS servizi, applicazioni integrate e applicazioni SaaS, mentre EventBridge Scheduler fornisce funzionalità di pianificazione specifiche per richiamare le funzioni Lambda su base ricorrente o una tantum.
Questi servizi offrono diverse funzionalità chiave per lavorare con le funzioni Lambda:
-
Crea regole che corrispondono e instradano gli eventi alle funzioni Lambda utilizzando EventBridge
-
Imposta chiamate di funzioni ricorrenti utilizzando le espressioni cron e rate con Scheduler EventBridge
-
Configura le chiamate di funzioni una tantum in date e orari specifici
-
Definisci finestre temporali flessibili e riprova le politiche per le chiamate pianificate
Per ulteriori informazioni, consulta Richiamo di una funzione Lambda su una pianificazione.