Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solución de problemas de Amazon EventBridge Scheduler
Puede utilizar los temas de esta sección para solucionar problemas comunes de Amazon EventBridge Scheduler.
Temas
Mi programación produce un error con errores de destino
Los errores de invocación de Target son uno de los problemas más comunes de Scheduler. EventBridge Estos errores se pueden producir por varias razones:
Causas habituales:
Parámetros de destino faltantes o incorrectos.
Problemas de conectividad de red.
Limitación de las API.
Configuración de destino incorrecta.
Pasos para la solución de problemas
-
Configuración de una cola de mensajes fallidos (DLQ)
Una DLQ le ayuda a capturar y analizar las invocaciones erróneas.
Las invocaciones erróneas se envían a la DLQ con mensajes de error detallados.
Para configurar una DLQ, agréguela a la configuración de la programación:
{ "DeadLetterConfig": { "Arn": "arn:aws:sqs:region:account-id:MyDLQ" } }Nota: Si su DLQ está encriptado con una clave KMS, asegúrese de que la política de claves permita a EventBridge Scheduler usarlo:
{ "Sid": "Allow EventBridge Scheduler to use the key", "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } -
Verificación de los parámetros de la API
Asegúrese de que todos los parámetros necesarios para las llamadas a la API de destino estén presentes y tengan el formato correcto.
Compruebe que los valores de los parámetros estén dentro de los rangos permitidos.
Compruebe que se pueda acceder al punto de conexión de la API desde la VPC si se utilizan puntos de conexión de VPC.
-
Revisión de la configuración de red
Si las llamadas producen un error debido a problemas transitorios de la red, implemente una lógica de reintento.
Política de reintentos de ejemplo:
{ "RetryPolicy": { "MaximumRetryAttempts": 3, "MaximumEventAgeInSeconds": 3600 } } -
Comprobación de las configuraciones específicas del destino
Para los destinos basados en plantillas (como las tareas de ECS), asegúrese de proporcionar invalidaciones mediante el parámetro
Target.Inputde la API de creación de programaciones.Compruebe que el servicio de destino sea compatible y esté configurado correctamente.
Problemas de permisos de roles de ejecución de programación
Los problemas con los permisos de rol de IAM son un motivo común de errores de ejecución de la programación. A continuación, se muestra cómo solucionar estos problemas:
Causas habituales
Faltan los permisos necesarios para el servicio de destino
Configuración de rol incorrecta en la programación
Falta una relación de confianza con EventBridge el servicio Scheduler
Permisos insuficientes para acceder a los recursos cifrados
Síntomas
Aumento de la
TargetErrorCountmétrica en CloudWatchLas programaciones no se ejecutan sin problemas aparentes en la configuración de la programación
Pasos para la solución de problemas
-
Supervise CloudWatch las métricas
Compruebe la
TargetErrorCountmétrica CloudWatch.
-
Uso de cola de mensajes fallidos (DLQ) para confirmar los problemas de permisos
Configure una DLQ para la programación.
Si hay problemas de permisos con el destino y la DLQ está configurada correctamente, verá las invocaciones erróneas en la DLQ con mensajes de error relacionados con los permisos.
Si el DLQ permanece vacío a pesar de que las CloudWatch métricas muestran las ejecuciones fallidas, es probable que se deba a un problema de permisos que impide que EventBridge Scheduler escriba en el propio DLQ.
nota
Asegúrese de que la propia DLQ tenga los permisos correctos. Si está cifrada, asegúrate de que EventBridge Scheduler tenga permiso para usar la clave KMS.
-
Verificación de la relación de confianza
Asegúrese de que su función de IAM tenga la relación de confianza correcta con EventBridge Scheduler:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" }] } -
Comprobación de los permisos de los roles de ejecución de la programación
El rol de ejecución de la programación necesita permisos específicos para invocar diferentes tipos de destinos.
Permisos de ejemplo para incluir en la política de roles de ejecución de la programación:
// 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" }] } -
Comprobación del acceso cifrado a los recursos
Si el destino usa recursos cifrados (por ejemplo, colas SQS cifradas con KMS), asegúrese de que el rol tenga permisos para usar la clave de KMS:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" } ] } -
Verificación de la configuración del ARN del rol
Asegúrese de que el ARN del rol en la configuración de la programación sea correcto.
Compruebe que el rol existe en la misma región Cuenta de AWS y en la misma que su programación.
Descripción y administración de Service Quotas
Si tienes problemas para crear horarios o recibes invocaciones limitadas, es posible que estés alcanzando los límites de las cuotas de servicio. EventBridge Scheduler tiene cuotas para la cantidad de programaciones, grupos de programaciones y tasas de invocación, que pueden variar según la región.
Identificación de problemas de cuota
Para determinar si está alcanzando los límites de cuota:
-
Supervise las métricas CloudWatch
Compruebe la métrica
InvocationThrottleCount. Un aumento en esta métrica indica que está excediendo el límite de frecuencia de invocación.Revise la métrica
InvocationAttemptCountpara entender el uso actual.
-
Prestar atención a los mensajes de error específicos
Al crear o modificar programaciones, una
LimitExceededExceptionindica que ha alcanzado el número máximo de programaciones o grupos de programaciones.Las llamadas a la API que devuelven errores de limitación sugieren que está excediendo la cuota de solicitudes de la API.
Resolución de problemas de cuota
Si determina que está alcanzando los límites de cuota:
Revise y optimice las programaciones actuales. Considere la posibilidad de consolidar programas similares o eliminar los que no se utilicen.
Para limitar las API, implemente el reintento con retroceso en las llamadas a la API.
Si necesita cuotas más altas, solicite un aumento a través de la consola de Service Quotas. Selecciona EventBridge Scheduler, elige la cuota que necesitas aumentar y envía una solicitud con tu justificación empresarial.
Problemas de tiempo de activación y patrones de programación
A veces, los usuarios se topan con problemas debido a que los horarios no se activan a las horas esperadas. En la mayoría de los casos, esto puede deberse a malentendidos sobre los patrones de programación, a los cambios del horario de verano o a los periodos de tiempo flexibles.
Causas habituales
Interpretación errónea de las expresiones cron.
Comportamiento inesperado durante los cambios de horario de verano.
Confusión sobre periodos de tiempo flexibles.
Malentendido de las expresiones de frecuencia.
Pasos para la solución de problemas
-
Verificación de las expresiones cron
Asegúrese de que la expresión cron tiene el formato correcto.
Tenga en cuenta que no puede especificar ambos day-of-month day-of-week campos simultáneamente en una expresión cron.
-
Consideraciones sobre la zona horaria
Seleccione la zona horaria que prefiera al crear la programación.
Comprenda cómo afecta el horario de verano a su programación, ya que este ajuste se basa en UTC.
Ejemplo del impacto del horario de verano: si configura un horario para que se ejecute a las 7:00 GMT:
Durante el invierno: el horario es a las 7:00 GMT (ya que GMT = UTC)
Durante el verano: el horario sigue siendo válido a las 7:00 UTC, que ahora son las 6:00 GMT/BST
Si necesita que el horario se ejecute a la misma hora local durante todo el año, asegúrese de seleccionar la zona horaria adecuada al crear el horario y de qué manera el horario de verano puede afectar a esa zona horaria.
-
Descripción de los periodos de tiempo flexibles
Las ventanas horarias flexibles permiten a EventBridge Scheduler optimizar las invocaciones.
Es posible que la programación no se active exactamente al principio del periodo.
Supervise los tiempos de invocación reales para comprender el comportamiento.
-
Revisión de las expresiones de frecuencia y cron
Asegúrese de que las expresiones de frecuencia tengan el formato correcto (por ejemplo,
rate(5 minutes),rate(1 hour)).Para las expresiones de frecuencia y cron, tenga en cuenta que las invocaciones de programación no se limitan al segundo 0 de un minuto.
Las programaciones se pueden activar en el minuto especificado, pero no necesariamente al principio exacto del minuto.
Por ejemplo:
Una programación con
rate(1 hour)puede ser a las 14:00:45., 15:00:32, 16:00:18, etc.Una programación de cron establecida para
0 * * * ? *(cada hora) podría ser a las 14:00:15, 15:00:07, 16:00:52, etc.
-
Supervise las métricas CloudWatch
Use la métrica
InvocationAttemptCountpara verificar si la programación se está activando.Compruebe
TargetErrorCountsi las invocaciones producen un error.Si ha configurado una cola de mensajes fallidos, supervise
InvocationsSentToDeadLetterCountpara realizar un seguimiento de las invocaciones erróneas.
Creación de patrones de programación y expresiones cron
Los usuarios suelen tener problemas al crear patrones de programación, especialmente con las expresiones cron. A continuación, se indican algunos problemas comunes y la forma de resolverlos:
Problemas comunes
Sintaxis de cron incorrecta
Se está intentando utilizar características de cron no compatibles
Confusión sobre qué campos se pueden utilizar de forma conjunta
Pasos para la solución de problemas
-
Revisión de la sintaxis de las expresiones cron
Asegúrese de que la expresión cron siga el formato correcto:
Minutes Hours Day-of-month Month Day-of-week Year.Recuerde que EventBridge Scheduler utiliza el estándar cron con un campo de año adicional.
-
Limitaciones de la comprensión
No puede especificar los day-of-week campos day-of-month y a la vez, como se explica aquí.
No se admiten las expresiones Cron que conducen a frecuencias superiores a 1 minuto.
-
Uso de la característica de vista previa de la programación
Al crear o editar una programación, el EventBridge programador proporciona una vista previa de los próximos 10 tiempos de ejecución.
Utilice esta vista previa para comprobar que la programación se ejecutará a las horas previstas.
Si la vista previa no coincide con las expectativas, revise y ajuste la expresión cron.
¿Se está activando mi destino?
Para confirmar si el destino se está activando:
-
Compruebe las CloudWatch métricas:
InvocationAttemptCountmuestra el número de intentos de invocaciónTargetErrorCountindica si alguna invocación ha producido un errorTargetErrorThrottledCountmuestra si el destino está siendo limitadoInvocationDroppedCountindica si se descartó alguna invocación
Configure una cola de mensajes fallidos (DLQ) para capturar y analizar cualquier invocación errónea.
Destinos con plantilla frente a destinos universales
Si recibe un mensaje de error como “Se ha proporcionado una solicitud no válida: [servicio] no es un servicio compatible para un destino”, es posible que esté intentando utilizar un servicio no compatible como destino con plantilla.
Para resolverlo:
Compruebe si el servicio deseado es compatible como destino con plantilla.
Si no es compatible, utilice un destino universal en su lugar y configúrelo para que realice la llamada a la API adecuada al servicio.
Programación de actualizaciones que activen invocaciones inesperadas
Al realizar un cambio en una programación, es posible que las invocaciones no reflejen inmediatamente la programación actualizada. Espere un breve periodo para que los cambios surtan efecto. Por ejemplo, si actualiza una programación cerca de su hora de activación original, es posible que vea una invocación en función de la configuración de la programación original.
Habilitación o desactivación de las programaciones únicas
Al volver a habilitar un programa único después de que haya transcurrido su hora programada original, el programa puede invocar inmediatamente su destino. Esto puede ocurrir incluso si la programación se desactivó antes de su hora de ejecución original.
Por ejemplo:
Hora actual: 13:15 UTC
Programación única creada para: 13:30 UTC
Programación desactivada antes de las 13:30 UTC
La programación se ha vuelto a activar a las 14:00 UTC
Resultado: se puede invocar el destino inmediatamente después de la rehabilitación