Como posso solucionar problemas com as regras do Amazon EventBridge?

6 minuto de leitura
0

Quero saber por que minha regra do Amazon EventBridge não acionou nem invocou o destino conforme o esperado.

Breve descrição

Use esse fluxo de trabalho de validação para isolar o problema:

  1. Confirme se o evento relevante ocorreu (por exemplo, uma chamada de API do AWS CloudTrail ou um carregamento de objeto do Simple Storage Service (Amazon S3)).
  2. Confirme se o evento correspondeu ao padrão de evento da regra.
  3. Confirme se o destino processou o evento com sucesso (por exemplo, o evento invocou uma função do AWS Lambda).

Resolução

Use estas etapas para solucionar problemas relacionados às regras do Amazon EventBridge:

Valide um evento recebido

Valide o evento recebido de uma ou mais das seguintes formas:

  • Se o AWS CloudTrail capturou o evento, analise os logs do CloudTrail. Verifique se a chamada da API ocorreu no horário esperado e se corresponde a todos os campos no padrão do evento.
    Observação: alguns serviços da AWS estão disponíveis somente na região us-east-1. Por exemplo, as chamadas de API do AWS Identity and Access Management (IAM) são publicadas somente na região us-east-1. Se uma regra de correspondência a eventos do IAM foi criada em outra região, esses eventos não serão encaminhados para o EventBridge. Como resultado, a regra não é acionada por esses eventos.
  • O console do Amazon EventBridge fornece o Sandbox da ferramenta EventBridge que contém exemplos de eventos da AWS e de parceiros. Use a ferramenta para combinar o padrão de evento proposto com eventos personalizados, de parceiros e da AWS. Ou use a API TestEventPattern para confirmar uma correspondência entre o padrão do evento e o evento.
  • O EventBridge fornece métricas de TriggeredRules para relatar uma regra para eventos combinados com êxito. Os carimbos de data e hora dos pontos de dados TriggeredRules mostram quando o evento ocorreu.

Analise as métricas do CloudWatch

Siga estas etapas para analisar as métricas do CloudWatch para uma regra do Amazon EventBridge:

  1. Abra o console do CloudWatch.
  2. Selecione Todas as métricas.
  3. Selecione o namespace AWS/Events.
  4. Selecione as métricas TriggerRules, Invocations e FailedInvocations (se disponíveis) para a regra em questão. Você pode visualizar essas métricas com a estatística SUM.

Valide o padrão do evento

Para combinar um evento, todos os campos em um padrão de evento devem combinar. Use a ferramenta Sandbox para testar o evento desejado em relação a um padrão de evento com alguns campos. Por exemplo, use um padrão de evento simples, como o que está listado aqui:

{
    "source": ["aws.s3"]
}

Aumente a complexidade do padrão do evento se você conseguir combinações bem-sucedidas. Cada campo que você adiciona ao padrão de evento filtra os eventos aos quais ele corresponde e restringe seu foco.

Abaixo está um exemplo de padrão de evento. O padrão combina uma lista de chamadas de API do Amazon S3 com um bucket específico para um objeto que começa com uma das duas strings: feature1 e feature2.

{
  "source": [
    "aws.s3"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventName": [
      "PutObject",
      "DeleteObject",
      "DeleteObjects"
    ],
    "requestParameters": {
      "bucketName": [
        "123456789012-prod-app1"
      ],
      "key": [
        {
          "prefix": "feature1/"
        },
        {
          "prefix": "feature2/"
        }
      ]
    }
  }
}

Adicione campos gradualmente para isolar os campos que não correspondem aos eventos desejados.

Valide o destino

  • A métrica Invocations publica um ponto de dados quando uma regra encaminha um evento para um destino. Isso representa invocações bem-sucedidas e com falha.

  • O Amazon EventBridge emite um ponto de dados FailedInvocations quando ele falha permanentemente em invocar o destino. FailedInvocations indica problemas com a configuração do destino ou problemas decorrentes de permissões inadequadas.

  • O Amazon EventBridge deve receber as permissões apropriadas para invocar o destino. Dependendo do destino, o perfil do AWS Identity and Access Management (IAM) ou uma política de recursos concede permissões.

  • Quando você cria regras usando o console do Amazon EventBridge, o console adiciona automaticamente as permissões necessárias aos recursos relacionados.
    Observação: configure explicitamente as permissões se você implantar a regra usando o AWS SDK, a AWS Command Line Interface (AWS CLI) ou o AWS CloudFormation.

  • Se não houver nenhum ponto de dados FailedInvocations, o Amazon EventBridge entregou o evento ao destino com êxito. No entanto, o destino pode não estar funcionando corretamente. Por exemplo, um destino do AWS Lambda pode encontrar erros durante a execução ou durante o controle de utilização. Para obter mais informações, examine as métricas do Amazon CloudWatch para o destino e todos os logs relevantes.

  • Associe uma fila de mensagens não entregues (DLQ) do Amazon Simple Queue Service (Amazon SQS) ao destino. Os eventos que não foram entregues ao destino são enviados para a fila de mensagens não entregues. Você pode usar esse método para obter mais detalhes sobre eventos com falha. Analise o seguinte trecho de uma mensagem recuperada da DLQ de um evento com falha:

    "MessageAttributes": {
                    "ERROR_CODE": {
                        "StringValue": "NO_PERMISSIONS",
                        "DataType": "String"
                    },
                    "ERROR_MESSAGE": {
                        "StringValue": "User: events.amazonaws.com is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-east-1:123456789012:function:Hello_World because no resource-based policy allows the lambda:InvokeFunction action (Service: AWSLambdaInternal; Status Code: 403;
    Error Code: AccessDeniedException; Request ID: 6635c4c4-9c54-416e-bc40-ef25bad0aca5; Proxy: null)",
                        "DataType": "String"
                    },

    A mensagem mostra que o serviço Amazon EventBridge não tem as permissões necessárias para invocar o destino do Lambda.

  • As regras do Amazon EventBridge oferecem suporte a até cinco destinos. Anexe temporariamente um destino de grupo do Amazon CloudWatch Logs ou um tópico do Amazon Simple Notification Service (Amazon SNS). Essa ação captura os eventos encaminhados aos destinos ou isola as configurações incorretas de destino. O log ou tópico fornece os seguintes serviços:

  • Confirma o corpo do evento e os campos específicos que devem ser analisados e processados pelo destino

  • Confirma que o evento foi entregue ao destino

  • Confirma que o transformador de entrada foi configurado corretamente

Informações relacionadas

Solução de problemas do Amazon EventBridge

Por que minha função do Lambda não foi acionada pela minha regra do CloudWatch Events?

How do I troubleshoot errors in the Amazon EventBridge Scheduler? (Como soluciono erros no Agendador do Amazon EventBridge?)

AWS OFICIAL
AWS OFICIALAtualizada há 7 meses