Minha regra do Amazon EventBridge não invoca minha tarefa do Amazon Elastic Container Service (Amazon ECS).
Breve descrição
Quando você usa uma regra do EventBridge para invocar uma tarefa do Amazon ECS, o EventBridge chama a API RunTask para executar as tarefas.
A regra do EventBridge pode falhar ao invocar sua tarefa do ECS pelos seguintes motivos:
- A configuração da regra do EventBridge está incorreta.
- A configuração de destino da regra do EventBridge está incorreta.
- O perfil do AWS Identity and Management (IAM) não tem permissões para executar as tarefas.
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.
Verifique a configuração das regras do EventBridge
Verifique se a regra do EventBridge está no status ATIVADO. Se estiver no status DESATIVADO, reative a regra e realize testes para determinar se a regra pode criar uma tarefa.
Para verificar o status da regra, é possível usar o console do EventBridge ou a AWS CLI.
Console EventBridge
Conclua as etapas a seguir:
- Abra o console do EventBridge.
- No painel de navegação, escolha Regras.
- Em Selecionar barramento de eventos, selecione o barramento de eventos associado à regra.
- Escolha a regra para ver seu status.
AWS CLI
Execute o seguinte comando describe-rule:
aws events describe-rule --name "DailyLambdaFunction" --region "us-east-1"
Observação: substitua us-east-1 pela sua região da AWS.
Na saída do comando, verifique o parâmetro State para identificar o status da regra. Se a regra estiver no status DESATIVADO, verifique os logs do AWS CloudTrail para identificar por que a regra foi desativada.
Certifique-se de que o padrão do evento esteja correto e corresponda aos eventos que são da origem do evento. Para verificar o padrão do evento, use o EventBridge Sandbox.
Verifique a configuração de destino da regra do EventBridge
Realize as seguintes ações:
- Verifique os parâmetros ECS Cluster, TaskDefinition e Configuração de rede do destino da regra do EventBridge para garantir que estejam corretos.
- Verifique se o perfil do IAM do EventBridge tem as permissões necessárias para executar a tarefa.
Use as seguintes métricas do Amazon CloudWatch para ajudá-lo a solucionar problemas:
- Verifique a métrica TriggeredRules. O CloudWatch mostra a métrica somente quando um evento aciona uma regra.
- Use a métrica Invocations para verificar quantas vezes o EventBridge invocou uma regra e depois tentou executar a tarefa do ECS.
- Use a métrica FailedInvocations para determinar o número de invocações com falha. Se o valor for alto, seu alvo pode estar configurado incorretamente.
Observação: a estatística Sum pode ser a estatística mais útil para verificar a métrica FailedInvocations.
Determine por que a chamada de API RunTask falhou
Conclua as etapas a seguir:
- Abra o console do CloudTrail.
- No painel de navegação, selecione Histórico de eventos.
- Na lista suspensa Atributos de pesquisa selecione Nome do evento.
- Na caixa de texto, insira RunTask para filtrar os eventos relacionados à API RunTask.
- Filtre o intervalo de tempo com base no runtime esperado da tarefa do ECS.
Observação: os valores padrão para o intervalo de tempo são 30 minutos, 1 hora, 3 horas e 12 horas. Para especificar um intervalo de tempo personalizado, escolha Intervalo absoluto.
- Escolha o evento e, em seguida, revise o registro do evento JSON na seção Registro do evento. Procure o motivo da falha em errorCode e errorMessage.
Use o EventBridge DLQ
As regras do EventBridge oferecem suporte as filas de mensagens não entregues (DLQs). O DLQs usa o Amazon Simple Queue Service (Amazon SQS) para armazenar eventos de invocação com falha em uma fila padrão especificada por você. Quando a regra do evento não invoca seu destino, o EventBridge entrega uma carga útil JSON que contém detalhes de invocação e respostas do destino para a DLQ. É possível analisar a falha na entrega do evento na DLQ para resolver o problema.
Informações relacionadas
Como posso solucionar problemas com as regras do Amazon EventBridge?
Como posso usar uma fila de mensagens não entregues para solucionar problemas com as regras do FailedInvocations para EventBridge?