Ir para o conteúdo

Como soluciono problemas quando minhas notificações de eventos do Amazon S3 não invocam minha função do Lambda?

5 minuto de leitura
0

Eu configurei notificações de eventos do Amazon Simple Storage Service (Amazon S3) para invocar minha função do AWS Lambda. No entanto, a função não é invocada quando o evento do Amazon S3 ocorre.

Descrição breve

Para solucionar problemas, use o runbook do AWSSupport-TroubleshootLambdaS3Event para AWS Systems Manager Automation. Ou solucione manualmente os problemas da função do Lambda.

Resolução

Execute o runbook do Systems Manager Automation

Pré-requisito: Antes de iniciar o runbook, certifique-se de que seu usuário ou perfil do AWS Identity and Access Management (IAM) tenha as permissões necessárias. Para obter mais informações, consulte a seção Permissões obrigatórias do IAM em AWSSupport-TroubleshootLambdaS3Event.

Conclua as seguintes etapas:

  1. Abra o console do Systems Manager.

  2. No painel de navegação, escolha Documentos.

  3. Na barra de pesquisa, digite AWSSupport-TroubleshootLambdaS3Event.

  4. Selecione AWSSupport-TroubleshootLambdAS3Event.

  5. Escolha Executar automação.

  6. Escolha Executar.

    Observação: O teste pode demorar até 15 minutos para ser concluído. Para obter uma lista das etapas executadas pelo runbook, consulte a seção Etapas do documento do AWSSupport-TroubleshootLambdaS3Event.

Solucionar manualmente os problemas da função do Lambda

Observação: Se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Confirmar se os tipos de evento do Amazon S3 estão configurados corretamente

Ao configurar as notificações de eventos do S3, você deve especificar cada tipo de evento que faz com que o Amazon S3 envie a notificação. Se um tipo de evento que você não especificou ocorrer em seu bucket do Amazon S3, o Amazon S3 não enviará a notificação.

Por exemplo, você configura uma notificação de evento para invocar o Lambda com o tipo de evento s3:ObjectCreated:Put. Se você fizer upload de um arquivo grande, o Amazon S3 usará automaticamente o processo de upload multiparte para carregar o arquivo no bucket. Para invocar a função do Lambda para esse upload, você também deve configurar o tipo de evento s3:ObjectCreated:CompleteMultipartUpload. Outra opção é usar o tipo de evento s3:ObjectCreated:* para solicitar notificações para cada API utilizada pelo Amazon S3 para criar um objeto.

Confirmar se seus filtros de nome de chave de objeto incluem o nome do arquivo carregado

Se suas notificações de eventos do S3 usarem filtragem de nomes de chaves de objetos, o Amazon S3 publicará notificações somente para objetos com prefixos ou sufixos específicos. Certifique-se de que os filtros de prefixo ou sufixo especificados na notificação do evento incluam o nome da chave do objeto carregado. Além disso, certifique-se de que sua função do Lambda esteja na mesma região da AWS que seu bucket do S3.

Observação: Não é possível usar um caractere curinga (*) nos filtros como prefixo ou sufixo para representar um caractere.

Para filtrar nomes de chaves de objetos, determinados caracteres especiais em seus prefixos ou sufixos devem ser codificados em URL ou codificados em porcentagem. Por exemplo, para definir o valor de um prefixo como test=abc/, digite o valor codificado por URL test%3Dabc/.

Para obter mais informações sobre o tratamento específico de caracteres em nomes de chaves de objetos, consulte Diretrizes de nomenclatura de chaves de objetos.

Confirme se a política baseada em recursos do IAM da sua função do Lambda tem as permissões necessárias para que o Amazon S3 invoque a função

Verifique a política baseada em recursos do IAM da sua função do Lambda para confirmar se a política permite que seu bucket invoque a função. Se o bucket não conseguir invocar a função, adicione a política necessária.

Exemplo de política:

{
  "Version": "2012-10-17",
  "Id": "default",
  "Statement": [
    {
      "Sid": "lambda-allow-s3-my-function",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:s3:::amzn-s3-demo-bucket"
        }
      }
    }
  ]
}

Para obter mais informações, consulte Gerenciar permissões no AWS Lambda.

Observação: Quando você usa o console do Amazon S3 para adicionar uma nova notificação de evento, o Amazon S3 adiciona automaticamente as permissões necessárias à política baseada em recursos da sua função. No entanto, se você usar o comando put-bucket-notification-configuration da AWS CLI para adicionar uma notificação de evento, a política da sua função não será atualizada automaticamente.

Confirme se suas funções do Lambda estão configuradas para lidar com invocações simultâneas de notificações de eventos do S3

Você deve configurar sua função do Lambda para lidar com invocações simultâneas das notificações de eventos do S3. Se as solicitações de invocação chegarem mais rápido do que sua função pode escalar, ou se sua função estiver na máxima simultaneidade, o Lambda limitará as solicitações.

Para obter mais informações, consulte Invocar uma função do Lambda de forma assíncrona.

Informações relacionadas

Como posso usar o AWS Systems Manager Automation para solucionar problemas quando minha notificação de evento do Amazon S3 não invoca uma função do Lambda?

Processar notificações de eventos do Amazon S3 com o Lambda

Tutorial: Usar um gatilho do Amazon S3 para invocar uma função do Lambda

Por que recebo a mensagem de erro "Não é possível validar as configurações de destino a seguir" quando uso as Notificações de evento do Amazon S3 com buckets de uso geral?

Como configuro uma notificação de eventos do Amazon S3 para invocar uma função do Lambda que está em outra conta da AWS?

AWS OFICIALAtualizada há 10 dias
1 Comentário

This article was reviewed and updated on 2026-08-26.

ESPECIALISTA

respondeu há 15 horas