DEV Community

Cover image for Configurando Notificações de Eventos no Amazon S3: Um Guia Passo a Passo
José Paulo Marinho
José Paulo Marinho

Posted on • Updated on

Configurando Notificações de Eventos no Amazon S3: Um Guia Passo a Passo

Aqui estão os passos para criar uma política de acesso para uma fila do Amazon SQS usando a console da AWS, este tutorial parte do pressuposto que você já tem o recurso do SQS criado:

Passo 1: Crie uma política de acesso para a sua fila

1 - Acesse a console do Amazon SQS e selecione a fila que você criou.

2 - Clique na guia "Permissões" e em seguida, clique em "Adicionar política de fila".

3 - Na página "Adicionar política de fila", selecione o serviço ou usuário que você deseja conceder acesso à fila.

4 - Escolha as ações permitidas e especifique as condições, se necessário. Por exemplo, para permitir que o S3 envie mensagens para a fila, você precisará definir a condição ArnLike para corresponder ao ARN do bucket do S3 que enviará as mensagens.

5 - Cole a política de acesso diretamente na área de texto ou crie uma nova política usando o assistente. Aqui está um exemplo de política que permite que o S3 envie mensagens para a fila:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:REGION:ACCOUNT-ID:QUEUE-NAME",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:::BUCKET-NAME"
        }
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

6 - Lembre-se de substituir 'REGION', 'ACCOUNT-ID', 'QUEUE-NAME' e 'BUCKET-NAME' pelos valores reais correspondentes às suas configurações.

6.1 - Para obter essas informações entre no console da aws (AWS CLI) e digite:

$ aws sts get-caller-identity
$ aws configure get region
$ aws s3 ls
$ aws sqs list-queues 
Enter fullscreen mode Exit fullscreen mode

7 - Quando terminar, clique em "Salvar alterações" para aplicar a política à fila do SQS.

Passo 2 - Obtenha as credenciais de acesso para a sua aplicação

1 - Acesse a console do IAM e crie um usuário para sua aplicação.

2 - Conceda as permissões necessárias para o usuário acessar a fila do SQS.

3 - Obtenha as credenciais de acesso para o usuário criado.

Passo 3: Use as credenciais para enviar mensagens para a fila do SQS

1 - Use as credenciais de acesso para autenticar sua aplicação e enviar mensagens para a fila do SQS.

Configurar Notificações de Eventos no S3 para enviar ao SQS

Esta parte do tutorial assume que você já tem seu recurso do S3 criado.

1 - Navegue até o S3, selecione seu bucket.

2 - Vá em propriedades e procure pelo tópico Notificações de eventos

3 - Clique em Criar Notificação de evento. Preencha algumas infomações como:

  • Nome do evento
  • Prefiro - Opcional (se não houver ele vai verificar todos os diretórios)
  • Sufixo - Opcional (se nçao houver ele vai verificar todos os tipos de arquivos)

4 - Tipos de Eventos - Aqui você coloca o que preferir

5 - Por fim, selecione o Destino, escolha 'Fila do SQS'

  • Escolher entre seus filas do SQS

E escolha sua fila. No final salve.

6 - Agora teste, assim que você inserir um arquivo deverá receber uma mensagem como essa no SQS:

{
  "Records": [
    {
      "eventVersion": "2.1",
      "eventSource": "aws:s3",
      "awsRegion": "us-east-1",
      "eventTime": "2023-05-04T02:27:25.626Z",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "AWS:XXXXXXXXXXXXXXXXXXX:userXXXXXXXXXXXX"
      },
      "requestParameters": {
        "sourceIPAddress": "XXX.XXX.XXX.XXX"
      },
      "responseElements": {
        "x-amz-request-id": "XXXXXXXXXXXXXX",
        "x-amz-id-2": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "sqs-trigger",
        "bucket": {
          "name": "example-bucket",
          "ownerIdentity": {
            "principalId": "XXXXXXXXXXXX"
          },
          "arn": "arn:aws:s3:::example-bucket"
        },
        "object": {
          "key": "example/file.txt",
          "size": 1234,
          "eTag": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
          "sequencer": "XXXXXXXXXXXXXXXXXX"
        }
      }
    }
  ]
}

Enter fullscreen mode Exit fullscreen mode

Você pode ver melhor aqui: https://docs.aws.amazon.com/pt_br/AmazonS3/latest/userguide/ways-to-add-notification-config-to-bucket.html#S3NotificationHowToDestinationSQS

Top comments (0)