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à.
Sottoscrivi una funzione Lambda alle notifiche di eventi dai bucket S3 in diverse regioni AWS
Creato da Suresh Konathala, Andrew Preston e Arindom Sarkar
Ambiente: produzione | Tecnologie: analisi | Servizi AWS: AWS Lambda; Amazon S3; Amazon SNS; Amazon SQS |
Riepilogo
Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) Event Notifications pubblica notifiche per determinati eventi nel tuo bucket S3 (ad esempio, eventi di creazione di oggetti, eventi di rimozione di oggetti o eventi di ripristino di oggetti). Puoi utilizzare una funzione AWS Lambda per elaborare queste notifiche in base ai requisiti dell'applicazione. Tuttavia, la funzione Lambda non può sottoscrivere direttamente le notifiche dei bucket S3 ospitati in diverse regioni AWS.
L'approccio di questo pattern implementa uno scenario di fanout per elaborare le notifiche Amazon S3 da bucket S3 interregionali utilizzando un argomento Amazon Simple Notification Service (Amazon SNS) per ogni regione. Questi argomenti SNS regionali inviano le notifiche degli eventi di Amazon S3 a una coda Amazon Simple Queue Service (Amazon SQS) in una regione centrale che contiene anche la tua funzione Lambda. La funzione Lambda si iscrive a questa coda SQS ed elabora le notifiche degli eventi in base ai requisiti dell'organizzazione.
Prerequisiti e limitazioni
Prerequisiti
Un account AWS attivo.
Bucket S3 esistenti in più regioni, inclusa una regione centrale per ospitare la coda Amazon SQS e la funzione Lambda.
AWS Command Line Interface (AWS CLI), installata e configurata. Per ulteriori informazioni su questo argomento, consulta Installazione, aggiornamento e disinstallazione dell'interfaccia a riga di comando di AWS nella documentazione dell'interfaccia a riga di comando di AWS.
Familiarità con lo scenario fanout in Amazon SNS. Per ulteriori informazioni su questo argomento, consulta gli scenari comuni di Amazon SNS nella documentazione di Amazon SNS.
Architettura
Il diagramma seguente mostra l'architettura per l'approccio di questo pattern.
![Workflow utilizza Amazon SNS, S3 e SQS per elaborare notifiche di eventi da bucket S3 interregionali.](images/pattern-img/cf6c1804-8c41-46f1-9f17-ff361708c595/images/760cf4c0-0cb3-48d1-92ae-1cf0fa8ae076.png)
Il diagramma mostra il flusso di lavoro seguente:
Amazon S3 invia notifiche di eventi sui bucket S3 (ad esempio, oggetti creati, oggetti rimossi o oggetti ripristinati) a un argomento SNS nella stessa regione.
L'argomento SNS pubblica l'evento in una coda SQS nella regione centrale.
La coda SQS è configurata come origine degli eventi per la funzione Lambda e memorizza nel buffer i messaggi di evento per la funzione Lambda.
La funzione Lambda analizza la coda SQS alla ricerca di messaggi ed elabora le notifiche degli eventi di Amazon S3 in base ai requisiti dell'applicazione.
Stack tecnologico
Lambda
Amazon SNS
Amazon SQS
Amazon S3
Strumenti
AWS CLI — L'AWS Command Line Interface (AWS CLI) è uno strumento open source per interagire con i servizi AWS tramite comandi nella shell della riga di comando. Con una configurazione minima, puoi eseguire comandi AWS CLI che implementano funzionalità equivalenti a quelle fornite dalla Console di gestione AWS basata su browser da un prompt dei comandi.
AWS CloudFormation: AWS ti CloudFormation aiuta a modellare e configurare le tue risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle per tutto il loro ciclo di vita. Puoi utilizzare un modello per descrivere le tue risorse e le loro dipendenze e lanciarle e configurarle insieme come uno stack, invece di gestire le risorse singolarmente. Puoi gestire e fornire stack su più account AWS e regioni AWS.
AWS Lambda: AWS Lambda è un servizio di elaborazione che supporta l'esecuzione di codice senza effettuare il provisioning o la gestione di server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. Verrà addebitato soltanto il tempo di calcolo consumato e non verrà addebitato alcun costo quando il codice non è in esecuzione.
Amazon SNS — Amazon Simple Notification Service (Amazon SNS) coordina e gestisce la consegna o l'invio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail. I sottoscrittori ricevono tutti gli stessi messaggi pubblicati sugli argomenti ai quali sono hanno effettuato la sottoscrizione.
Amazon SQS — Amazon Simple Queue Service (Amazon SQS) offre una coda ospitata sicura, durevole e disponibile che consente di integrare e disaccoppiare sistemi e componenti software distribuiti. Amazon SQS supporta sia le code standard che quelle FIFO.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea una coda SQS con un trigger Lambda. | Accedi alla Console di gestione AWS e utilizza le istruzioni del tutorial Using Lambda with Amazon SQS nella documentazione di AWS Lambda per creare le seguenti risorse nella tua regione centrale:
Nota: assicurati di configurare la coda SQS come origine degli eventi per la tua funzione Lambda. | AWS DevOps, architetto del cloud |
Attività | Descrizione | Competenze richieste |
---|---|---|
Crea un argomento SNS per ricevere notifiche sugli eventi di Amazon S3. | Crea un argomento SNS in una regione da cui desideri ricevere notifiche sugli eventi di Amazon S3. Per ulteriori informazioni su questo argomento, consulta l'argomento Creazione di un SNS nella documentazione di Amazon SNS. Importante: assicurati di registrare l'Amazon Resource Name (ARN) del tuo argomento SNS. | AWS DevOps, architetto del cloud |
Sottoscrivi l'argomento SNS alla coda SQS centrale. | Sottoscrivi il tuo argomento SNS alla coda SQS ospitata dalla tua regione centrale. Per ulteriori informazioni su questo argomento, consulta l'argomento Abbonamento a un SNS nella documentazione di Amazon SNS. | AWS DevOps, architetto del cloud |
Aggiorna la politica di accesso dell'argomento SNS. |
| AWS DevOps, architetto del cloud |
Configura le notifiche per ogni bucket S3 nella regione. | Imposta le notifiche degli eventi per ogni bucket S3 nella regione. Per ulteriori informazioni su questo argomento, consulta Attivazione e configurazione delle notifiche di eventi utilizzando la console Amazon S3 nella documentazione di Amazon S3. Nota: nella sezione Destinazione, scegli l'argomento SNS e specifica l'ARN dell'argomento SNS creato in precedenza. | AWS DevOps, architetto del cloud |
Ripeti questa storia epica per tutte le regioni richieste. | Importante: ripeti le attività di questa epopea per ogni regione da cui desideri ricevere notifiche sugli eventi di Amazon S3, inclusa la tua regione centrale. | AWS DevOps, architetto del cloud |
Risorse correlate
Configurazione di una policy di accesso (documentazione Amazon SQS)
Configurazione di una coda SQS come origine di eventi (documentazione AWS Lambda)
Configurazione di una coda SQS per avviare una funzione Lambda (documentazione Amazon SQS)
AWS::Lambda::Function risorsa ( CloudFormation documentazione AWS)