Ir para o conteúdo

Como modifico as configurações de novas tentativas do EventBridge e uso uma DLQ para invocações com falha?

4 minuto de leitura
0

Quero modificar as configurações da política de novas tentativas do Amazon EventBridge e configurar uma fila de mensagens não entregues (DLQ) para invocações com falha.

Resolução

Observação: Se você receber erros 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.

Modifique o período de tempo em que o EventBridge faz uma nova tentativa

O EventBridge usa recuo exponencial e jitter ou um atraso aleatório para reenviar o evento durante 24 horas com até 185 tentativas. Para evitar invocações com falhas, é possível modificar o período e o número de tentativas que o EventBridge realiza nas configurações de política de novas tentativas do destino.

Observação: O EventBridge realiza novas tentativas apenas para respostas com código de status HTTP 5xx ou 429 por até 24 horas. O EventBridge não realiza nova tentativa com outros códigos de status HTTP 4xx.

Para usar o console do EventBridge para configurar a política de repetição do destino, conclua as seguintes etapas:

  1. Abra o console do EventBridge.
  2. Selecione sua regra do EventBridge.
  3. Escolha a guia Destinos e, em seguida, escolha Editar.
  4. Expanda a seção Configurações adicionais.
  5. Em Tentativas de repetição, insira o valor personalizado.

Observação: Para regras de eventos com vários destinos, você deve configurar individualmente a política de repetição para cada alvo.

Também é possível executar o comando put-targets da AWS CLI ou a API RetryPolicy para configurar uma política de nova tentativa.

O EventBridge lida com erros de eventos de maneiras diferentes. Por exemplo, o EventBridge pode não entregar um evento quando um destino não tem as permissões necessárias ou quando um destino não existe mais. Ou talvez o EventBridge não tente reenviar o evento. Em vez disso, o EventBridge pode descartar o evento ou enviá-lo para uma DLQ que você configurou.

Configurar uma DLQ do EventBridge

Para evitar a perda de eventos devido a uma falha na entrega, configure uma DLQ do EventBridge. A DLQ recebe todos os eventos com falha para processar posteriormente.

Observação: Antes de configurar uma DLQ para um destino, você deve criar uma fila do Amazon Simple Queue Service (Amazon SQS). Na política de filas do Amazon SQS, adicione as permissões necessárias para que a regra do EventBridge invoque a fila. Se você criptografar a fila do Amazon SQS, adicione as permissões Decrypt e GenerateDataKey à política de chaves do AWS Key Management Service (AWS KMS).

Para configurar uma DLQ, conclua as seguintes etapas:

  1. Abra o console do EventBridge.
  2. Selecione sua regra do EventBridge.
  3. Escolha a guia Destinos e, em seguida, escolha Editar.
  4. Expanda a seção Configurações adicionais.
  5. Na seção fila de mensagens não entregues, selecione uma opção com base no fato de seu DLQ SQS estar na mesma conta da AWS ou em uma conta diferente.

Também é possível executar o comando put-targets da AWS CLI para configurar uma DLQ. Para o parâmetro ConfigFiladeMensagensNãoEntregues, use o ARN da fila do SQS.

Recuperar detalhes do erro de uma DLQ

Para confirmar se a regra do evento enviou a mensagem para uma DLQ, revise a métrica invocationSentToDLQ.

Se houver uma mensagem, conclua as seguintes etapas:

  1. Abra o console SQS.
  2. Escolha a fila que você usa como DLQ para sua regra de evento.
  3. Escolha Enviar e receber mensagens e, em seguida, escolha Pesquisar mensagens.
  4. Na seção Mensagens, abra a mensagem.
  5. Escolha Atributos para determinar por que o EventBridge não entregou uma mensagem ao destino.
    Observação: Os dados na guia Corpo são a carga útil que o EventBridge envia ao destino quando a entrega do evento não falha.

Informações relacionadas

Monitoramento do Amazon EventBridge

Métricas do EventBridge

AWS OFICIALAtualizada há 10 meses