Crea y administra flujos de trabajo

En esta página, se muestra cómo crear y administrar flujos de trabajo en la consola de Google Cloud o mediante Google Cloud CLI en tu terminal o Cloud Shell. También puedes administrar flujos de trabajo a través de la API de Workflows.

Antes de comenzar

Es posible que las restricciones de seguridad definidas por tu organización te impidan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno de Google Cloud restringido.

Consola

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  3. Habilita la API de Workflows.

    Habilita la API

gcloud

  1. En la consola de Google Cloud, activa Cloud Shell.

    Activar Cloud Shell

    En la parte inferior de la consola de Google Cloud, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  3. Habilita la API de Workflows.

    gcloud services enable workflows.googleapis.com
    

API

Para administrar flujos de trabajo con la API de Workflows, te recomendamos que uses las bibliotecas cliente que proporciona Google para llamar al servicio workflows.googleapis.com. Para obtener más información, consulta la API de Workflows.

Crea una cuenta de servicio

Workflows usa cuentas de servicio para otorgar a los flujos de trabajo acceso a los recursos de Google Cloud. Crea una cuenta de servicio si aún no tienes una y, luego, otórgale las funciones necesarias para administrar flujos de trabajo y crear registros. Si no especificas una cuenta de servicio durante la creación del flujo de trabajo, el flujo de trabajo usará la cuenta de servicio predeterminada de Compute Engine para su identidad. Obtén más información sobre cómo implementar un flujo de trabajo con una cuenta de servicio.

Ten en cuenta que, si quieres crear un recurso y conectar una cuenta de servicio, necesitas permisos para crear ese recurso y actuar en nombre de la cuenta de servicio que conectarás al recurso. Para obtener más información, consulta Permisos de la cuenta de servicio.

Consola

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Selecciona un proyecto y haz clic en Crear cuenta de servicio.

  3. Ingresa un nombre en el campo Nombre de cuenta de servicio.

    El nombre debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.

  4. Haz clic en Crear y continuar.

  5. Haga clic en Selecciona un rol.

  6. Selecciona los siguientes roles y haz clic en Agregar otro rol según sea necesario:

    • Para crear, actualizar y ejecutar flujos de trabajo, selecciona Flujos de trabajo > Editor de flujos de trabajo.
    • Para enviar registros a Cloud Logging, selecciona Logging > Escritor de registros.
  7. Haz clic en Listo para terminar de crear la cuenta de servicio.

gcloud

  1. Cree la cuenta de servicio.

    gcloud iam service-accounts create NAME
  2. Otorga permisos a la cuenta de servicio mediante la asignación de un rol.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"
    

    Reemplaza lo siguiente:

    • NAME: Es el nombre de la cuenta de servicio. Debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no puedes cambiar su nombre.
    • PROJECT_ID: Es el ID de tu proyecto.

    La marca --role se usa para autorizar que tu cuenta de servicio acceda a los recursos.

Crea un flujo de trabajo

La definición de un flujo de trabajo está compuesta por una serie de pasos descritos con la sintaxis de Workflows, que se pueden escribir en formato YAML o JSON. Después de crear un flujo de trabajo, debes implementarlo a fin de que esté disponible para su ejecución. El paso de implementación también valida que se pueda ejecutar el archivo de origen. Falla si el archivo de origen no contiene una definición de flujo de trabajo válida.

La edición de archivos YAML puede ser propensa a errores. Puedes crear tu flujo de trabajo con un IDE o editor de código fuente preferido y configurar el autocompletado y la validación de sintaxis para reducir los errores.

Consola

  1. En la consola de Google Cloud, ve a la página Workflows.

    Ir a Workflows

  2. Haz clic en  Crear.

  3. Ingresa un nombre para el flujo de trabajo nuevo, como myFirstWorkflow. El nombre puede contener letras, números, guiones bajos y guiones. Debe comenzar con una letra y terminar con una letra o un número

  4. En la lista Región, selecciona una región adecuada, por ejemplo, us-central1.

  5. En la lista Cuenta de servicio, selecciona una cuenta de servicio para que tu flujo de trabajo la use en la autenticación con otros servicios de Google Cloud. Recomendamos usar una cuenta de servicio con los privilegios mínimos necesarios para acceder a los recursos requeridos. Para obtener más información, consulta Crea una cuenta de servicio en este documento.

    Recomendamos usar una cuenta de servicio con los privilegios mínimos necesarios para acceder a los recursos requeridos.

  6. De forma opcional, puedes hacer lo siguiente:

    1. Especifica el nivel de registro de llamadas que deseas aplicar a la definición del flujo de trabajo. En la lista Nivel de registro de llamadas, selecciona una de las siguientes opciones:

      • 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.
    2. Especifica una variable de entorno a la que pueda acceder el flujo de trabajo en el entorno de ejecución. Para obtener más información, consulta Usa variables de entorno.

    3. Especifica una clave de Cloud Key Management Service que el flujo de trabajo debería usar para la encriptación de datos: selecciona Clave de encriptación administrada por el cliente (CMEK). Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.

    4. Agrega una etiqueta: Las etiquetas son pares clave-valor que te ayudan a organizar tus instancias de Google Cloud. Si deseas obtener más información, consulta Crea y administra etiquetas.

    5. Programa tu flujo de trabajo: Selecciona Agregar activador nuevo > Cloud Scheduler. Para obtener más información, consulta Programa un flujo de trabajo con Cloud Scheduler.

    6. Activa el flujo de trabajo a través de un evento o mensaje de Pub/Sub: Selecciona Agregar activador nuevo > Eventarc. Para obtener más información, consulta Activa un flujo de trabajo con eventos o mensajes de Pub/Sub.

  7. Haz clic en Siguiente.

  8. En el editor de flujos de trabajo, ingresa la definición para el flujo de trabajo. Consulta un flujo de trabajo de ejemplo.

  9. Haz clic en Implementar.

gcloud

  1. Asegúrate de que el código fuente de tu flujo de trabajo se guarde en un archivo YAML o JSON, como MY_WORKFLOW.YAML o MY_WORKFLOW.JSON. Consulta un flujo de trabajo de ejemplo.

  2. Abre una terminal.

  3. Para implementar el flujo de trabajo, ingresa el siguiente comando:

    gcloud workflows deploy MY_WORKFLOW \
        --source=YAML_OR_JSON_SOURCE_FILE \
        --call-log-level=CALL_LOGGING_LEVEL \
        --set-env-vars=KEY1=VALUE1 \
        --kms-key=KEY \
        --service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM
    

    Reemplaza lo siguiente:

    • MY_WORKFLOW: El nombre de tu flujo de trabajo.

    • YAML_OR_JSON_SOURCE_FILE: El archivo de origen que se usará para el flujo de trabajo. Por ejemplo: myFirstWorkflow.yaml.

    • CALL_LOGGING_LEVEL: Es opcional. Nivel del registro de llamadas que se aplicará durante la ejecución. Puede ser una de las siguientes opciones:

      • none: 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.
      • log-errors-only: Registra todas las excepciones detectadas; o cuando se detiene una llamada debido a una excepción.
      • log-all-calls: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.
      • log-none: Sin registro de llamadas.
    • KEY1=VALUE1: Es opcional. Un nombre de variable de entorno y su valor por ejemplo, MONTH=January. Para obtener más información, consulta Usa variables de entorno.

    • KEY: Es opcional. Una clave de Cloud KMS que el flujo de trabajo debe usar para la encriptación de datos en el formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: Opcional. La cuenta de servicio que usará el flujo de trabajo para acceder a otros servicios de Google Cloud. Recomendamos usar una cuenta de servicio con los privilegios mínimos necesarios para acceder a los recursos requeridos. Si se deja en blanco, se usa la cuenta de servicio predeterminada. Para obtener más información, consulta Crea una cuenta de servicio en este documento.

API

Llama al método projects.locations.workflows.create y usa el parámetro workflowId a fin de especificar un ID para el flujo de trabajo.

Enumerar flujos de trabajo

Puedes enumerar flujos de trabajo o usar filtros para recuperar un flujo de trabajo específico.

Consola

  1. En la consola de Google Cloud, ve a la página Flujos de trabajo.

    Ir a Workflows

    En esta página, se enumeran los flujos de trabajo en todas las ubicaciones y se incluyen detalles como nombres, regiones, revisiones más recientes y mucho más.

  2. Para filtrar tus flujos de trabajo, haz lo siguiente:

    1. Haz clic en Filtrar o en el campo Filtrar flujos de trabajo.
    2. En la lista Propiedades, selecciona una opción para filtrar los flujos de trabajo.

    Puedes seleccionar una sola propiedad o usar el operador lógico OR para agregar más propiedades.

  3. Para ordenar tus flujos de trabajo, junto a cualquier encabezado de columna compatible, haz clic en Ordenar.

gcloud

Enumera los flujos de trabajo con el comando gcloud workflows list:

gcloud workflows list --location=WORKFLOW_NAME

Reemplaza LOCATION por el ID o el identificador completamente calificado para la ubicación de tus flujos de trabajo.

Este comando enumera los flujos de trabajo en la ubicación especificada y, además, incluye detalles como NAME, STATE, REVISION_ID y UPDATE_TIME de un flujo de trabajo.

API

Llama al método projects.locations.workflows.list para enumerar flujos de trabajo en un proyecto y una ubicación determinados. También puedes llamar al método projects.locations.workflows.get para recuperar los detalles de un solo flujo de trabajo.

Actualizar un flujo de trabajo

Puedes actualizar un flujo de trabajo existente para cambiar su fuente, descripción, etiquetas, variables de entorno, activadores, clave de encriptación o su cuenta de servicio asociada. La actualización de un flujo de trabajo no afecta las ejecuciones en curso. Solo las ejecuciones futuras del flujo de trabajo usarán la configuración actualizada.

Consola

  1. En la consola de Google Cloud, ve a la página Flujos de trabajo.

    Ir a Workflows

  2. Haz clic en el nombre del flujo de trabajo que deseas actualizar. Ten en cuenta que no puedes cambiar el nombre del flujo de trabajo.

    Aparecerá la página Detalles del flujo de trabajo.

  3. Puedes editar el flujo de trabajo de las siguientes maneras:

    • Para editar la fuente, haz lo siguiente:

      1. Haz clic en la pestaña Fuente.
      2. Haz clic en Editar.
      3. Para guardar los cambios, haz clic en Guardar. Se implementa el flujo de trabajo actualizado.
    • Para actualizar la descripción, la cuenta de servicio que usa el flujo de trabajo para la autenticación, el nivel de registro de llamadas, las variables de entorno, las etiquetas o la clave de encriptación:

      1. Haga clic en la pestaña Detalles.
      2. Haz clic en el ícono adecuado.
      3. Si quieres actualizar el nivel de registro de llamadas, selecciona una de las siguientes opciones:
        • 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.
      4. Para guardar los cambios, haz clic en Guardar. Se implementa el flujo de trabajo actualizado.
    • Para editar los campos anteriores al mismo tiempo o agregar o actualizar un activador, haz lo siguiente:

      1. Haz clic en Editar.
      2. Para editar la fuente, haz clic en Siguiente.
      3. Para guardar los cambios y, luego, implementar el flujo de trabajo actualizado, haz clic en Implementar.
  4. Si deseas actualizar las funciones de tu cuenta de servicio, haz clic en la pestaña Permisos.

    1. Las principales son usuarios, grupos, dominios o cuentas de servicio. Para actualizar una principal existente, sigue estos pasos:

      1. Busca una fila que contenga la principal.
      2. Haz clic en Editar principal en esa fila.
      3. Haz clic en Agregar otra función o en Borrar función.
    2. Si quieres agregar una función, en la lista Selecciona una función, elige una función adecuada.

    3. Para agregar otro rol, haz clic en Agregar otro rol.

    4. Haz clic en Guardar.

