Programa un flujo de trabajo con Cloud Scheduler

En esta página, se muestra cómo usar Cloud Scheduler para ejecutar un flujo de trabajo en un horario en particular, como todos los lunes a las 9 a.m. o todos 15 minutos. Puedes configurar el programa en la consola de Google Cloud con Google Cloud CLI.

Antes de comenzar

  1. Si aún no tienes un flujo de trabajo que quieras programar, crear e implementar una.
  2. Enable the Cloud Scheduler API.

    Enable the API

  3. O bien, en una terminal, ingresa el siguiente comando:
    gcloud services enable cloudscheduler.googleapis.com

Programa un flujo de trabajo

  1. Crea una cuenta de servicio para que Cloud Scheduler pueda realizar solicitudes a la API de Workflows:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

    Reemplaza SERVICE_ACCOUNT_NAME por un nombre que tenga entre 6 y 30 caracteres. Puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.

  2. Para permitir la principal que ejecutará tu Cloud Scheduler comandos la capacidad de actuar como un servicio de Identity and Access Management (IAM) cuenta, otorgar un rol que permita a la principal actuar en nombre de la cuenta de servicio.

  3. Otorga a tu cuenta de servicio nueva el rol workflows.invoker para que tenga permiso para activar tu flujo de trabajo:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/workflows.invoker

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio que creaste anteriormente.
  4. Crear un trabajo de Cloud Scheduler que active tu flujo de trabajo usando el cuenta de servicio que creaste previamente para autenticar.

    Ten en cuenta que, si aplicas el registro de llamadas, debes configurarlo a través de la página Flujos de trabajo en la consola de Google Cloud. Para obtener más información, consulta los siguientes pasos.

    Console

    1. Para programar un flujo de trabajo, ve a la página Flujos de trabajo en la consola de Google Cloud:

      Ir a Workflows

    2. En la página Workflows, selecciona un flujo de trabajo para ir a su en la página de detalles.

    3. En la página Detalles del flujo de trabajo, haz clic en Editar.

    4. En la página Editar flujo de trabajo, selecciona Agregar activador nuevo >. Cloud Scheduler

      Se abrirá el panel Crear un trabajo de Scheduler.

    5. Define el programa:

      1. En el campo Nombre, ingresa un nombre para la tarea de Cloud Scheduler. Debe ser único en todos los trabajos de la misma región.

      2. En la lista Región, selecciona una opción region; por ejemplo, us-central1.

      3. En el campo Frecuencia, especifica el intervalo que defines. en formato unix-cron. Por ejemplo, para programar tu flujo de trabajo para que se ejecute cada 5 minutos, escribe */5 * * * *

      4. En la lista Zona horaria, selecciona la zona horaria. que Cloud Scheduler debe usar para interpretar el programa que proporcionan. Puedes buscar por país.

    6. Haga clic en Continuar.

    7. Configura la ejecución:

      1. En el campo Argumento del flujo de trabajo, especifica cualquier argumento del entorno de ejecución para pasar al flujo de trabajo antes de la ejecución. Los argumentos deben estar en JSON de un conjunto de datos tengan un formato común. Por ejemplo: {"firstName":"Sherlock", "lastName":"Holmes"}. Si tu flujo de trabajo no usa argumentos del entorno de ejecución, acepta el valor predeterminado de {} o deja el campo en blanco.

      2. En la lista Nivel de registro de llamadas del flujo de trabajo, selecciona el nivel de registro de llamadas que deseas aplicar durante la ejecución del flujo de trabajo.

        • No especificado: No se especifica ningún nivel de registro. Esta es la opción predeterminada. Un nivel de registro de ejecución tiene prioridad sobre cualquier nivel de registro de flujo de trabajo, a menos que no se especifique el nivel de registro de ejecución (predeterminado). En ese caso, se aplica el nivel de registro del flujo de trabajo.
        • Solo errores: Registra todas las excepciones detectadas, o cuando se detiene una llamada debido a una excepción.
        • Todas las llamadas: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.
        • Sin registros: Sin registro de llamadas.
      3. En la lista Cuenta de servicio, selecciona la cuenta de servicio que creaste antes.

    8. Haz clic en Crear.

      Ten en cuenta que, si estás actualizando un flujo de trabajo existente, no es necesario volver a implementar el flujo de trabajo.

      El trabajo de Cloud Scheduler ahora aparece en la pestaña Activadores de la página Detalles del flujo de trabajo.

    9. Si quieres actualizar o borrar el trabajo, debes editar el flujo de trabajo:

      1. En la página Detalles del flujo de trabajo, haz clic en Editar.
      2. En la sección Activadores, busca el trabajo que deseas actualizar o borrar.
      3. Haz clic en Editar recurso o Borrar recurso.

    gcloud

    1. Abre una terminal y escribe el siguiente comando:

      gcloud scheduler jobs create http JOB_NAME \
          --schedule="FREQUENCY" \
          --uri="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \
          --message-body="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \
          --time-zone="TIME_ZONE" \
          --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

      Reemplaza lo siguiente:

      • JOB_NAME: Es el nombre que le asignas a tu trabajo de Cloud Scheduler.
      • FREQUENCY: Es un intervalo de tiempo que defines con un formato unix-cron. Por ejemplo, para programar tu flujo de trabajo para que se ejecute cada 5 minutos, escribe */5 * * * *.
      • PROJECT_ID: El ID del proyecto de Google Cloud.
      • REGION_NAME: Es la región en la que se encuentra tu flujo de trabajo, como us-central1
      • WORKFLOW_NAME: Es el nombre del flujo de trabajo que deseas. el cronograma de ejecución.
      • DOUBLE_ESCAPED_JSON_STRING: Es una codificación JSON de los argumentos que pasas. Las comillas dobles dentro de la cadena entrecomillada son escapada con barras inversas (\). Por ejemplo: --message-body="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
      • TIME_ZONE: el zona horaria que Cloud Scheduler debe usar para interpretar el programa que proporcionan. Por ejemplo: America/New_York.
      • SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio que creaste anteriormente.
    2. Para enumerar todos los trabajos de un proyecto, sigue estos pasos:

      gcloud scheduler jobs list

    3. Para borrar un trabajo, sigue estos pasos:

      gcloud scheduler jobs delete JOB_NAME

Ahora, tu flujo de trabajo se ejecuta según la frecuencia que definiste.

¿Qué sigue?