Spiegazione passo per passo: configurare un bucket per le notifiche (argomento SNS o coda SQS)
Puoi ricevere notifiche Amazon S3 utilizzando Amazon Simple Notification Service (Amazon SNS) o Amazon Simple Queue Service (Amazon SQS). In questa guida, si aggiunge una configurazione di notifica al bucket utilizzando un topic Amazon SNS e una coda Amazon SQS.
Nota
Le code FIFO (First-In-First-Out) di Amazon Simple Queue Service non sono supportate come destinazione delle notifiche degli eventi di Amazon S3. Per inviare una notifica per un evento Amazon S3 a una coda FIFO di Amazon SQS, puoi utilizzare Amazon EventBridge. Per ulteriori informazioni, consulta Abilitazione di Amazon EventBridge.
Argomenti
Riassunto del percorso
Questa spiegazione passo per passo aiuta a completare le seguenti operazioni:
-
Pubblica eventi del tipo
s3:ObjectCreated:*
su una coda Amazon SQS. -
Pubblica eventi del tipo
s3:ReducedRedundancyLostObject
su un argomento Amazon SNS.
Per informazioni sulla configurazione delle notifiche, consulta Utilizzo di Amazon SQS, Amazon SNS e Lambda.
È possibile eseguire tutte queste fasi utilizzando la console, senza scrivere alcun codice. Inoltre, vengono forniti esempi di codice che utilizzano gli SDK AWS per Java e .NET per aiutare l'utente ad aggiungere configurazioni di notifica in modo programmatico.
La procedura include le seguenti fasi:
-
Creare una coda Amazon SQS.
Attraverso la console di Amazon SQS, crea una coda SQS. È possibile accedere a tutti i messaggi che Amazon S3 invia alla coda in modo programmatico. Tuttavia, per questa procedura guidata, i messaggi di notifica si verificano nella console.
Si allega un criterio di accesso alla coda per concedere ad Amazon S3 il permesso di pubblicare i messaggi.
-
Creare un argomento Amazon SNS.
Utilizzando la console di Amazon SNS, crea un argomento SNS e iscriviti all'argomento. In questo modo, riceverai tutti gli eventi pubblicati. Si specifica la posta elettronica come protocollo di comunicazione. Dopo aver creato un argomento, Amazon SNS invia un'e-mail. È necessario utilizzare il collegamento nell'e-mail per confermare la sottoscrizione all'argomento.
Si allega un criterio di accesso all'argomento per concedere ad Amazon S3 l'autorizzazione a pubblicare i messaggi.
-
Aggiungere una configurazione delle notifiche a un bucket.
Fase 1: creare una coda Amazon SQS
Segui le fasi per creare una coda Amazon Simple Queue Service (Amazon SQS) ed effettuarvi la sottoscrizione.
-
Utilizzando la console di Amazon SQS, creare una coda. Per istruzioni, consulta la sezione Nozioni di base su Amazon SQS nella Guida per gli sviluppatori di Amazon Simple Queue Service.
-
Sostituire la policy di accesso allegata alla coda con la policy riportata di seguito.
-
Nella console Amazon SQS, nell'elenco Code , scegli il nome della coda.
-
Nella scheda Criteri di accesso , scegli Modifica.
-
Sostituire la policy di accesso allegata alla coda. Fornisci l'ARN di Amazon SQS, il nome del bucket di origine e l'ID dell'account del proprietario del bucket.
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "
SQS-queue-ARN
", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:awsexamplebucket1
" }, "StringEquals": { "aws:SourceAccount": "bucket-owner-account-id
" } } } ] } -
Scegli Salva.
-
-
(Facoltativo) Se la coda Amazon SQS o l'argomento Amazon SNS sono abilitati per la crittografia lato server (SSE) con AWS Key Management Service (AWS KMS), aggiungi la policy seguente alla chiave di crittografia simmetrica gestita dal cliente associata.
È necessario aggiungere il criterio a una chiave gestita dal cliente, perché non è possibile modificare la chiave gestita AWS per Amazon SQS o Amazon SNS.
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" } ] }
Per ulteriori informazioni sull'uso di SSE per Amazon SQS e Amazon SNS con AWS KMS, consulta quanto segue:
-
Gestione delle chiavi nella Guida per sviluppatori di Amazon Simple Notification Service.
-
Gestione delle chiavi nella Guida per sviluppatori di Amazon Simple Queue Service.
-
-
Si noti l'ARN della coda.
La coda SQS creata è un'altra risorsa nel tuo Account AWS. Dispone di un Amazon Resource Name (ARN) univoco. Il presente ARN è necessario nella fase successiva. Il nome ARN presenta il formato seguente:
arn:aws:sqs:
aws-region
:account-id
:queue-name
Fase 2: Creare un argomento Amazon SNS
Completa la procedura per creare e sottoscrivere un argomento Amazon SNS.
-
Utilizzando la console di Amazon SNS, crea un argomento. Per istruzioni, consulta Creazione di un argomento Amazon SNS nella Guida per gli sviluppatori di Amazon Simple Notification Service.
-
Effettuare la sottoscrizione all'argomento. Per questo esercizio, utilizzare l'e-mail come protocollo di comunicazione. Per le istruzioni, consulta la sezione Sottoscrizione a un argomento di Amazon SNS nella Guida per gli sviluppatori di Amazon Simple Notification Service.
Si riceverà un'e-mail in cui è richiesto di confermare la sottoscrizione all'argomento. Confermare l'abbonamento.
-
Sostituire il criterio di accesso allegato all'argomento con il seguente criterio. Fornisci l'ARN dell'argomento SNS, il nome del bucket e l'ID dell'account del proprietario del bucket.
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "Example SNS topic policy", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "
SNS-topic-ARN
", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:
" }, "StringEquals": { "aws:SourceAccount": "amzn-s3-demo-bucket
bucket-owner-account-id
" } } } ] } -
Si noti l'argomento ARN.
L'argomento SNS creato è un'altra risorsa nell'Account AWS e possiede un ARN univoco. L'ARN è necessario nella fase successiva. L'ARN ha il formato seguente:
arn:aws:sns:
aws-region
:account-id
:topic-name
Fase 3: aggiungere una configurazione delle notifiche al bucket
È possibile abilitare le notifiche dei bucket utilizzando la console Amazon S3 o in modo programmatico utilizzando gli SDK AWS . Scegliere una delle opzioni per configurare le notifiche nel bucket. Questa sezione fornisce esempi di codice che utilizzano gli SDK AWS per Java e .NET.
Opzione A: abilitare le notifiche in un bucket utilizzando la console
Utilizzando la console di Amazon S3, aggiungi una configurazione di notifica che richiede ad Amazon S3 di:
-
Pubblicare gli eventi di tipo Tutti gli eventi di creazione dell'oggetto nella coda Amazon SQS.
-
Pubblica gli eventi di tipo Oggetto perso in RRS sul tuo argomento Amazon SNS.
Una volta salvata la configurazione delle notifiche, Amazon S3 pubblica un messaggio di testo che viene inviato tramite e-mail.
Per le istruzioni, consulta Attivazione e configurazione delle notifiche di eventi tramite la console di Amazon S3.
Opzione B: Abilitare le notifiche su un bucket usando gli SDK di AWS
Fase 4: Prova della configurazione
Ora è possibile testare la configurazione caricando un oggetto nel bucket e verificando la notifica di eventi nella console di Amazon SQS. Per istruzioni, consulta la sezione Ricezione di un messaggio nella sezione "Nozioni di base" della Guida per gli sviluppatori di Amazon Simple Queue Service.