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à.
Concatenate AWS i servizi utilizzando un approccio serverless
Creato da Aniket Braganza () AWS
Ambiente: produzione | Tecnologie: serverless;; CloudNative; Modernizzazione DevelopmentAndTesting DevOps; Infrastruttura | AWSservizi: Amazon S3; Amazon; SNS AmazonSQS; Lambda 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), Amazon Simple Queue Service (SNSAmazon) e Lambda. SQS AWS L'esempio di file caricato è a scopo dimostrativo. È possibile utilizzare un approccio serverless per completare altre attività concatenando la combinazione di AWS servizi necessari per raggiungere gli 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 AWS i servizi tramite un approccio serverless. Ad esempio, puoi utilizzare un approccio che combina Lambda con Amazon S3 anziché Amazon e AmazonSNS. 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 attivo AWS
Accesso programmatico all'AWSaccount. Per ulteriori informazioni, consultare:
Prerequisiti nella documentazione del AWS Cloud Development Kit (AWSCDK)
Prerequisiti nella documentazione dell'interfaccia AWS a riga di comando () AWS CLI
AWSCDK, installato
AWSCLI, installato e configurato
Versioni del prodotto
AWSCDK2.x
Python 3.9
Architettura
Il diagramma seguente illustra come i AWS servizi 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'SNSargomento viene inserito in una SQS coda, che viene sottoscritta e riceve notifiche relative a quell'argomento.
Una funzione Lambda esegue il polling della SQS coda (come origine degli eventi) e attende l'elaborazione dei messaggi.
Quando la funzione Lambda riceve messaggi dalla SQS coda, li elabora e ne conferma la ricezione.
Stack tecnologico
Amazon S3
Amazon SNS
Amazon SQS
AWSLambda
Strumenti
AWSservizi
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 (AmazonSNS) 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 (AmazonSQS) fornisce una coda ospitata sicura, durevole e disponibile che ti aiuta a integrare e disaccoppiare sistemi e componenti software distribuiti.
AWSLambda è un servizio di elaborazione che ti aiuta a eseguire il codice senza dover fornire o gestire server. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
Altri strumenti
AWSCloud Development Kit (AWSCDK) è lo strumento principale per interagire con la tua AWS CDK app. Esegue la tua app, interroga il modello di applicazione che hai definito e produce e distribuisce i AWS CloudFormation modelli generati da. AWS CDK
AWSCommand Line Interface (AWSCLI) è uno strumento open source che consente di interagire con i AWS servizi tramite comandi nella shell della 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 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 Bootstrap nella AWS documentazione per avviare l'ambiente per la AWS CDK distribuzione in ogni AWS regione in cui verrà distribuito lo CloudFormation stack. Nota: questo passaggio richiede credenziali con accesso programmatico. | Sviluppatore di app, DevOps ingegnere, ingegnere dei dati |
Implementa lo CloudFormation stack. | Esegui il | Sviluppatore di app, ingegnere, DevOps 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 |