Destino de Pub/Sub
Si eliges el tipo de destino Pub/Sub, haz lo siguiente:Especifica el nombre del tema en el que se publicará el trabajo. Este es un tema de Pub/Sub que ya configuraste en tu proyecto.
Especifica el mensaje que se enviará al tema. Este se envía como el parámetro
datadentro del mensaje de Pub/Sub. Para ver un ejemplo de cómo hacerlo, consulta la guía de inicio rápido.Agrega los atributos de mensaje que necesites.
Establece cualquier configuración adicional mediante la sección
Configure optional settings.
Cloud Scheduler publicará mensajes en este tema como una cuenta de servicio de las APIs de Google.
Destino HTTP de App Engine
Si eliges el tipo de destino HTTP de App Engine, debes usar la app de App Engine y la región asociada con el proyecto actual. Si deseas usar alguna otra app de App Engine fuera de tu proyecto actual, elige HTTP como destino, no HTTP de App Engine. Las reglas de firewall de destino deben permitir las solicitudes del rango de IP 0.1.0.2/32.Configura el formulario como se indica a continuación:
En la lista Tipo de destino, selecciona HTTP de App Engine.
Especifica el nombre del servicio de App Engine que ejecuta el controlador para el trabajo de Cloud Scheduler. Si se omite, se asume que es el servicio
default. Si quieres configurarlo, puedes encontrar los nombres de los servicios en la consola deGoogle Cloud .De manera opcional, especifica la versión. Si no se establece, se usa la versión en uso actual. Puedes encontrar las versiones disponibles en la consola deGoogle Cloud .
De manera opcional, especifica la instancia. Si no se establece, se puede usar cualquier instancia disponible. Puedes encontrar las versiones disponibles en la consola deGoogle Cloud .
Especifica la URL relativa del extremo de App Engine con el que se comunicará el trabajo. Si usas el valor predeterminado
/, el trabajo usaráPROJECT-ID.appspot.com, dondePROJECT-IDes el ID del proyecto actual.Configura el método HTTP que quieres usar cuando se ejecute el trabajo. El valor predeterminado es
POST.Agrega los encabezados que necesites a la solicitud.
De manera opcional, especifica los datos del cuerpo que se enviarán al destino. Estos datos se envían en el cuerpo de la solicitud como bytes cuando se selecciona el método HTTP
POSToPUT.
Los extremos de App Engine de destino deben estar en el mismo proyecto y se pueden
proteger con login: admin en el elemento handlers del
archivo app.yaml.
Destino HTTP
Si eliges el tipo de destino HTTP, haz lo siguiente:Especifique la URL completamente calificada del extremo con el que se pondrá en contacto el trabajo.
Especifica el método HTTP. El valor predeterminado es
POST.Opcional: Especifica los datos que se enviarán al destino. Estos datos se envían en el cuerpo de la solicitud como bytes cuando se selecciona el método HTTP
POSToPUT.Opcional: Agrega los encabezados que necesites. Si tu extremo de destino requiere una clave de API en el encabezado, usa el nombre de encabezado que espera tu servicio de destino, como
x-api-keyoX-Goog-Api-Key. Si usasapi_keycomo nombre de encabezado, se pueden producir errores de autenticación.Para crear un trabajo de destino HTTP que requiera autenticación, consulta Usa la autenticación con destinos HTTP.
Los extremos HTTP objetivo deben ser de acceso público.
Puedes usar Cloud Scheduler para configurar unidades de trabajo programadas, conocidas como trabajos cron, que se envían a destinos en un programa recurrente, también llamado intervalo o frecuencia del trabajo.
Solo se debe ejecutar una instancia de trabajo a la vez. En raras circunstancias, es posible que se soliciten varias instancias del mismo trabajo. Como resultado, tu controlador de solicitudes debe ser idempotente, y tu código debe garantizar que no haya efectos secundarios dañinos si esto ocurre.
Si un trabajo aún se está ejecutando o esperando una respuesta de su destino, se omiten otras ejecuciones programadas del trabajo hasta que finalice la ejecución actual o se agote el tiempo de espera. Para obtener más información, consulta Las ejecuciones de trabajos posteriores no se inician.
Cloud Scheduler está diseñado para trabajos repetitivos. Si necesitas ejecutar un trabajo solo una vez, considera usar Cloud Tasks, que puede programar una tarea con hasta 30 días de anticipación.
Antes de comenzar
Asegúrate de haber configurado tu entorno para Cloud Scheduler.
Elige un tipo de segmentación
Cloud Scheduler puede invocar los siguientes tipos de destinos:
Extremos HTTP
Temas de Pub/Sub
Servicios de App Engine
Invoca servicios de destino que estén restringidos a la entrada interna
Cloud Scheduler puede invocar los siguientes servicios de forma interna:
- Cloud Run Functions
- Cloud Run (en la URL
run.app, no en dominios personalizados)
Para invocar estos destinos de forma interna, el destino debe estar en el mismo proyecto o perímetro de Controles del servicio de VPC deGoogle Cloud que tu trabajo de Cloud Scheduler.
Para obtener más información sobre cómo proteger los destinos restringiendo la entrada, consulta Restringe la entrada (para Cloud Run) y Establece la configuración de red (para Cloud Run Functions).
Crea un trabajo
Puedes crear un trabajo con la consola de Google Cloud o Google Cloud CLI.
Console
En la consola Google Cloud , ve a la página Cloud Scheduler.
Haz clic en Create job (Crear trabajo).
En el campo Nombre, proporciona un nombre para el trabajo que sea único en el proyecto.
Después de borrar el trabajo asociado, puedes volver a usar un nombre de trabajo en un proyecto.
En la lista Región, selecciona una región.
Si usas un destino HTTP de App Engine, debes elegir la misma región que la de tu app de App Engine. Para obtener más información, consulta Regiones admitidas por destino.
Opcional: Proporciona una descripción breve del trabajo, como un recordatorio de lo que hace.
Esta descripción aparece en la consola junto al nombre del trabajo.
Especifica la frecuencia con la que se ejecutará el trabajo con una cadena de configuración.
Por ejemplo, la cadena
0 1 * * 0ejecuta el trabajo una vez a la semana, a la 1 a.m. todos los domingos por la mañana. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Para obtener más información, consulta Configura trabajo cron cron.En la lista Zona horaria, elige la zona horaria que se usará para el programa del trabajo.
Haz clic en Continuar.
Especifica el Tipo de destino:
Pub/Sub: Debes especificar el nombre del tema de Pub/Sub que ya configuraste en tu proyecto y en el que se publicará el trabajo.
HTTP de App Engine: Debes usar la app de App Engine y la región asociada con el proyecto actual.
Haz clic en Continuar.
Opcional: Para configurar cualquier comportamiento de reintento, haz clic en Configurar parámetros opcionales. Para especificar la duración, usa una secuencia de números enteros decimales no negativos con los siguientes sufijos de unidad:
- h: hora
- m: minuto
- s: segundo
- ms: milisegundo
- us: microsegundo
- ns: nanosegundo
No se permiten valores fraccionarios ni negativos. El campo
Max retry durationsolo admite valoresh,mys. TantoMin backoff durationcomoMax backoff durationadmiten el conjunto completo.Opcional: Para los destinos HTTP y HTTP de App Engine, configura una fecha límite para los intentos de trabajo. Si el controlador de solicitudes no responde antes de este plazo, se cancela la solicitud y el intento se marca como fallido. Cloud Scheduler vuelve a intentar el trabajo según la configuración de reintentos.
Para crear y guardar el trabajo, haz clic en Crear.
El trabajo ahora se ejecutará con la frecuencia especificada.
gcloud
Cuando creas un trabajo con gcloud CLI, usas diferentes comandos para cada tipo de destino:
HTTP
Puede enviar una solicitud a cualquier extremo HTTP o HTTPS. Los extremos HTTP de destino deben ser de acceso público.
gcloud scheduler jobs create http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Reemplaza lo siguiente:
JOB: Es un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar un nombre de trabajo en un proyecto, incluso si borras el trabajo asociado.LOCATION: la ubicación en la que se ejecutará el trabajo.SCHEDULE: Es la frecuencia o el intervalo del trabajo en el que se ejecutará, por ejemplo,every 3 hours. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis de cron de App Engine heredada aún se admite para los trabajos existentes.Para obtener más información, consulta Configura trabajo cron cron.
URI: Es el URI completamente calificado del extremo con el que se comunicará el trabajo.
Otros parámetros se describen en la referencia de la línea de comandos de gcloud:
Opcional: Especifica el método HTTP. El valor predeterminado es
POST.Opcional: Especifica los datos que se enviarán al destino. Estos datos se envían en el cuerpo de la solicitud como bytes cuando se selecciona el método HTTP
POSToPUT.Opcional: Usa la marca
--headerspara incluir encabezados de la solicitud HTTP. Si tu extremo de destino requiere una clave de API en el encabezado, usa el nombre del encabezado que espera tu servicio de destino, comox-api-keyoX-Goog-Api-Key. Si usasapi_keycomo nombre de encabezado, se pueden producir errores de autenticación.Opcional: Establece los valores de reintento, que especifican cómo se debe reintentar el trabajo de App Engine en caso de falla. En la mayoría de los casos, los valores predeterminados serán suficientes.
Para crear un trabajo de destino HTTP que requiera autenticación, consulta Usa la autenticación con destinos HTTP.
Ejemplo
gcloud scheduler jobs create http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Debes usar un tema de Pub/Sub que ya hayas configurado en tu proyecto. Cloud Scheduler publicará mensajes en este tema como una cuenta de servicio de la API de Google.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Reemplaza lo siguiente:
JOB: Es un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar un nombre de trabajo en un proyecto, incluso si borras el trabajo asociado.LOCATION: la ubicación en la que se ejecutará el trabajo.SCHEDULE: Es la frecuencia o el intervalo del trabajo en el que se ejecutará, por ejemplo,every 3 hours. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis de cron de App Engine heredada aún se admite para los trabajos existentes.Para obtener más información, consulta Configura trabajo cron cron.
TOPIC: Es el nombre del tema en el que se publicará el trabajo. Usa la marca--message-bodyo--message-body-from-filepara especificar un mensaje que se enviará al tema. Este se envía como el parámetrodatadentro del mensaje de Pub/Sub. Para ver un ejemplo de cómo hacerlo, consulta la guía de inicio rápido.
Otros parámetros se describen en la referencia de la línea de comandos de gcloud.
Ejemplo
gcloud scheduler jobs create pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic \ --message-body "Hello"
HTTP de App Engine
El destino App Engine HTTP solo está disponible para la app de App Engine
asociada con el proyecto actual. Si quieres usar otra app de App Engine fuera de tu proyecto actual, elige HTTP como destino, no App Engine HTTP. Las reglas de firewall de destino deben
permitir las solicitudes del rango de IP 0.1.0.2/32.
Los extremos de App Engine se pueden proteger con login: admin en el
elemento handlers del archivo app.yaml.
gcloud scheduler jobs create app-engine \ --JOB=JOB \ --location=LOCATION \ --schedule=SCHEDULE
Reemplaza lo siguiente:
JOB: Es un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar un nombre de trabajo en un proyecto, incluso si borras el trabajo asociado.LOCATION: la ubicación en la que se ejecutará el trabajo. Debe ser la misma que la ubicación de tu app de App Engine.SCHEDULE: Es la frecuencia o el intervalo de trabajo en el que se ejecutará el trabajo, por ejemplo,every 3 hours. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis de cron de App Engine heredada aún se admite para los trabajos existentes.Para obtener más información, consulta Configura trabajo cron cron.
Otros parámetros se describen en la referencia de la línea de comandos de gcloud:
Especifica la URL relativa del extremo de App Engine con el que se comunicará el trabajo. Si usas el valor predeterminado
/, el trabajo usaráPROJECT-ID.appspot.com, dondePROJECT-IDes el ID del proyecto actual.Especifica el nombre del servicio de App Engine que ejecuta el controlador del trabajo de Cloud Scheduler. Si se omite, se asume que es el servicio
default. Si quieres configurarlo, puedes encontrar los nombres de los servicios en la consola deGoogle Cloud .Opcional: Configura el método HTTP que quieres usar cuando se ejecute el trabajo. El valor predeterminado es
POST.Opcional: Especifica la versión. Si no se establece, se usa la versión que se entrega actualmente. Puedes encontrar las versiones disponibles en la consola deGoogle Cloud .
Opcional: Especifica la instancia. Si no se configura, se puede usar cualquier instancia disponible. Puedes encontrar las versiones disponibles en la consola deGoogle Cloud .
Opcional: Especifica los datos que se enviarán al destino. Estos datos se envían en el cuerpo de la solicitud como bytes cuando se selecciona el método HTTP
POSToPUT.Opcional: Establece los valores de reintento, que especifican cómo se debe reintentar el trabajo de App Engine en caso de falla. En la mayoría de los casos, los valores predeterminados son suficientes.
Ejemplo
gcloud scheduler jobs create app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Editar un trabajo
Puedes editar la configuración de un trabajo.
Console
En la consola Google Cloud , ve a la página Cloud Scheduler.
Selecciona el trabajo que quieres editar.
Haz clic en Editar.
Sigue los pasos para definir el programa, configurar la ejecución y establecer parámetros opcionales cuando creas un trabajo.
gcloud
Cuando editas un trabajo con gcloud CLI, usas diferentes comandos para cada tipo de destino:
HTTP
Puede enviar una solicitud a cualquier extremo HTTP o HTTPS. Los extremos HTTP de destino deben ser de acceso público.
gcloud scheduler jobs update http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Reemplaza lo siguiente:
JOB: Es un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar un nombre de trabajo en un proyecto, incluso si borras el trabajo asociado.LOCATION: Es la ubicación en la que se ejecuta tu trabajo. Si no especificas la ubicación, gcloud CLI usará tu ubicación predeterminada. Si el trabajo que deseas editar se encuentra en una ubicación diferente, debes especificar la ubicación además delNAMEpara que se identifique tu trabajo. No puedes actualizar la ubicación del trabajo.SCHEDULE: Es la frecuencia o el intervalo del trabajo en el que se ejecutará, por ejemplo,every 3 hours. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis de cron de App Engine heredada aún se admite para los trabajos existentes.Para obtener más información, consulta Configura trabajo cron cron.
URI: Es el URI completamente calificado del extremo con el que se comunicará el trabajo.
Otros parámetros se describen en la referencia de la línea de comandos de gcloud.
Ejemplo
gcloud scheduler jobs update http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Debes usar un tema de Pub/Sub que ya hayas configurado en tu proyecto. Cloud Scheduler publicará mensajes en este tema como una cuenta de servicio de la API de Google.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Reemplaza lo siguiente:
JOB: Es un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar un nombre de trabajo en un proyecto, incluso si borras el trabajo asociado.LOCATION: Es la ubicación en la que se ejecuta tu trabajo. Si no especificas la ubicación, gcloud CLI usará tu ubicación predeterminada. Si el trabajo que deseas editar se encuentra en una ubicación diferente, debes especificar la ubicación además delNAMEpara que se identifique tu trabajo. No puedes actualizar la ubicación del trabajo.SCHEDULE: Es la frecuencia o el intervalo de trabajo en el que se ejecutará el trabajo, por ejemplo,every 3 hours. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis de cron de App Engine heredada aún se admite para los trabajos existentes.Para obtener más información, consulta Configura trabajo cron cron.
TOPIC: Es el nombre del tema en el que se publicará el trabajo. Usa la marca--message-bodyo--message-body-from-filepara especificar un mensaje que se enviará al tema. Este se envía como el parámetrodatadentro del mensaje de Pub/Sub. Para ver un ejemplo de cómo hacerlo, consulta la guía de inicio rápido.
Otros parámetros se describen en la referencia de la línea de comandos de gcloud.
Ejemplo
gcloud scheduler jobs update pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic --message-body "Hello"
HTTP de App Engine
El destino App Engine HTTP solo está disponible para la app de App Engine
asociada con el proyecto actual. Si quieres usar otra app de App Engine fuera de tu proyecto actual, elige HTTP como destino, no App Engine HTTP.
Los extremos de App Engine se pueden proteger con login: admin en el
elemento handlers del archivo app.yaml.
gcloud scheduler jobs update app-engine JOB \ --location=LOCATION \ --schedule=SCHEDULE
Reemplaza lo siguiente:
JOB: Es un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar un nombre de trabajo en un proyecto, incluso si borras el trabajo asociado.LOCATION: Es la ubicación en la que se ejecuta tu trabajo (es la misma que la ubicación de tu app de App Engine de destino). Si no especificas la ubicación, gcloud CLI usará tu ubicación predeterminada. Si el trabajo que deseas editar se encuentra en una ubicación diferente, debes especificar la ubicación además delNAMEpara que se identifique tu trabajo. No puedes actualizar la ubicación del trabajo.SCHEDULE: Es la frecuencia o el intervalo de trabajo en el que se ejecutará el trabajo, por ejemplo,every 3 hours. La cadena que proporciones aquí puede ser cualquier cadena compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis de cron de App Engine heredada aún se admite para los trabajos existentes.Para obtener más información, consulta Configura trabajo cron cron.
Otros parámetros se describen en la referencia de la línea de comandos de gcloud.
Ejemplo
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Pausa un trabajo
Puedes pausar la ejecución de un trabajo.
Console
En la consola de Google Cloud , ve a Cloud Scheduler.
Selecciona el trabajo que quieres pausar.
Haz clic en Pausar.
gcloud
Abre una ventana de terminal en la máquina en la que instalaste la gcloud CLI.
Ejecuta el siguiente comando:
gcloud scheduler jobs pause MY_JOBReemplaza
MY_JOBpor el nombre del trabajo que deseas pausar.
Mientras un trabajo está detenido, también puedes editarlo. Después de editar el trabajo, este permanece pausado hasta que lo reanudes.
Reanuda un trabajo
Puedes reanudar la ejecución de un trabajo detenido.
Console
En la consola de Google Cloud , ve a Cloud Scheduler.
Selecciona el trabajo que quieres reanudar.
El trabajo ya debe estar pausado.
Haz clic en Reanudar.
gcloud
Abre una ventana de terminal en la máquina en la que instalaste la gcloud CLI.
Ejecuta el siguiente comando:
gcloud scheduler jobs resume MY_JOBReemplaza
MY_JOBpor el nombre del trabajo que deseas reanudar.
Borra un trabajo
Puedes borrar un trabajo.
Console
En la consola de Google Cloud , ve a Cloud Scheduler.
Selecciona el trabajo que quieres borrar.
Haz clic en Borrar.
gcloud
Abre una ventana de terminal en la máquina en la que instalaste la gcloud CLI.
Ejecuta el siguiente comando:
gcloud scheduler jobs delete MY_JOBReemplaza
MY_JOBpor el nombre del trabajo que se borrará.