Destino de Pub/Sub
Si elige el tipo de destino Pub/Sub:Especifica el nombre del tema en el que se publicará el trabajo. Se trata de un tema de Pub/Sub que ya has configurado en tu proyecto.
Especifica el mensaje que se enviará al tema. Se envía como el parámetro
data
en el mensaje de Pub/Sub. Para ver un ejemplo de cómo hacerlo, consulta la guía de inicio rápido.Añade los atributos de mensaje que necesites.
Configure los ajustes adicionales en la sección
Configure optional settings
.
Cloud Scheduler publicará mensajes en este tema como 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 aplicación de App Engine y la región asociadas al proyecto actual. Si quieres usar otra aplicación de App Engine que no esté en tu proyecto actual, elige HTTP como destino, no HTTP de App Engine. Las reglas de cortafuegos de destino deben permitir las solicitudes del intervalo de direcciones IP 0.1.0.2/32.Configura el formulario de la siguiente manera:
En la lista Tipo de destino, selecciona HTTP de App Engine.
Especifica el nombre del servicio de App Engine que ejecuta el controlador de la tarea de Cloud Scheduler. Si se omite, se supone que es el servicio
default
. Si quieres configurarlo, puedes encontrar los nombres de los servicios en la Google Cloud consola.También puede especificar la versión. Si no se define, se usa la versión que se está usando. Puedes consultar las versiones disponibles en la Google Cloud consola.
Si quiere, puede especificar la instancia. Si no se define ningún valor, se puede usar cualquier instancia disponible. Puedes consultar las versiones disponibles en la Google Cloud consola.
Especifica la URL relativa del endpoint de App Engine con el que se pondrá en contacto el trabajo. Si usas el valor predeterminado
/
, la tarea usaráPROJECT-ID.appspot.com
, dondePROJECT-ID
es el ID de tu proyecto actual.Define el método HTTP que quieras usar cuando se ejecute el trabajo. El valor predeterminado es
POST
.Añade los encabezados que necesites a la solicitud.
Opcionalmente, 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
POST
oPUT
.
Los endpoints 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 elige el tipo de destino HTTP:Especifica la URL completa del endpoint con el que se pondrá en contacto el trabajo.
Especifica el método HTTP. El valor predeterminado es
POST
.Si quiere, especifique 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
POST
oPUT
.Añade los encabezados que necesites.
Para crear un trabajo de destino HTTP que requiera autenticación, consulta Usar la autenticación con destinos HTTP.
Los endpoints HTTP de destino deben ser de acceso público.
Puedes usar Cloud Scheduler para configurar unidades de trabajo programadas, conocidas como tareas cron, que se envían a destinos con una programación periódica, también llamada intervalo o frecuencia de la tarea.
Solo se debe ejecutar una instancia de un trabajo en cualquier momento. En raras ocasiones, es posible que se soliciten varias instancias del mismo trabajo. Por lo tanto, el controlador de solicitudes debe ser idempotente y el código debe asegurarse de que no haya efectos secundarios perjudiciales si esto ocurre.
Cloud Scheduler está diseñado para tareas repetitivas. Si solo necesitas ejecutar un trabajo una vez, te recomendamos que uses Cloud Tasks, que puede programar una tarea con hasta 30 días de antelación.
Antes de empezar
Asegúrate de haber configurado tu entorno para Cloud Scheduler.
Elige un tipo de objetivo
Cloud Scheduler puede invocar los siguientes tipos de destinos:
Endpoints HTTP
Temas de Pub/Sub
Servicios de App Engine
Invocar servicios de destino restringidos a la entrada interna
Cloud Scheduler puede invocar los siguientes servicios internamente:
- Cloud Run Functions
- Cloud Run (en la URL
run.app
, no en dominios personalizados)
Para invocar estos destinos internamente, el destino debe estar en el mismo proyecto o perímetro de Controles de Servicio de VPC que tu trabajo de Cloud Scheduler.Google Cloud
Para obtener más información sobre cómo proteger los destinos restringiendo el tráfico de entrada, consulta Restringir el tráfico de entrada (en Cloud Run) y Configurar los ajustes de red (en las funciones de Cloud Run).
Crear una tarea
Puedes crear un trabajo mediante la Google Cloud consola o la CLI de Google Cloud.
Consola
En la Google Cloud consola, ve a la página Cloud Scheduler.
Haz clic en Crear trabajo.
En el campo Name (Nombre), asigna un nombre a la tarea que sea único en el proyecto.
Después de eliminar el trabajo asociado, puede volver a usar el nombre de un 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 tu aplicación de App Engine. Para obtener más información, consulta Regiones admitidas por destino.
Si quiere, puede añadir una breve descripción 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 debe ejecutar la tarea mediante una cadena de configuración.
Por ejemplo, la cadena
0 1 * * 0
ejecuta el trabajo una vez a la semana a la 1:00 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 Configurar programaciones de tareas cron.En la lista Zona horaria, elija la zona horaria que se usará para la programación del trabajo.
Haz clic en Continuar.
Especifica el Tipo de objetivo:
Pub/Sub: debes especificar el nombre del tema de Pub/Sub que ya hayas configurado en tu proyecto y en el que se publicará el trabajo.
HTTP de App Engine: debes usar la aplicación de App Engine y la región asociadas al proyecto actual.
Haz clic en Continuar.
Si quieres configurar el comportamiento de reintento, haz clic en Configurar ajustes 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 negativos ni fraccionarios. El campo
Max retry duration
solo admite los valoresh
,m
ys
. TantoMin backoff duration
comoMax backoff duration
admiten el conjunto completo.De forma opcional, en el caso de los destinos HTTP y HTTP de App Engine, configura un plazo para los intentos de trabajo. Si el controlador de solicitudes no responde antes de esta fecha límite, la solicitud se cancela y el intento se marca como fallido. Cloud Scheduler vuelve a intentar ejecutar la tarea según la configuración de reintento.
Para crear y guardar el trabajo, haz clic en Crear.
La tarea se ejecutará con la frecuencia especificada.
gcloud
Cuando creas un trabajo con gcloud CLI, usas comandos diferentes para cada tipo de destino:
HTTP
Puedes enviar una solicitud a cualquier endpoint HTTP o HTTPS. Los endpoints HTTP de destino deben ser de acceso público.
gcloud scheduler jobs create http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Haz los cambios siguientes:
JOB
: un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar el nombre de un trabajo en un proyecto aunque elimines el trabajo asociado.LOCATION
: la ubicación en la que se ejecutará el trabajo.SCHEDULE
: frecuencia o intervalo de trabajo con el que se debe 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 cron de App Engine antigua sigue siendo compatible con los trabajos que ya existen.Para obtener más información, consulta Configurar programaciones de tareas cron.
URI
: el URI completo del endpoint con el que se pondrá en contacto el trabajo.
Otros parámetros se describen en la referencia de la línea de comandos gcloud:
Opcionalmente, especifica el método HTTP. El valor predeterminado es
POST
.Si quiere, especifique 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
POST
oPUT
.También puede definir los valores de reintento, que especifican cómo se debe reintentar el trabajo de App Engine en caso de fallo. 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 Usar 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 cuenta de servicio de la API de Google.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Haz los cambios siguientes:
JOB
: un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar el nombre de un trabajo en un proyecto aunque elimines el trabajo asociado.LOCATION
: la ubicación en la que se ejecutará el trabajo.SCHEDULE
: frecuencia o intervalo de trabajo con el que se debe 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 cron de App Engine antigua sigue siendo compatible con los trabajos que ya existen.Para obtener más información, consulta Configurar programaciones de tareas cron.
TOPIC
: el nombre del tema en el que se publicará el trabajo. Usa la marca--message-body
o--message-body-from-file
para especificar un mensaje que se enviará al tema. Se envía como el parámetrodata
en el 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 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 aplicación de App Engine asociada al proyecto actual. Si quieres usar otra aplicación de App Engine que no esté en tu proyecto actual, elige HTTP
como destino, no App Engine HTTP
. Las reglas de cortafuegos de destino deben permitir las solicitudes del intervalo de direcciones IP 0.1.0.2/32.
Los endpoints 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
Haz los cambios siguientes:
JOB
: un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar el nombre de un trabajo en un proyecto aunque elimines el trabajo asociado.LOCATION
: la ubicación en la que se ejecutará el trabajo. Debe ser la misma que la de tu aplicación de App Engine.SCHEDULE
: frecuencia o intervalo de trabajo con el que se debe ejecutar el trabajo. Por ejemplo,every 3 hours
. La cadena que proporciones aquí puede ser cualquier cadena compatible con cron de Unix. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine antigua sigue siendo compatible con los trabajos que ya existen.Para obtener más información, consulta Configurar programaciones de tareas cron.
Otros parámetros se describen en la referencia de la línea de comandos gcloud:
Especifica la URL relativa del endpoint de App Engine con el que se pondrá en contacto el trabajo. Si usas el valor predeterminado
/
, la tarea usaráPROJECT-ID.appspot.com
, dondePROJECT-ID
es el ID de tu proyecto actual.Especifica el nombre del servicio de App Engine que ejecuta el controlador de la tarea de Cloud Scheduler. Si se omite, se supone que es el servicio
default
. Si quieres configurarlo, puedes consultar los nombres de los servicios en la Google Cloud consola.De forma opcional, define el método HTTP que quieras usar cuando se ejecute el trabajo. El valor predeterminado es
POST
.También puede especificar la versión. Si no se define, se usa la versión que se está usando. Puedes consultar las versiones disponibles en la Google Cloud consola.
Si quiere, puede especificar la instancia. Si no se define ningún valor, se puede usar cualquier instancia disponible. Puedes consultar las versiones disponibles en la Google Cloud consola.
Si quiere, especifique 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
POST
oPUT
.También puede definir los valores de reintento, que especifican cómo se debe reintentar el trabajo de App Engine en caso de fallo. 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 una tarea
Puedes editar la configuración de una tarea.
Consola
En la Google Cloud consola, ve a la página Cloud Scheduler.
Selecciona el trabajo que quieras editar.
Haz clic en Editar.
Sigue los pasos para definir la programación, configurar la ejecución y configurar los ajustes opcionales al crear un trabajo.
gcloud
Cuando editas un trabajo con la CLI de gcloud, usas comandos diferentes para cada tipo de destino:
HTTP
Puedes enviar una solicitud a cualquier endpoint HTTP o HTTPS. Los endpoints HTTP de destino deben ser de acceso público.
gcloud scheduler jobs update http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Haz los cambios siguientes:
JOB
: un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar el nombre de un trabajo en un proyecto aunque elimines el trabajo asociado.LOCATION
: la ubicación en la que se ejecuta el trabajo. Si no especifica la ubicación, la CLI de gcloud usará la ubicación predeterminada. Si el trabajo que quieres editar se encuentra en otra ubicación, debes especificarla además delNAME
para que se pueda identificar. No puedes actualizar la ubicación del empleo.SCHEDULE
: frecuencia o intervalo de trabajo con el que se debe 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 cron de App Engine antigua sigue siendo compatible con los trabajos que ya existen.Para obtener más información, consulta Configurar programaciones de tareas cron.
URI
: el URI completo del endpoint con el que se pondrá en contacto el trabajo.
Otros parámetros se describen en la referencia de la línea de comandos 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 cuenta de servicio de la API de Google.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Haz los cambios siguientes:
JOB
: un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar el nombre de un trabajo en un proyecto aunque elimines el trabajo asociado.LOCATION
: la ubicación en la que se ejecuta el trabajo. Si no especifica la ubicación, la CLI de gcloud usará la ubicación predeterminada. Si el trabajo que quieres editar se encuentra en otra ubicación, debes especificarla además delNAME
para que se pueda identificar. No puedes actualizar la ubicación del empleo.SCHEDULE
: frecuencia o intervalo de trabajo con el que se debe ejecutar el trabajo. Por ejemplo,every 3 hours
. La cadena que proporciones aquí puede ser cualquier cadena compatible con cron de Unix. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine antigua sigue siendo compatible con los trabajos que ya existen.Para obtener más información, consulta Configurar programaciones de tareas cron.
TOPIC
: el nombre del tema en el que se publicará el trabajo. Usa la marca--message-body
o--message-body-from-file
para especificar un mensaje que se enviará al tema. Se envía como el parámetrodata
en el 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 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 aplicación de App Engine asociada al proyecto actual. Si quieres usar otra aplicación de App Engine que no esté en tu proyecto actual, elige HTTP
como destino, no App Engine HTTP
.
Los endpoints 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
Haz los cambios siguientes:
JOB
: un nombre de trabajo que debe ser único en el proyecto. Ten en cuenta que no puedes volver a usar el nombre de un trabajo en un proyecto aunque elimines el trabajo asociado.LOCATION
: la ubicación en la que se ejecuta el trabajo (es la misma que la de tu aplicación de App Engine de destino). Si no especifica la ubicación, la CLI de gcloud usará la ubicación predeterminada. Si el trabajo que quieres editar se encuentra en otra ubicación, debes especificarla además delNAME
para que se pueda identificar. No puedes actualizar la ubicación del empleo.SCHEDULE
: frecuencia o intervalo de trabajo con el que se debe ejecutar el trabajo. Por ejemplo,every 3 hours
. La cadena que proporciones aquí puede ser cualquier cadena compatible con cron de Unix. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine antigua sigue siendo compatible con los trabajos que ya existen.Para obtener más información, consulta Configurar programaciones de tareas cron.
Otros parámetros se describen en la referencia de la línea de comandos gcloud.
Ejemplo
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Pausar una tarea
Puedes pausar la ejecución de un trabajo.
Consola
En la Google Cloud consola, ve a Cloud Scheduler.
Selecciona la tarea que quieras pausar.
Haz clic en Pausar.
gcloud
Abre una ventana de terminal en el equipo en el que has instalado la CLI de gcloud.
Ejecuta el comando:
gcloud scheduler jobs pause MY_JOB
Sustituye
MY_JOB
por el nombre del trabajo que quieras pausar.
Mientras un trabajo está en pausa, también puedes editarlo. Después de editar el trabajo, permanecerá en pausa hasta que lo reanudes.
Reanudar una tarea
Puedes reanudar la ejecución de un trabajo en pausa.
Consola
En la Google Cloud consola, ve a Cloud Scheduler.
Selecciona el trabajo que quieras reanudar.
La tarea ya debe estar pausada.
Haz clic en Reanudar.
gcloud
Abre una ventana de terminal en el equipo en el que has instalado la CLI de gcloud.
Ejecuta el comando:
gcloud scheduler jobs resume MY_JOB
Sustituye
MY_JOB
por el nombre del trabajo que quieras reanudar.
Eliminar una tarea
Puedes eliminar un trabajo.
Consola
En la Google Cloud consola, ve a Cloud Scheduler.
Selecciona el trabajo que quieras eliminar.
Haz clic en Eliminar.
gcloud
Abre una ventana de terminal en el equipo en el que has instalado la CLI de gcloud.
Ejecuta el comando:
gcloud scheduler jobs delete MY_JOB
Sustituye
MY_JOB
por el nombre del trabajo que quieras eliminar.