Uso de PutBucketNotification con un AWS SDK o la CLI - Amazon Simple Storage Service

Uso de PutBucketNotification con un AWS SDK o la CLI

Los siguientes ejemplos de código muestran cómo utilizar PutBucketNotification.

CLI
AWS CLI

Aplica una configuración de notificación a un bucket denominado my-bucket:

aws s3api put-bucket-notification --bucket my-bucket --notification-configuration file://notification.json

El archivo notification.json es un documento JSON en la carpeta actual que especifica un tema de SNS y un tipo de evento para supervisar:

{ "TopicConfiguration": { "Event": "s3:ObjectCreated:*", "Topic": "arn:aws:sns:us-west-2:123456789012:s3-notification-topic" } }

El tema de SNS debe tener una política de IAM adjunta que permita a Amazon S3 publicar en él:

{ "Version": "2008-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "arn:aws:sns:us-west-2:123456789012:my-bucket", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:my-bucket" } } } ] }
  • Para obtener información sobre la API, consulte PutBucketNotification en la Referencia de comandos de la AWS CLI.

PowerShell
Herramientas para PowerShell

Ejemplo 1: este ejemplo configura la configuración del tema de SNS para el evento ObjectRemovedDelete de S3 y se habilita la notificación para el bucket de S3 indicado

$topic = [Amazon.S3.Model.TopicConfiguration] @{ Id = "delete-event" Topic = "arn:aws:sns:eu-west-1:123456789012:topic-1" Event = [Amazon.S3.EventType]::ObjectRemovedDelete } Write-S3BucketNotification -BucketName kt-tools -TopicConfiguration $topic

Ejemplo 2: este ejemplo habilita las notificaciones de ObjectCreatedAll para el bucket indicado y las envía a la función de Lambda.

$lambdaConfig = [Amazon.S3.Model.LambdaFunctionConfiguration] @{ Events = "s3:ObjectCreated:*" FunctionArn = "arn:aws:lambda:eu-west-1:123456789012:function:rdplock" Id = "ObjectCreated-Lambda" Filter = @{ S3KeyFilter = @{ FilterRules = @( @{Name="Prefix";Value="dada"} @{Name="Suffix";Value=".pem"} ) } } } Write-S3BucketNotification -BucketName ssm-editor -LambdaFunctionConfiguration $lambdaConfig

Ejemplo 3: este ejemplo crea 2 configuraciones de Lambda diferentes sobre la base de un sufijo clave diferente y las configura en un solo comando.

#Lambda Config 1 $firstLambdaConfig = [Amazon.S3.Model.LambdaFunctionConfiguration] @{ Events = "s3:ObjectCreated:*" FunctionArn = "arn:aws:lambda:eu-west-1:123456789012:function:verifynet" Id = "ObjectCreated-dada-ps1" Filter = @{ S3KeyFilter = @{ FilterRules = @( @{Name="Prefix";Value="dada"} @{Name="Suffix";Value=".ps1"} ) } } } #Lambda Config 2 $secondlambdaConfig = [Amazon.S3.Model.LambdaFunctionConfiguration] @{ Events = [Amazon.S3.EventType]::ObjectCreatedAll FunctionArn = "arn:aws:lambda:eu-west-1:123456789012:function:verifyssm" Id = "ObjectCreated-dada-json" Filter = @{ S3KeyFilter = @{ FilterRules = @( @{Name="Prefix";Value="dada"} @{Name="Suffix";Value=".json"} ) } } } Write-S3BucketNotification -BucketName ssm-editor -LambdaFunctionConfiguration $firstLambdaConfig,$secondlambdaConfig
  • Para obtener información sobre la API, consulte PutBucketNotification en la Referencia de Cmdlet de AWS Tools for PowerShell.

Para obtener una lista completa de las guías para desarrolladores del AWS SDK y ejemplos de código, consulte Uso de este servicio con un SDK de AWS. En este tema también se incluye información sobre cómo comenzar a utilizar el SDK y detalles sobre sus versiones anteriores.