Sottoscrivi una funzione Lambda alle notifiche di eventi dai bucket S3 in diverse regioni AWS - Prontuario AWS

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

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.

Il diagramma mostra il flusso di lavoro seguente:

  1. 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.

  2. L'argomento SNS pubblica l'evento in una coda SQS nella regione centrale.

  3. La coda SQS è configurata come origine degli eventi per la funzione Lambda e memorizza nel buffer i messaggi di evento per la funzione Lambda. 

  4. 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àDescrizioneCompetenze 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:

  • Un ruolo di esecuzione Lambda

  • Una funzione Lambda per elaborare gli eventi di Amazon S3

  • Una coda SQS

Nota: assicurati di configurare la coda SQS come origine degli eventi per la tua funzione Lambda.

AWS DevOps, architetto del cloud
AttivitàDescrizioneCompetenze 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.

  1. Apri la console Amazon SNS, scegli Argomenti, quindi scegli l'argomento SNS che hai creato in precedenza.

  2. Scegli Modifica, quindi espandi la sezione Politica di accesso - opzionale.

  3. Allega la seguente politica di accesso al tuo argomento SNS per consentire sns:publish l'autorizzazione per Amazon S3, quindi scegli Salva:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "0", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:us-west-2::s3Events-SNSTopic-us-west-2" } ] }
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