En esta página se explica cómo resolver problemas con Cloud Scheduler.
Cloud Scheduler publica registros al inicio y al final de cada ejecución de un trabajo. Puede recuperar, ver y analizar los registros de un trabajo específico, incluidos los registros de auditoría disponibles en Cloud Scheduler. Para obtener más información, consulta el artículo sobre cómo ver registros.
De forma predeterminada, cuando una tarea de Cloud Scheduler no recibe una confirmación de su servicio de destino (el controlador de solicitudes de la tarea), se considera que la tarea ha fallado. Cloud Scheduler volverá a intentar ejecutar la tarea según el retroceso exponencial que hayas configurado.
Para obtener información sobre los incidentes que afectan a los Google Cloud servicios, consulta el Google Cloud panel de control de Service Health y todos los incidentes notificados de Cloud Scheduler.
El trabajo falla debido a un problema con un servicio de nivel inferior
Un fallo en una tarea puede deberse a un problema en un servicio de nivel inferior al que se dirige Cloud Scheduler (por ejemplo, Cloud Run) en lugar de a Cloud Scheduler en sí. Puedes sospechar que hay un problema con un servicio de nivel inferior cuando se cumplen las siguientes condiciones:
- Los permisos de Cloud Scheduler están configurados correctamente.
- Cloud Scheduler puede acceder correctamente al servicio de destino.
- Los mensajes de error de los registros de ejecución de Cloud Scheduler proceden del servicio de nivel inferior.
Para solucionar este problema, siga estos pasos:
- Invoca el servicio de nivel inferior directamente: comprueba que el servicio de nivel inferior se puede invocar correctamente sin Cloud Scheduler. Una invocación correcta indica que es probable que Cloud Scheduler esté causando el problema. Si no se realiza correctamente, el servicio de nivel inferior requiere más depuración.
- Examina los registros del servicio de destino: examina los registros del servicio de destino, determina los errores que se están generando y priorízalos en consecuencia.
- Busca operaciones de larga duración: cuando Cloud Scheduler devuelva un error HTTP
504
en operaciones de larga duración (más de 30 minutos), consulta los registros del servicio de destino para ver si la ejecución se ha completado correctamente o no, ya que el servicio de destino puede tener un tiempo de espera de solicitud más largo. En ese caso, Cloud Scheduler agota el tiempo de espera, pero el servicio de destino no.
La tarea falla con un error de permisos
Los permisos controlan qué principales pueden acceder a los recursos y qué operaciones se permiten. Si los permisos no están bien configurados, se pueden interrumpir las ejecuciones de tareas y se pueden producir errores de permiso denegado. Los registros de auditoría proporcionan un registro detallado de todos los cambios de permisos, lo que te permite identificar el origen de estos problemas.
Si tu tarea de Cloud Scheduler falla debido a un error de permisos, es posible que en los registros de ejecución se muestre un mensaje similar al siguiente:"debugInfo":"URL_ERROR-ERROR_OTHER. Original HTTP response code number = 403"
.
Para resolver este problema, completa una o varias de las siguientes verificaciones:
Verifica los roles de gestión de identidades y accesos concedidos al agente de servicio: el agente de servicio de Cloud Scheduler requiere el rol Agente de servicio de Cloud Scheduler (
roles/cloudscheduler.serviceAgent
). Sin este rol, las tareas de Cloud Scheduler fallarán. Puedes conceder manualmente el rol a tu agente de servicio de Cloud Scheduler. Solo se requiere una concesión manual si has habilitado la API de Cloud Scheduler antes del 19 de marzo del 2019 o si has quitado el rol de agente de servicio de Cloud Scheduler. Para obtener más información, consulta Conceder el rol de agente de servicio de Cloud Scheduler.Verifica los permisos de tu cuenta de servicio: asegúrate de que la cuenta de servicio asociada a tu trabajo tenga los permisos y el ámbito correctos para invocar el servicio de destino. Esto incluye los casos en los que el destino se encuentra en otro proyecto o es el destino final de un servicio intermediario. Si tu objetivo está dentro de Google Cloud, confirma que has concedido los roles necesarios a tu cuenta de servicio. Cada servicio de Google Cloud requiere un rol específico, y el servicio receptor verifica automáticamente el token generado. Por ejemplo, en Cloud Run y Cloud Run Functions, debes asignar el rol
Cloud Run Invoker
. Si el destino está fuera de Google Cloud, el servicio receptor debe verificar el token manualmente. Para obtener más información, consulta los artículos Autenticarse en Cloud Scheduler y Usar la autenticación con destinos HTTP.Verifica si hay infracciones de Controles de Servicio de VPC: Controles de Servicio de VPC es una Google Cloud función que te permite configurar un perímetro seguro para protegerte frente a la exfiltración de datos. Para determinar si un error está relacionado con Controles de Servicio de VPC, comprueba si has habilitado este servicio y lo has aplicado a los proyectos y servicios que estás intentando usar. Para comprobar si los proyectos y servicios están protegidos por Controles de Servicio de VPC, consulta la política de Controles de Servicio de VPC en ese nivel de la jerarquía de recursos.
Para conocer el alcance de un problema, puedes recuperar errores de Controles de Servicio de VPC de los registros de auditoría.
-
En la Google Cloud consola, ve a la página Explorador de registros:
Ve al Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.
Consulta los registros de auditoría con los siguientes criterios:
severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"
En concreto, los mensajes de error pueden incluir el siguiente texto:
Request is prohibited by organization's policy
Request violates VPC Service Controls
Para obtener más información sobre los problemas que pueden surgir al configurar Controles de Servicio de VPC, consulta el artículo Solucionar problemas habituales.
-
Verifica los endpoints privados: Cloud Scheduler solo puede invocar determinados endpoints privados, como Cloud Run, funciones de Cloud Run y APIs de Google Cloud dentro de un perímetro de Controles de Servicio de VPC. Comprueba la configuración de entrada de tu servicio de destino (por ejemplo, consulta Restringir la entrada de red en Cloud Run) y los permisos de la cuenta de servicio adjunta. Es posible que recibas un mensaje de error
URL_ERROR-ERROR_DNS
. Para obtener más información, consulta la sección El trabajo falla porque no se puede acceder al destino de este documento.
El trabajo falla porque no se puede acceder al destino
Este problema se produce cuando falla tu tarea de Cloud Scheduler porque no se puede acceder al destino. En los registros de ejecución se muestran los errores que empiezan por URL_ERROR
o URL_UNREACHABLE
.
Para resolver este problema, en función del mensaje de error que haya recibido, realice una de las siguientes comprobaciones:
URL_ERROR-ERROR_AUTHENTICATION
: se devuelve un error HTTP401 (Unauthorized)
o HTTP407 (Proxy Authentication Required)
. El destino requiere autenticación, pero la solicitud de Cloud Scheduler no incluye un token de autenticación válido. Por ejemplo, la solicitud no incluye un encabezado de autorización o las credenciales no son válidas. Comprueba los ajustes de autenticación del trabajo. Para obtener más información, consulta los artículos Autenticarse en Cloud Scheduler y Usar la autenticación con destinos HTTP.URL_ERROR-ERROR_DNS
: indica que no se ha podido obtener una URL porque no se ha podido resolver el nombre de host mediante el sistema de nombres de dominio (DNS). Por ejemplo, el nombre de host no existe o no tiene ninguna dirección IP asociada. El mensaje de error puede incluir el textoOriginal HTTP response code number = 0
. Comprueba la validez del nombre de host y, al invocar un endpoint privado, asegúrate de que sea compatible con Cloud Scheduler y comprueba su configuración de entrada.URL_ERROR-ERROR_NOT_FOUND
: el servidor web devuelve un error HTTP404 Not Found
. Comprueba si la URL de destino es correcta y si el recurso existe.URL_ERROR-ERROR_OTHER
: se refiere a un error genérico de HTTP4xx
que no se ha detallado anteriormente. Consulta los registros para obtener el código de respuesta HTTP original. Si recibes un error HTTP403
, consulta la sección El trabajo falla con un error de permiso de este documento.URL_UNREACHABLE-UNREACHABLE_5xx
: El destino devuelve un error HTTP5xx
o429
. Puede que se trate de una condición temporal, como un servidor sobrecargado. Consulta los registros del destino para depurar el problema.URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET
: el interlocutor ha restablecido la conexión. Comprueba si hay algún problema en el servidor externo.URL_UNREACHABLE-UNREACHABLE_ERROR
: indica que hay un error de red. Comprueba si la URL de destino es correcta y si hay reglas de cortafuegos que bloqueen el acceso.
Problemas de ejecución de tareas
Las tareas de Cloud Scheduler se ejecutan a horas concretas o en intervalos regulares. Pueden producirse los siguientes problemas mientras se ejecuta un trabajo.
Un trabajo que funcionaba deja de ejecutarse
Este problema se produce cuando una tarea de Cloud Scheduler que se había ejecutado correctamente deja de ejecutarse porque la API de Cloud Scheduler está inhabilitada. Para confirmar la hora en la que se inhabilitó la API, consulta los registros de auditoría con los siguientes criterios:
resource.type="audited_resource" AND protoPayload.serviceName="cloudscheduler.googleapis.com" AND operation.producer="serviceusage.googleapis.com" AND protoPayload.authorizationInfo.permission="serviceusage.services.disable"
Para solucionar este problema, habilita la API de Cloud Scheduler.
La ejecución de una tarea se vuelve irregular debido al cambio de horario
Cuando creas un trabajo de Cloud Scheduler con la Google Cloud consola, debes especificar una zona horaria. Cuando usas la CLI de Google Cloud, puedes especificar una zona horaria con la marca --time-zone
. De lo contrario, se usará la zona horaria predeterminada, que es el tiempo universal coordinado (UTC
).
Este problema se produce cuando una tarea se configura con una zona horaria que no es UTC y su ejecución se vuelve irregular debido a los cambios del horario de verano. Es el comportamiento esperado.
Si tu trabajo requiere una cadencia muy exacta, debes elegir una zona horaria que no aplique el horario de verano. En concreto, para evitar el problema por completo, configura la programación de tu trabajo para que use la zona horaria UTC.
Para obtener más información, consulta Formato de las tareas cron y zona horaria.
Siguientes pasos
Si no encuentras una solución a tu problema en la documentación de Cloud Scheduler, prueba las siguientes opciones:
- Para obtener asistencia de la comunidad, haz preguntas en Stack Overflow o busca problemas similares con la etiqueta
google-cloud-scheduler
. - Abre un caso de asistencia poniéndote en contacto con el Google Cloud equipo de Atención al Cliente.
- Abre un error o una solicitud de función mediante el sistema de seguimiento de problemas público.
Para obtener más información, consulta la asistencia de Cloud Scheduler.