As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solução de problemas do Amazon EventBridge Scheduler
Você pode usar os tópicos desta seção para solucionar problemas comuns do Amazon EventBridge Scheduler.
Minha agenda falha com erros de destino.
As falhas de invocação do Target são um dos problemas mais comuns com EventBridge o Scheduler. Essas falhas podem ocorrer por diversos motivos:
Causas comuns:
Parâmetros de destino ausentes ou incorretos.
Problemas de conectividade de rede.
Controle de utilização de API.
Configuração de destino incorreta.
Etapas de solução de problemas
-
Configurar uma fila de mensagens não entregues (DLQ)
Uma DLQ ajuda você a capturar e analisar invocações com falha.
As invocações com falha são enviadas para a DLQ com mensagens de erro detalhadas.
Para configurar uma DLQ, adicione-a à sua configuração de agendamento:
{ "DeadLetterConfig": { "Arn": "arn:aws:sqs:region:account-id:MyDLQ" } }Observação: se sua DLQ estiver criptografada com uma chave KMS, certifique-se de que a política de chaves permita que o EventBridge Scheduler a use:
{ "Sid": "Allow EventBridge Scheduler to use the key", "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } -
Verificar parâmetros da API
Garanta que todos os parâmetros necessários para as chamadas da API de destino estejam presentes e formatados corretamente.
Confira se os valores dos parâmetros estão dentro dos intervalos permitidos.
Verifique se o endpoint da API está acessível por meio da sua VPC, caso esteja utilizando endpoints da VPC.
-
Analisar a configuração da rede
Se as chamadas falharem devido a problemas transitórios de rede, implemente uma lógica de repetição.
Exemplo de política de repetição:
{ "RetryPolicy": { "MaximumRetryAttempts": 3, "MaximumEventAgeInSeconds": 3600 } } -
Conferir configurações específicas do destino
Para destinos com modelos (como tarefas do ECS), forneça substituições por meio do parâmetro
Target.Inputda API de criação de agendamento.Verifique se o serviço desejado é compatível e está configurado corretamente.
Problemas com permissões de perfil de execução de agendamento
Problemas com permissões de perfil do IAM são uma causa comum de falhas na execução de agendamentos. Veja como solucionar e resolver esses problemas:
Causas comuns
Faltam as permissões necessárias para o serviço de destino
Configuração de perfil incorreta no agendamento
Falta de relação de confiança com o serviço EventBridge Scheduler
Permissões insuficientes para acessar recursos criptografados
Sintomas
TargetErrorCountMétrica aumentada em CloudWatchOs agendamentos não são executados sem problemas aparentes na configuração do agendamento
Etapas de solução de problemas
-
Monitore CloudWatch métricas
Verifique a
TargetErrorCountmétrica CloudWatch.
-
Use a fila de mensagens não entregues (DLQ) para confirmar problemas de permissão
Configure uma DLQ para seu agendamento.
Se houver problemas de permissão com seu destino e a DLQ estiver configurada corretamente, você verá as invocações com falha na DLQ com mensagens de erro relacionadas a permissões.
Se a DLQ permanecer vazia apesar das falhas de execução mostradas nas CloudWatch métricas, isso provavelmente indica um problema de permissão que impede o EventBridge Scheduler de gravar na própria DLQ.
nota
Certifique-se de que a própria DLQ tenha as permissões corretas. Se estiver criptografado, certifique-se de que o EventBridge Agendador tenha permissão para usar a chave KMS.
-
Verificar relação de confiança
Certifique-se de que sua função do IAM tenha a relação de confiança correta com o EventBridge Scheduler:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Verificar permissões de função de execução de agendamento
O perfil de execução do agendamento requer permissões específicas para invocar diferentes tipos de destino.
Exemplos de permissões a serem incluídos na política de perfil de execução do seu agendamento:
// For Lambda function targets - add to schedule execution role { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:region:account-id:function:function-name" }] } // For SQS queue targets - add to schedule execution role { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:region:account-id:queue-name" }] } -
Verificar se o acesso ao recurso está criptografado
Se o seu destino utiliza recursos criptografados (por exemplo, filas SQS criptografadas com KMS), certifique-se de que seu perfil tenha permissões para usar a chave do KMS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" } ] } -
Verificar configuração do ARN do perfil
Verifique se o ARN da função na sua configuração de agendamento está correto.
Verifique se a função existe na mesma Conta da AWS região da sua agenda.
Noções básicas e gerenciamento de Service Quotas
Se você estiver enfrentando problemas ao criar agendas ou ver invocações limitadas, talvez esteja atingindo os limites da cota de serviço. EventBridge O Scheduler tem cotas para o número de agendamentos, grupos de agendamentos e taxas de invocação, que podem variar de acordo com a região.
Identificar problemas de cota
Para determinar se você está atingindo os limites da cota:
-
Monitore CloudWatch métricas
Verifique a métrica
InvocationThrottleCount. Um aumento nessa métrica indica que você está excedendo seu limite de taxa de invocação.Analise a métrica
InvocationAttemptCountpara entender seu uso atual.
-
Preste atenção a mensagens de erro específicas
Ao criar ou modificar agendamentos, um
LimitExceededExceptionindica que você atingiu o número máximo de agendamentos ou grupos de agendamentos.Chamadas de API que exibem erros de controle de utilização sugerem que você está excedendo a cota de solicitações da API.
Solucionar problemas de cota
Se você constatar que está atingindo os limites de cota:
Analise e otimize seus agendamentos atuais. Pense em consolidar agendamentos semelhantes ou remover os que não são utilizados.
Para controle de utilização da API, implemente a repetição com um intervalo de espera em suas chamadas de API.
Se precisar de cotas maiores, solicite um aumento por meio do console de Service Quotas. Selecione EventBridge Agendador, escolha a cota que você precisa aumentar e envie uma solicitação com a justificativa da sua empresa.
Problemas de padrão de agendamento e tempo de gatilho
Às vezes, os usuários encontram problemas em que os agendamentos não são acionados no tempo esperado. Isso geralmente ocorre devido a mal-entendidos sobre padrões de agendamento, mudanças no horário de verão ou janelas de tempo flexíveis.
Causas comuns
Interpretação incorreta das expressões cron.
Comportamento inesperado durante mudanças de horário de verão.
Confusão sobre janelas de tempo flexíveis.
Incompreensão das expressões rate.
Etapas de solução de problemas
-
Verificar expressões cron
Garanta que sua expressão cron esteja formatada corretamente.
Observe que você não pode especificar ambos day-of-month e day-of-week campos simultaneamente em uma expressão cron.
-
Considerações sobre o fuso horário
Selecione o fuso horário de sua preferência ao criar o agendamento.
Entenda como o horário de verão afeta sua rotina, pois esse ajuste é baseado no UTC.
Exemplo do impacto do horário de verão: se você configurar um agendamento para ser executado às 7h GMT:
Durante o inverno: o horário de funcionamento é às 7h AM GMT (já que GMT = UTC).
Durante o verão: o horário de funcionamento continua sendo às 7h AM UTC, que agora corresponde às 6h AM GMT/BST
Se você precisa que o agendamento seja executado no mesmo horário local durante todo o ano, selecione o fuso horário apropriado ao criar o agendamento e verifique como o horário de verão pode afetar esse fuso horário.
-
Noções básicas sobre janelas de tempo flexíveis
Janelas de tempo flexíveis permitem que o EventBridge Scheduler otimize as invocações.
O agendamento talvez não seja acionado exatamente no início do período.
Monitore os horários reais de invocação para entender o comportamento.
-
Revisar expressões cron e rate
Verifique se as expressões rate estão formatadas corretamente (por exemplo,
rate(5 minutes),rate(1 hour)).Tanto para expressões rate quanto para expressões cron, esteja ciente de que as invocações do agendamento não são limitadas ao segundo 0 de um minuto.
Os agendamentos podem ser acionados dentro do minuto especificado, mas não necessariamente no início exato do minuto.
Por exemplo:
Um agendamento com
rate(1 hour)pode começar às 14:00:45, 15:00:32, 16:00:18 etc.Um agendamento cron definido para
0 * * * ? *(a cada hora) pode ser executado às 14:00:15 PM, 15:00:07 PM, 16:00:52 PM etc.
-
Monitore CloudWatch métricas
Use a métrica
InvocationAttemptCountpara verificar se seu agendamento está sendo acionado.Confira
TargetErrorCountse as invocações estão falhando.Se você configurou uma fila de mensagens não entregues, monitore
InvocationsSentToDeadLetterCountpara rastrear invocações com falha.
Criação de padrões de agendamento e expressões cron
Os usuários geralmente encontram problemas ao criar padrões de agendamento, principalmente com expressões cron. Conheça alguns problemas comuns e como resolvê-los:
Problemas comuns
Sintaxe cron incorreta
Tentativa de usar recursos cron não compatíveis
Confusão sobre quais campos podem ser usados em conjunto
Etapas de solução de problemas
-
Revisar a sintaxe da expressão cron
Certifique-se de que sua expressão cron siga o formato correto:
Minutes Hours Day-of-month Month Day-of-week Year.Lembre-se de que o EventBridge Scheduler usa o padrão cron com um campo adicional de Ano.
-
Compreender as limitações
Você não pode especificar os day-of-week campos day-of-month e simultaneamente, conforme discutido aqui.
As expressões cron que levam a taxas mais rápidas do que 1 minuto não têm suporte.
-
Usar o atributo de pré-visualização do agendamento
Ao criar ou editar um cronograma, o EventBridge Scheduler fornece uma prévia dos próximos 10 tempos de execução.
Use esta pré-visualização para verificar se o seu agendamento será executado nos horários pretendidos.
Se a pré-visualização não corresponder às suas expectativas, revise e ajuste sua expressão cron.
Meu destino está sendo acionado?
Para confirmar se o seu destino está sendo acionado:
-
Verifique CloudWatch as métricas:
InvocationAttemptCountmostra o número de tentativas de invocação.TargetErrorCountindica se alguma invocação falhou.TargetErrorThrottledCountmostra se a sua conexão está com controle de utilização.InvocationDroppedCountindica se alguma invocação foi descartada.
Configure uma fila de mensagens não entregues (DLQ) para capturar e analisar quaisquer invocações com falha.
Destinos modelados versus destinos universais
Se você receber um erro como "Solicitação inválida fornecida: [serviço] não é um serviço compatível para o destino", você pode estar tentando usar um serviço não compatível como destino de modelo.
Para resolver esse problema:
Verifique se o serviço desejado é compatível como um destino com modelo.
Caso não seja compatível, utilize um destino universal e configure-o para fazer a chamada de API apropriada para o seu serviço.
Agendar atualizações acionando invocações inesperadas
Ao fazer uma alteração em um agendamento, as invocações talvez não reflitam imediatamente o agendamento atualizado. Permita um curto período para que as alterações entrem em vigor. Por exemplo, se você atualizar um agendamento próximo ao horário de acionamento original, poderá ver uma invocação baseada na configuração original do agendamento.
Desabilitar ou habilitar agendamentos únicos
Ao reativar um agendamento único após o horário originalmente agendado ter passado, o agendamento poderá invocar imediatamente seu destino. Isso pode ocorrer mesmo que o agendamento tenha sido desativado antes do horário de execução original.
Por exemplo:
Hora atual: 13:15 UTC
Agendamento único criado para: 13:30 UTC
O agendamento será desabilitado antes das 13:30 UTC
O agendamento será reativado às 14:00 UTC.
Resultado: o destino pode ser invocado imediatamente após a reativação.