Programa y ejecuta un trabajo cron con la gcloud CLI

En esta guía de inicio rápido, se muestra cómo usar gcloud CLI para realizar algunas operaciones básicas con Cloud Scheduler.

En esta guía de inicio rápido, podrás hacer lo siguiente:

  1. Crear un tema de Pub/Sub para configurarlo como destino de tu trabajo de Cloud Scheduler
  2. Crear un trabajo cron con Cloud Scheduler y configurar un programa recurrente para el trabajo
  3. Ejecutar tu trabajo
  4. Verificar si el trabajo se ejecutó de forma correcta

Cloud Scheduler cuenta con un nivel gratuito, por lo que ejecutar esta guía de inicio rápido no debería generar ningún costo. Para obtener más información, consulta Precios.

Antes de comenzar

  1. Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.
    • Para crear un Google Cloud proyecto de, haz lo siguiente:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  6. Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.

  7. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  8. Habilita las APIs de Cloud Scheduler y Pub/Sub:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén más información para otorgar roles.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com
  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.
    • Para crear un Google Cloud proyecto de, haz lo siguiente:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  13. Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.

  14. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  15. Habilita las APIs de Cloud Scheduler y Pub/Sub:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén más información para otorgar roles.

    gcloud services enable cloudscheduler.googleapis.com pubsub.googleapis.com

Roles obligatorios

Si quieres obtener los permisos que necesitas para completar esta guía de inicio rápido, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Crear un tema de Pub/Sub y una suscripción

Un tema de Pub/Sub es un recurso al que los publicadores pueden enviar mensajes. Para recibir mensajes publicados en un tema, debes crear una suscripción a ese tema.

  1. Configura un tema de Pub/Sub para usar como destino de tu trabajo cron:

    gcloud pubsub topics create cron-topic
    

    Esto crea un tema llamado cron-topic.

  2. Para recibir mensajes y ver los resultados de tu trabajo, crea una suscripción a Pub/Sub:

    gcloud pubsub subscriptions create cron-sub --topic cron-topic
    

Crea un trabajo cron con Cloud Scheduler

Usa el gcloud scheduler jobs create pubsub comando para configurar una unidad de trabajo conocida como trabajo cron que se envía a un destino de Pub/Sub en un programa recurrente. El programa se especifica con un formato basado en unix-cron. Para obtener más información, consulta Formato y zona horaria de trabajos cron.

gcloud scheduler jobs create pubsub my-cron-job \
    --schedule="30 16 * * 7" \
    --topic=cron-topic \
    --location="us-east1" \
    --message-body="Hello world"

Creaste un trabajo que envía un mensaje "Hello world" a tu tema de Pub/Sub a las 16:30 los domingos.

Ahora puedes ejecutar el trabajo.

Ejecuta tu trabajo

Además de ejecutarse según su programa especificado, puedes forzar la ejecución inmediata de tu trabajo:

gcloud scheduler jobs run my-cron-job --location="us-east1"

Ten en cuenta que, debido a la configuración inicial, el primer trabajo creado en un proyecto puede tardar unos minutos en ejecutarse.

A continuación, puedes verificar que tu tema de Pub/Sub recibió el mensaje.

Verifica los resultados en Pub/Sub

Verifica que tu tema de Pub/Sub esté recibiendo los mensajes de tu trabajo.

  1. Extraer mensajes de Pub/Sub de una suscripción:

    gcloud pubsub subscriptions pull cron-sub --limit 5
    

    Si no se muestran mensajes inicialmente, vuelve a ejecutar el comando.

  2. Consulta los resultados de la ejecución de tu trabajo. El resultado debería ser similar al siguiente:

    DATA: Hello world!
    MESSAGE_ID: 5028933846601543
    ORDERING_KEY:
    ATTRIBUTES:
    DELIVERY_ATTEMPT:
    ACK_ID: RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQAgVPAihdeTFXLkFacGhRDRlyfWB9[...]
    

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página, borra el Google Cloud proyecto de que tiene los recursos.

    Para borrar un Google Cloud proyecto de, haz lo siguiente:

    gcloud projects delete PROJECT_ID

Como alternativa, borra los recursos que creaste para esta guía de inicio rápido:

  1. Borra el trabajo cron. En Cloud Shell o en la máquina en la que instalaste gcloud CLI, ejecuta el siguiente comando:

    gcloud scheduler jobs delete MY_JOB \
        --location="LOCATION"
    

    Reemplaza lo siguiente:

    • MY_JOB: Es el nombre del trabajo que se borrará.
    • LOCATION: Es la ubicación del trabajo. De forma predeterminada, usa la ubicación de la aplicación de App Engine del proyecto actual si hay una aplicación asociada.
  2. Borra el tema de Pub/Sub. En Cloud Shell o en la máquina en la que instalaste la gcloud CLI, ejecuta el siguiente comando:

    gcloud pubsub topics delete TOPIC_ID
    

    Reemplaza TOPIC_ID por el ID del tema de Pub/Sub que se borrará.

  3. Borra la suscripción a Pub/Sub. En Cloud Shell o en la máquina en la que instalaste la gcloud CLI, ejecuta el siguiente comando:

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    

    Reemplaza SUBSCRIPTION_ID por el ID de la suscripción a Pub/Sub que se borrará.

¿Qué sigue?