Soluciona problemas de Cloud Scheduler

En esta página, se muestra cómo resolver problemas con Cloud Scheduler.

Cloud Scheduler publica registros al inicio y al final de cada ejecución de trabajo. Puedes recuperar, ver y analizar los registros de un trabajo específico, incluidos los registros de auditoría disponibles para Cloud Scheduler. Para obtener más información, consulta Visualiza los registros.

De forma predeterminada, cuando un trabajo de Cloud Scheduler no recibe una confirmación de su servicio de destino (el controlador de solicitudes del trabajo), se considera que el trabajo falló. Cloud Scheduler volverá a intentar el trabajo según la retirada exponencial que hayas configurado.

Para obtener información sobre los incidentes que afectan a los Google Cloud servicios, consulta el Google Cloud Panel de estado del servicio y Todos los incidentes informados para Cloud Scheduler.

El trabajo falla debido a un problema del servicio de nivel inferior

Es posible que la falla de un trabajo se deba 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 en los registros de ejecución de Cloud Scheduler provienen del servicio descendente.

Para resolver este problema, realiza los siguientes pasos:

  1. Invoca el servicio de nivel inferior directamente: Verifica que el servicio de nivel inferior se pueda invocar correctamente sin Cloud Scheduler. Una invocación exitosa 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.
  2. Examina los registros del servicio de destino: Examina los registros del servicio de destino, determina los errores que se generan y priorízalos según corresponda.
  3. Busca operaciones de larga duración: Cuando Cloud Scheduler devuelve un error HTTP 504 para operaciones de larga duración (más de 30 minutos), consulta los registros del servicio de destino para ver si la ejecución se realizó correctamente o falló, ya que el servicio de destino podría tener un tiempo de espera de solicitud más largo. En este caso, Cloud Scheduler agota el tiempo de espera, pero el servicio de destino no lo hace.

El trabajo falla con un error de permiso

Los permisos controlan qué principales pueden acceder a los recursos y qué operaciones están permitidas. Los permisos configurados de forma incorrecta pueden interrumpir las ejecuciones de trabajos y generar errores de permiso denegado. Los registros de auditoría proporcionan un registro detallado de todos los cambios de permisos, lo que te permite identificar la fuente de estos problemas.

Cuando tu trabajo de Cloud Scheduler falla con un error de permiso, es posible que los registros de ejecución muestren un mensaje similar a "debugInfo":"URL_ERROR-ERROR_OTHER. Original HTTP response code number = 403".

Para resolver este problema, realiza una o más de las siguientes verificaciones:

  • Verifica los roles de IAM otorgados 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, fallarán los trabajos de Cloud Scheduler. Puedes otorgar el rol de forma manual a tu agente de servicio de Cloud Scheduler. Solo se requiere un otorgamiento manual si habilitaste la API de Cloud Scheduler antes del 19 de marzo de 2019 o si quitaste el rol de agente de servicio de Cloud Scheduler. Para obtener más información, consulta Otorga 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 adjunta a tu trabajo tenga los permisos y el alcance correctos para invocar el servicio de destino. Esto incluye situaciones en las que el destino se encuentra en otro proyecto o es el destino final de un servicio intermediario. Cuando tu objetivo esté dentro de Google Cloud, confirma que otorgaste los roles necesarios a tu cuenta de servicio. Cada servicio dentro de Google Cloud requiere un rol específico, y el servicio receptor verifica automáticamente el token generado. Por ejemplo, para Cloud Run y Cloud Run Functions, debes otorgar el rol Cloud Run Invoker. Cuando tu objetivo está fuera de Google Cloud, el servicio receptor debe verificar el token de forma manual. Para obtener más información, consulta Autentícate en Cloud Scheduler y Usa la autenticación con destinos de HTTP.

  • Verifica si hay incumplimientos de los Controles del servicio de VPC: Controles del servicio de VPC es una función de Google Cloud que te permite configurar un perímetro seguro para protegerte del robo de datos. Para determinar si un error está relacionado con los Controles del servicio de VPC, verifica si habilitaste los Controles del servicio de VPC y si lo aplicaste a los proyectos y servicios que intentas usar. Para verificar si los proyectos y servicios están protegidos por los Controles del servicio de VPC, consulta la política de los Controles del servicio de VPC en ese nivel de la jerarquía de recursos.

    Para comprender el alcance de un problema, puedes recuperar errores de los Controles del servicio de VPC de los registros de auditoría.

    1. En la consola de Google Cloud , accede a la página Explorador de registros:

      Acceder al Explorador de registros

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

    2. Consulta los registros de auditoría según los siguientes criterios:

      severity="ERROR" AND protoPayload.status.details.violations.type="VPC_SERVICE_CONTROLS"

      Específicamente, 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 cuando configuras los Controles del servicio de VPC, consulta Soluciona problemas habituales.

  • Verifica los extremos privados: Cloud Scheduler solo puede invocar ciertos extremos privados, como las APIs de Cloud Run, las funciones de Cloud Run y Google Cloud dentro de un perímetro de Controles del servicio de VPC. Verifica la configuración de entrada de tu servicio de destino (por ejemplo, consulta Restringe la entrada de red para 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 El trabajo falla debido a que no se puede acceder al destino en este documento.

El trabajo falla porque no se puede acceder al destino

Este problema se produce cuando falla tu trabajo de Cloud Scheduler porque no se puede acceder al destino. Los registros de ejecución muestran errores que comienzan con URL_ERROR o URL_UNREACHABLE.

Para resolver este problema, según el mensaje de error que recibas, realiza una de las siguientes verificaciones:

  • URL_ERROR-ERROR_AUTHENTICATION: Se devuelve un error HTTP 401 (Unauthorized) o HTTP 407 (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, a la solicitud le falta un encabezado de autorización o las credenciales no son válidas. Verifica la configuración de autenticación de tu trabajo. Para obtener más información, consulta Autentícate en Cloud Scheduler y Usa la autenticación con destinos de HTTP.

  • URL_ERROR-ERROR_DNS: Indica que falló una recuperación de URL porque no se pudo resolver el nombre de host con el Sistema de nombres de dominio (DNS). Por ejemplo, el nombre de host no existe o no tiene una dirección IP asociada. El mensaje de error puede incluir el texto Original HTTP response code number = 0. Comprueba la validez del nombre de host y, cuando invoques un extremo privado, asegúrate de que sea compatible con Cloud Scheduler y verifica su configuración de entrada.

  • URL_ERROR-ERROR_NOT_FOUND: El servidor web devuelve un error 404 Not Found de HTTP. Comprueba si la URL de destino es correcta y si existe el recurso.

  • URL_ERROR-ERROR_OTHER: Se refiere a un error genérico de HTTP 4xx que no se detalló anteriormente. Revisa los registros para recuperar el código de respuesta HTTP original. Si recibes un error HTTP 403, consulta El trabajo falla con un error de permiso en este documento.

  • URL_UNREACHABLE-UNREACHABLE_5xx: El destino devuelve un error HTTP 5xx o 429. Este podría ser un problema transitorio, por ejemplo, un servidor sobrecargado. Verifica los registros del destino para depurar el problema.

  • URL_UNREACHABLE-UNREACHABLE_CONNECTION_RESET: El par restableció la conexión. Verifica si hay un problema en el servidor externo.

  • URL_UNREACHABLE-UNREACHABLE_ERROR: Indica un error de red. Comprueba si la URL de destino es correcta y si hay reglas de firewall que bloqueen el acceso.

Problemas de ejecución del trabajo

Los trabajos de Cloud Scheduler se ejecutan en horarios definidos o a intervalos regulares. Los siguientes problemas pueden ocurrir mientras se ejecuta un trabajo.

Un trabajo que antes funcionaba deja de ejecutarse

Este problema se produce cuando un trabajo de Cloud Scheduler que se ejecutó correctamente deja de ejecutarse porque la API de Cloud Scheduler está inhabilitada. Puedes confirmar la hora en que se inhabilitó la API consultando los registros de auditoría según 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 resolver este problema, habilita la API de Cloud Scheduler.

La ejecución de un trabajo se vuelve irregular debido al horario de verano

Cuando crees un trabajo de Cloud Scheduler con la consola de Google Cloud , debes especificar una zona horaria. Cuando usas Google Cloud CLI, puedes especificar una zona horaria con la marca --time-zone. De lo contrario, la zona horaria predeterminada que se usa es la hora universal coordinada o UTC.

Este problema se produce cuando un trabajo 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 (DST). Este es el comportamiento esperado.

Si tu trabajo requiere una cadencia muy exacta, debes elegir una zona horaria que no observe el horario de verano. Específicamente, 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 trabajo cron y zona horaria.

¿Qué sigue?

Si no encuentras una solución a tu problema en la documentación de Cloud Scheduler, considera las siguientes opciones:

Para obtener más información, consulta la asistencia de Cloud Scheduler.