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à.
Concatena i servizi AWS utilizzando un approccio serverless
Creato da Aniket Braganza (AWS)
Riepilogo
Questo modello dimostra un approccio scalabile e serverless per l'elaborazione di un file caricato concatenando Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (Amazon SQS) e AWS Lambda. L'esempio di file caricato è a scopo dimostrativo. Puoi utilizzare un approccio serverless per completare altre attività concatenando la combinazione di servizi AWS necessari per raggiungere i tuoi obiettivi aziendali. L'approccio serverless utilizza un flusso di lavoro asincrono che si basa su notifiche basate sugli eventi, archiviazione resiliente e elaborazione Function as a Service (FaaS) per elaborare le richieste. È possibile utilizzare l'approccio serverless per scalare in modo da soddisfare la domanda riducendo al minimo i costi.
Nota
Esistono diverse opzioni per concatenare i servizi AWS tramite un approccio serverless. Ad esempio, puoi utilizzare un approccio che combina Lambda con Amazon S3 anziché Amazon SNS e Amazon SQS. Tuttavia, questo modello utilizza Amazon SNS e Amazon SQS perché questo approccio consente di aggiungere più punti di integrazione al processo di invocazione Lambda durante una notifica di evento e di estendere l'implementazione per includere più listener in un'orchestrazione serverless, riducendo al minimo il sovraccarico di elaborazione.
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo
Accesso programmatico all'account AWS. Per ulteriori informazioni, consultare:
Prerequisiti nella documentazione di AWS Cloud Development Kit (AWS CDK)
Prerequisiti nella documentazione AWS Command Line Interface (AWS CLI)
CLI AWS, installata e configurata
Versioni del prodotto
CDK AWS 2.x
Python 3.9
Architettura
Il diagramma seguente illustra come i servizi AWS concatenati possono consentire a un utente di caricare un file in un bucket S3 per l'elaborazione.

Il diagramma mostra il flusso di lavoro seguente:
Un utente carica un file nel bucket S3.
Il caricamento avvia un evento S3 che pubblica un messaggio su un argomento SNS. Il messaggio contiene i dettagli dell'evento S3.
Il messaggio pubblicato sull'argomento SNS viene inserito in una coda SQS, che è sottoscritta e riceve notifiche relative a quell'argomento.
Una funzione Lambda esegue il polling della coda SQS (come origine degli eventi) e attende l'elaborazione dei messaggi.
Quando la funzione Lambda riceve messaggi dalla coda SQS, li elabora e conferma la ricezione di tali messaggi.
Stack tecnologico
Amazon S3
Amazon SNS
Amazon SQS
AWS Lambda
Strumenti
Servizi AWS
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
Amazon Simple Notification Service (Amazon SNS) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.
Amazon Simple Queue Service (Amazon SQS) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.
AWS Lambda è un servizio di elaborazione che ti aiuta a eseguire codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di calcolo che utilizzi.
Altri strumenti
AWS Cloud Development Kit (AWS CDK) è lo strumento principale per interagire con la tua app AWS CDK. Esegue la tua app, interroga il modello applicativo che hai definito e produce e distribuisce i CloudFormation modelli AWS generati dal CDK AWS.
AWS Command Line Interface (AWS CLI) è uno strumento open source che ti aiuta a interagire con i servizi AWS tramite comandi nella tua shell a riga di comando.
Python
è un linguaggio di programmazione generico interpretato di alto livello.
Codice
Il codice per questo pattern è disponibile nel repository GitHub Chaining S3 to SNS to SQS to Lambda.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Clonare il repository. | Clona il repository | Sviluppatore di app |
Configura un ambiente virtuale. |
| Sviluppatore di app |
Installare le dipendenze. | Esegui il comando | Sviluppatore di app |
Attività | Descrizione | Competenze richieste |
---|---|---|
Esegui test unitari. |
| Sviluppatore di app, tecnico di test |
Attività | Descrizione | Competenze richieste |
---|---|---|
Configura l'ambiente bootstrap. | Segui le istruzioni in Bootstrapping nella documentazione AWS per avviare l'ambiente per la distribuzione di AWS CDK in ogni regione AWS in cui verrà distribuito lo CloudFormation stack. NotaQuesto passaggio richiede credenziali con accesso programmatico. | Sviluppatore di app, DevOps ingegnere, ingegnere dei dati |
Implementa lo CloudFormation stack. | Esegui il | Sviluppatore di app, DevOps ingegnere, AWS DevOps |
Attività | Descrizione | Competenze richieste |
---|---|---|
Elimina lo CloudFormation stack e rimuovi le risorse associate. | Per eliminare lo CloudFormation stack creato e rimuovere tutte le risorse associate, esegui il comando | Sviluppatore di app |