gcloud

  1. Abre una terminal.

  2. Busca el nombre del flujo de trabajo que deseas actualizar. Si no conoces el nombre del flujo de trabajo, puedes ingresar el siguiente comando para enumerar todos los flujos:

    gcloud workflows list
    
  3. Ubica el archivo YAML o JSON en el que se guarda la fuente de tu flujo de trabajo, como WORKFLOW_NAME.YAML o WORKFLOW_NAME.JSON.

  4. Puedes actualizar la fuente, la cuenta de servicio asociada, la descripción, el nivel de registro de llamadas, las variables de entorno, las etiquetas o la clave de encriptación de un flujo de trabajo con el comando gcloud workflows deploy.

    Debes especificar el nombre del flujo de trabajo que deseas actualizar y su fuente. Sin embargo, el resto de las marcas son opcionales. Para quitar una clave de encriptación administrada por el cliente, usa la marca --clear-kms-key.

    gcloud workflows deploy WORKFLOW_NAME \
        --source=YAML_OR_JSON_SOURCE_FILE \
        --service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM \
        --call-log-level=CALL_LOG_LEVEL \
        --update-env-vars KEY1=VALUE1 \
        --labels=KEY=VALUE... \
        --description='WORKFLOW_DESCRIPTION'
    

    Reemplaza lo siguiente:

    • WORKFLOW_NAME: obligatorio. El nombre de tu flujo de trabajo.

    • YAML_OR_JSON_SOURCE_FILE: obligatorio. El archivo de origen para el flujo de trabajo en formato YAML o JSON. Por ejemplo: myFirstWorkflow.yaml

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM: Opcional. La cuenta de servicio que usará el flujo de trabajo para acceder a otros servicios de Google Cloud. Si deseas actualizar las funciones de tu cuenta de servicio, consulta Otorga permiso a un flujo de trabajo para acceder a los recursos de Google Cloud y Administra el acceso a proyectos, carpetas y organizaciones.

    • CALL_LOG_LEVEL: es opcional. El nivel de registro de llamadas que se aplicará al flujo de trabajo. Debe ser uno de los siguientes:

      • none: 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.
      • log-errors-only: Registra todas las excepciones detectadas; o cuando se detiene una llamada debido a una excepción.
      • log-all-calls: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.
      • log-none: Sin registro de llamadas.
    • KEY1=VALUE1: Es opcional. Un nombre de variable de entorno y su valor por ejemplo, MONTH=January. Para obtener más información, consulta Usa variables de entorno.

    • KEY=VALUE: es opcional. KEY=VALUE pares de etiquetas, en una lista separada por comas, si agregas más de uno. Las etiquetas te ayudan a organizar tus instancias de Google Cloud. Para obtener más información, consulta Cómo crear y administrar etiquetas.

    • WORKFLOW_DESCRIPTION: es opcional. La descripción que deseas dar a tu flujo de trabajo.

API

Llama al método projects.locations.workflows.patch para actualizar un flujo de trabajo existente.

Cada vez que actualizas un flujo de trabajo, se actualiza su versionID. versionID consta de dos partes, separadas por un guion:

  • Un número, a partir del uno, que aumenta cada vez que actualizas un flujo de trabajo.

  • Una cadena alfanumérica aleatoria de tres caracteres.

Por ejemplo, 000002-d52 indica un flujo de trabajo que se actualizó una vez. 000001-27f indica un flujo de trabajo que está en su versión inicial.

Borrar un flujo de trabajo

Puedes borrar un flujo de trabajo existente. Si borras un flujo de trabajo, también se borran sus ejecuciones y se cancelan todas las ejecuciones activas de este.

Consola

  1. En la consola de Google Cloud, ve a la página Workflows.

    Ir a Workflows

  2. Haz clic en el nombre del flujo de trabajo que deseas borrar y, luego, en Borrar.

  3. Cuando se te solicite confirmar la eliminación, ingresa el nombre del flujo de trabajo.

  4. Haz clic en Confirmar.

gcloud

  1. Abre una terminal.

  2. Busca el nombre del flujo de trabajo que deseas borrar. Si no conoces el nombre del flujo de trabajo, puedes ingresar el siguiente comando para enumerar todos los flujos:

    gcloud workflows list
    
  3. Borra un flujo de trabajo con el comando gcloud workflows delete:

    gcloud workflows delete WORKFLOW_NAME
    

    Reemplaza WORKFLOW_NAME por el nombre de tu flujo de trabajo.

API

Llama al método projects.locations.workflows.delete para borrar un flujo de trabajo con un nombre específico.

¿Qué sigue?