Por que recebo o erro "Configuration is ambiguously defined" ao criar uma notificação de eventos do Amazon S3 para acionar minha função do Lambda?

4 minuto de leitura
0

Estou tentando criar uma notificação de eventos de bucket do Amazon Simple Storage Service (Amazon S3) para acionar minha função do AWS Lambda e recebi um erro.

Breve descrição

O erro "Configuration is ambiguously defined" ocorre quando as informações de eventos de uma notificação e seu prefixo ou sufixo se sobrepõem à configuração de notificação de um bucket do S3.

O erro pode ocorrer quando se faz um dos seguintes:

  • Recriar uma notificação de eventos do S3 que foi excluída recentemente.
  • Criar notificações de eventos do S3 para vários eventos sobrepostos usando prefixos ou sufixos sobrepostos.

Observação: as configurações de notificação de eventos do Amazon S3 permitem a sobreposição de eventos com prefixos ou sufixos não sobrepostos. As configurações também permitem eventos não sobrepostos com prefixos ou sufixos sobrepostos.

Para obter mais informações e exemplos, consulte Configurar notificações de eventos usando filtragem de nomes de chave de objeto.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Para analisar a configuração atual de notificações do bucket do S3, faça um do seguintes:

Em seguida, faça um dos seguintes:

Remova um evento sobreposto

No console do Amazon S3, exclua uma notificação de evento existente que se sobreponha à nova que você está tentando criar.

Observação: quando você exclui um acionador de uma função do Lambda, a notificação de evento do S3 associada não é excluída automaticamente. É preciso também excluir a notificação no Amazon S3 antes de criar um novo acionador sem restrições de sufixo.

-ou-

Atualize o arquivo JSON de configuração de notificação em seu bucket do S3 usando a AWS CLI. Para obter uma lista de todas as notificações de eventos configuradas em seu bucket do S3, execute o comando get-bucket-notification-configuration da AWS CLI. Para remover todas as notificações de eventos do S3, execute o comando put-bucket-notification-configuration da AWS CLI, semelhante ao seguinte:

Observação: substitua bucket-name pelo nome do seu bucket.

aws s3api put-bucket-notification-configuration --bucket=<bucket-name> --notification-configuration="{}"

Depois de remover a notificação de eventos sobrepostos, você pode adicionar novas notificações usando o console do Amazon S3 ou o comando put-bucket-notification-configuration da AWS CLI.

Reconfigure a nova notificação

Altere a nomenclatura de chave do objeto do namespace do bucket do S3 para permitir vários eventos sobrepostos com prefixos não sobrepostos.

Por exemplo, você pode especificar que objetos de eventos sobrepostos, como imagens carregadas, usem diferentes pastas do bucket do S3 (prefixo), dependendo do tipo de arquivo de imagem (sufixo):

  • S3://mybucket/uploadedJPEG
  • S3://mybucket/uploadedGIF

Reformular para seu caso de uso

Se você não conseguir reconfigurar sua notificação de eventos do S3 para evitar a sobreposição, tente reformular sua arquitetura para contornar isso.

Por exemplo:

Dica: para arquiteturas e processos mais complexos, use uma máquina de estado do AWS Step Functions para projetar e gerenciar seu fluxo de trabalho. Para obter mais informações, consulte Casos de uso do AWS Step Functions e Tutoriais para Step Functions.


Informações relacionadas

Por que recebo o erro "Unable to validate the following destination configurations" quando crio uma notificação de eventos do Amazon S3 para invocar minha função do Lambda?

Por que minha notificação de evento do Amazon S3 não invoca minha função do Lambda?

Usar o AWS Lambda com o Amazon S3

Tutorial: como usar um acionador do Amazon S3 para invocar uma função do Lambda

AWS OFICIAL
AWS OFICIALAtualizada há um ano