Programar y ejecutar una tarea cron con gcloud CLI
En esta guía de inicio rápido se muestra cómo usar la CLI de gcloud para realizar algunas operaciones básicas con Cloud Scheduler.
En esta guía de inicio rápido, harás lo siguiente:
- Crea un tema de Pub/Sub para configurarlo como destino de tu trabajo de Cloud Scheduler.
- Crea una tarea cron con Cloud Scheduler y configura una programación periódica para la tarea.
- Ejecuta el trabajo.
- Comprueba que el trabajo se haya ejecutado correctamente.
Cloud Scheduler tiene un nivel gratuito y, por lo tanto, no deberías incurrir en ningún coste al completar esta guía de inicio rápido. Para obtener más información, consulta los precios.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler, Pub/Sub APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Scheduler, Pub/Sub APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable cloudscheduler.googleapis.com
pubsub.googleapis.com Configura un tema de Pub/Sub para usarlo como destino de tu trabajo cron:
gcloud pubsub topics create cron-topic
De esta forma, se crea un tema llamado
cron-topic
.Para recibir mensajes y ver los resultados de tu trabajo, crea una suscripción de Pub/Sub:
gcloud pubsub subscriptions create cron-sub --topic cron-topic
Para extraer mensajes de Pub/Sub de una suscripción, sigue estos pasos:
gcloud pubsub subscriptions pull cron-sub --limit 5
Si no se extraen mensajes al principio, vuelve a ejecutar el comando.
Consulta los resultados de la ejecución del trabajo. La salida debería ser similar a la siguiente:
DATA: Hello world! MESSAGE_ID: 5028933846601543 ORDERING_KEY: ATTRIBUTES: DELIVERY_ATTEMPT: ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
Elimina el trabajo cron. En Cloud Shell o en la máquina en la que hayas instalado gcloud CLI, ejecuta el siguiente comando:
gcloud scheduler jobs delete MY_JOB \ --location="LOCATION"
Haz los cambios siguientes:
MY_JOB
: el nombre del trabajo que se va a eliminar.LOCATION
: la ubicación del puesto. De forma predeterminada, usa la ubicación de la aplicación de App Engine del proyecto actual si hay una aplicación asociada.
Elimina el tema de Pub/Sub. En Cloud Shell o en el equipo en el que hayas instalado gcloud CLI, ejecuta el siguiente comando:
gcloud pubsub topics delete TOPIC_ID
Sustituye
TOPIC_ID
por el ID del tema de Pub/Sub que quieras eliminar.Elimina la suscripción de Pub/Sub. En Cloud Shell o en la máquina en la que hayas instalado gcloud CLI, ejecuta el siguiente comando:
gcloud pubsub subscriptions delete SUBSCRIPTION_ID
Sustituye
SUBSCRIPTION_ID
por el ID de la suscripción de Pub/Sub que quieras eliminar.
Crear un tema y una suscripción de Pub/Sub
Un tema de Pub/Sub es un recurso al que los editores pueden enviar mensajes. Para recibir mensajes publicados en un tema, debes crear una suscripción a ese tema.
Crear una tarea cron con Cloud Scheduler
Usa el comando gcloud scheduler jobs create pubsub
para configurar una unidad de trabajo conocida como tarea cron que se envía a un destino de Pub/Sub de forma periódica. La programación se especifica con un formato basado en cron para UNIX. Para obtener más información, consulta Formato de las tareas cron y zona horaria.
gcloud scheduler jobs create pubsub my-cron-job \
--schedule="30 16 * * 7" \
--topic=cron-topic \
--location="us-central1" \
--message-body="Hello world"
Has creado un trabajo que envía el mensaje "Hello world" a tu tema de Pub/Sub los domingos a las 16:30.
Ahora puedes ejecutar el trabajo.
Ejecutar una tarea
Además de ejecutarse según la programación especificada, puedes forzar que tu trabajo se ejecute inmediatamente:
gcloud scheduler jobs run my-cron-job --location="us-central1"
Ten en cuenta que, debido a la configuración inicial, la primera tarea creada en un proyecto puede tardar unos minutos en ejecutarse.
A continuación, puedes verificar que tu tema de Pub/Sub ha recibido el mensaje.
Verificar los resultados en Pub/Sub
Comprueba que tu tema de Pub/Sub recibe mensajes de tu trabajo.
Limpieza
Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
También puedes eliminar los recursos que has creado para esta guía de inicio rápido: