Destino de Pub/Sub
Si eliges el tipo de orientación de 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. Esto se envía como el parámetro
data
dentro del mensaje de Pub/Sub. Para ver un ejemplo que haga esto, 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 API de Google.
Objetivo 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 asociada con el proyecto actual. Si deseas usar otra aplicación de App Engine fuera del proyecto actual, elige HTTP como destino, no HTTP de App Engine.Configura el formulario como se indica a continuación:
En la lista Tipo de destino, selecciona App Engine HTTP.
Especifica el nombre del servicio de App Engine que ejecuta el controlador para el trabajo de Cloud Scheduler. Si se omite, se asume el servicio
default
. Si deseas configurarla, puedes encontrar los nombres del servicio en Google Cloud Console.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 Google Cloud Console.
De manera opcional, especifica la instancia. Si no se establece, se puede usar cualquier instancia disponible. Puedes encontrar las versiones disponibles en Google Cloud Console.
Especifica la URL relativa del extremo de App Engine con el que se contactará el trabajo. Si usas el valor predeterminado
/
, el trabajo usaráPROJECT-ID.appspot.com
, en el quePROJECT-ID
es 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
POST
oPUT
.
Los extremos de App Engine orientados 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 objetivo 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
.De manera 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
POST
oPUT
.Agrega los encabezados que necesites.
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 los objetivos en algún programa recurrente, también llamado intervalo o frecuencia de trabajo.
Solo se debe ejecutar una instancia de trabajo a la vez. En circunstancias excepcionales, es posible que se soliciten varias instancias del mismo trabajo. Como resultado, el controlador de solicitudes debe ser idempotente, y tu código debe garantizar que no haya efectos secundarios dañinos si esto ocurre.
Cloud Scheduler está diseñado para trabajos repetidos. 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.
Crea un trabajo
Puedes crear un trabajo con Google Cloud Console o Google Cloud CLI.
Console
En Google Cloud Console, ve a Cloud Scheduler.
Haz clic en Create job.
En el campo Nombre, proporciona un nombre para el trabajo que sea único del proyecto.
Después de borrar el trabajo asociado, puedes 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 app de App Engine. Para obtener más información, consulta Regiones compatibles por destino.
De forma opcional, proporciona una breve descripción del trabajo, como un recordatorio de lo que este hace.
Esta descripción aparece en la consola junto al nombre del trabajo.
Especifica la frecuencia a la que se ejecutará el trabajo mediante una string de configuración.
Por ejemplo, la string
0 1 * * 0
ejecuta el trabajo una vez por semana a la 1 a.m. todos los domingos por la mañana. La string que proporcionas puede ser cualquier string compatible con unix-cron. Para obtener más información, consulta Configura programas de trabajos cron.En la lista Zona horaria, elige la zona horaria que se usará para la programación del trabajo.
Haga clic en Continuar.
Especifica el Tipo de destino:
HTTP: el extremo HTTP de destino debe ser de acceso público.
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 aplicación de App Engine y la región asociada con el proyecto actual.
Haga clic en Continuar.
De manera opcional, para configurar cualquier comportamiento de reintento, haz clic en Configurar opciones 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 duration
solo admite valoresh
,m
ys
. TantoMin backoff duration
comoMax backoff duration
admiten el conjunto completo.De manera opcional, para los objetivos HTTP y App Engine HTTP, configura un plazo para los intentos de trabajo. Si el controlador de solicitudes no responde dentro de este plazo, la solicitud se cancela y el intento se marca como con errores. Cloud Scheduler vuelve a intentar el trabajo según la configuración de reintentos.
Para crear y guardar el trabajo, haz clic en Crear.
Ahora, el trabajo se ejecutará con la frecuencia especificada.
gcloud
Cuando creas un trabajo con la CLI de gcloud, usas comandos diferentes 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 el nombre de un trabajo en un proyecto, incluso si borras su trabajo asociado.LOCATION
: Debe ser la misma ubicación que tu aplicación de App Engine.SCHEDULE
: Es la frecuencia o el intervalo de trabajo en el que se ejecuta el trabajo, por ejemplo,every 3 hours
. La string que proporcionas puede ser cualquier string compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine aún es compatible con los trabajos existentes.Para obtener más información, consulta Configura programas de trabajos cron.
URI
: Es el URI completamente calificado del extremo con el que se contactará el trabajo.
Otros parámetros se describen en la referencia de línea de comandos de gcloud:
De forma opcional, especifica el método HTTP. El valor predeterminado es
POST
.De manera 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
POST
oPUT
.De manera opcional, configura 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 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 el nombre de un trabajo en un proyecto, incluso si borras su trabajo asociado.LOCATION
: Debe ser la misma ubicación que tu aplicación de App Engine.SCHEDULE
: Es la frecuencia o el intervalo de trabajo en el que se ejecuta el trabajo, por ejemplo,every 3 hours
. La string que proporcionas puede ser cualquier string compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine aún es compatible con los trabajos existentes.Para obtener más información, consulta Configura programas de trabajos cron.
TOPIC
: Es el nombre del tema en el que se publicará el trabajo. Usa las marcas--message-body
o--message-body-from-file
para especificar el mensaje que se enviará al tema. Esto se envía como el parámetrodata
dentro del mensaje de Pub/Sub. Para ver un ejemplo que haga esto, consulta la guía de inicio rápido.
Otros parámetros se describen en la referencia de 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 aplicación de App Engine asociada con el proyecto actual. Si quieres usar otra aplicación de App Engine fuera del 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 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 el nombre de un trabajo en un proyecto, incluso si borras su trabajo asociado.LOCATION
: Debe ser la misma ubicación que tu aplicación de App Engine.SCHEDULE
: Es la frecuencia o el intervalo de trabajo en el que se ejecuta el trabajo, por ejemplo,every 3 hours
. La string que proporcionas aquí puede ser cualquier string compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine aún es compatible con los trabajos existentes.Para obtener más información, consulta Configura programas de trabajos cron.
Otros parámetros se describen en la referencia de línea de comandos de gcloud:
Especifica la URL relativa del extremo de App Engine con el que se contactará el trabajo. Si usas el valor predeterminado
/
, el trabajo usaráPROJECT-ID.appspot.com
, en el quePROJECT-ID
es el ID del proyecto actual.Especifica el nombre del servicio de App Engine que ejecuta el controlador para el trabajo de Cloud Scheduler. Si se omite, se asume el servicio
default
. Si deseas configurarla, puedes encontrar los nombres de los servicios en Google Cloud Console.De forma opcional, configura el método HTTP que desees usar cuando se ejecute el trabajo. El valor predeterminado es
POST
.De manera opcional, especifica la versión. Si no se establece, se usa la versión actual. Puedes encontrar las versiones disponibles en Google Cloud Console.
De manera opcional, especifica la instancia. Si no se establece, se puede usar cualquier instancia disponible. Puedes encontrar las versiones disponibles en Google Cloud Console.
De manera 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
POST
oPUT
.De manera opcional, configura 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 Google Cloud Console, ve a Cloud Scheduler.
Selecciona el trabajo que deseas editar.
Haga clic en Editar.
Sigue los pasos para definir la programación, la ejecución y los ajustes opcionales cuando crees un trabajo.
gcloud
Cuando editas un trabajo con la CLI de gcloud, usas comandos diferentes 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 el nombre de un trabajo en un proyecto, incluso si borras su trabajo asociado.LOCATION
: Debe ser la misma ubicación que tu aplicación de App Engine.SCHEDULE
: Es la frecuencia o el intervalo de trabajo en el que se ejecuta el trabajo, por ejemplo,every 3 hours
. La string que proporcionas puede ser cualquier string compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine aún es compatible con los trabajos existentes.Para obtener más información, consulta Configura programas de trabajos cron.
URI
: Es el URI completamente calificado del extremo con el que se contactará el trabajo.
Otros parámetros se describen en la referencia de 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 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 el nombre de un trabajo en un proyecto, incluso si borras su trabajo asociado.LOCATION
: Debe ser la misma ubicación que tu aplicación de App Engine.SCHEDULE
: Es la frecuencia o el intervalo de trabajo en el que se ejecuta el trabajo, por ejemplo,every 3 hours
. La string que proporcionas aquí puede ser cualquier string compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine aún es compatible con los trabajos existentes.Para obtener más información, consulta Configura programas de trabajos cron.
TOPIC
: Es el nombre del tema en el que se publicará el trabajo. Usa las marcas--message-body
o--message-body-from-file
para especificar el mensaje que se enviará al tema. Esto se envía como el parámetrodata
dentro del mensaje de Pub/Sub. Para ver un ejemplo que haga esto, consulta la guía de inicio rápido.
Otros parámetros se describen en la referencia de 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 aplicación de App Engine asociada con el proyecto actual. Si quieres usar otra aplicación de App Engine fuera del 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 el nombre de un trabajo en un proyecto, incluso si borras su trabajo asociado.LOCATION
: Debe ser la misma ubicación que tu aplicación de App Engine.SCHEDULE
: Es la frecuencia o el intervalo de trabajo en el que se ejecuta el trabajo, por ejemplo,every 3 hours
. La string que proporcionas aquí puede ser cualquier string compatible con unix-cron. Aunque ya no recomendamos su uso, la sintaxis cron de App Engine aún es compatible con los trabajos existentes.Para obtener más información, consulta Configura programas de trabajos cron.
Otros parámetros se describen en la referencia de línea de comandos de gcloud.
Ejemplo
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Detener un trabajo
Puedes pausar la ejecución de un trabajo.
Console
En Google Cloud Console, ve a Cloud Scheduler.
Selecciona el trabajo que deseas detener.
Haga clic en Detener.
gcloud
Abre una ventana de la terminal en la máquina en la que instalaste la CLI de gcloud.
Ejecuta este comando:
gcloud scheduler jobs pause MY_JOB
Reemplaza
MY_JOB
por el nombre del trabajo que deseas pausar.
Mientras un trabajo está en pausa, también puede editarlo. Después de editar el trabajo, este permanece detenido hasta que lo reanudes.
Reanuda un trabajo
Puedes reanudar la ejecución de un trabajo detenido.
Console
En Google Cloud Console, ve a Cloud Scheduler.
Selecciona el trabajo que deseas reanudar.
El trabajo ya debe estar en pausa.
Haz clic en Reanudar.
gcloud
Abre una ventana de la terminal en la máquina en la que instalaste la CLI de gcloud.
Ejecuta este comando:
gcloud scheduler jobs resume MY_JOB
Reemplaza
MY_JOB
por el nombre del trabajo que se reanudará.
Borra un trabajo
Puedes borrar un trabajo.
Console
En Google Cloud Console, ve a Cloud Scheduler.
Selecciona el trabajo que deseas borrar.
Haz clic en Borrar.
gcloud
Abre una ventana de la terminal en la máquina en la que instalaste la CLI de gcloud.
Ejecuta este comando:
gcloud scheduler jobs delete MY_JOB
Reemplaza
MY_JOB
por el nombre del trabajo que se borrará.