Información general de Workflows

Workflows es una plataforma de orquestación totalmente gestionada que ejecuta servicios en el orden que definas: un flujo de trabajo. Estos flujos de trabajo pueden combinar servicios, incluidos servicios personalizados alojados en Cloud Run o funciones de Cloud Run, Google Cloud servicios como Cloud Vision AI y BigQuery, y cualquier API basada en HTTP.

Al incorporar Workflows en las soluciones, puedes hacer que las dependencias de los servicios sean explícitas y observables de principio a fin. Un flujo de trabajo que especifica una aplicación, un proceso operativo o un proceso empresarial proporciona una fuente de información veraz o una descripción canónica del proceso.

Workflows no utiliza servidores, se escala verticalmente según sea necesario y no se aplican cargos cuando está inactivo. Como un flujo de trabajo no contiene dependencias de código ni de biblioteca, no requiere parches de seguridad. Una vez que hayas implementado un flujo de trabajo, puedes esperar que se ejecute de forma fiable sin necesidad de mantenimiento. Un flujo de trabajo puede mantener el estado, reintentar, sondear o esperar hasta un año.

Workflows cumple los siguientes estándares y certificaciones.

En el siguiente diagrama se muestra un ejemplo de uso de Workflows para orquestar servicios:

Orquestación de servicios con Workflows

Casos prácticos clave

Los flujos de trabajo admiten muchos casos prácticos. Algunos ejemplos:

Orquestación de servicios Crea soluciones combinando servicios: realiza una secuencia de operaciones en varios sistemas y espera a que se completen todas las operaciones. Puede estar basado en eventos. Por ejemplo:
  • Enviar archivos recién subidos a Cloud Vision AI y, a continuación, escribir etiquetas en Firestore
  • Llamar a una función de Cloud Run y enviar los resultados a un servicio de Cloud Run
Trabajos por lotes Operar con varios elementos: realiza operaciones en un conjunto de elementos o datos por lotes. Se programa con frecuencia. Por ejemplo:
  • Enviar correos diarios a los clientes
  • Preparar y ejecutar tareas de BigQuery o de aprendizaje automático
  • Generar informes
Procesos empresariales Automatizar flujos de trabajo de líneas de negocio: codifica los pasos de un proceso empresarial, incluidas las condiciones, las acciones y los eventos de intervención humana. Por ejemplo:
  • Seguir un pedido desde la solicitud hasta la tramitación
  • Automatizar las solicitudes de recursos con aprobaciones
Automatización de procesos de TI Ejecución gestionada de operaciones de servicio: crea secuencias de operaciones de servicio fácilmente. Google Cloud Por ejemplo:
  • Aprovisionar nuevos proyectos o infraestructura de clientes
  • Reducir los recursos según una programación o mediante activadores de eventos

Conceptos básicos

Un flujo de trabajo consta de una serie de pasos descritos mediante la sintaxis de Workflows y se puede escribir en YAML o JSON. Esta es la definición del flujo de trabajo. Para obtener una explicación detallada de la sintaxis de Workflows, consulta la referencia de sintaxis.

Una vez creado un flujo de trabajo, se despliega, lo que hace que esté listo para ejecutarse. Consulta cómo crear y actualizar un flujo de trabajo en la consola de Google Cloud o con la CLI de Google Cloud. También puedes crear tu flujo de trabajo con el IDE o el editor de código fuente que prefieras y configurar el autocompletado y la validación de sintaxis.

Una ejecución es una única ejecución de la lógica contenida en la definición de un flujo de trabajo. Si no se ejecuta un flujo de trabajo, no se generará ningún cargo. Todas las ejecuciones de flujos de trabajo son independientes y el producto se puede escalar rápidamente, lo que permite un gran número de ejecuciones simultáneas. Puedes ejecutar un flujo de trabajo con las bibliotecas de cliente, en la Google Cloud consola, con la CLI de Google Cloud o enviando una solicitud HTTP POST a la URL de invocación del flujo de trabajo mediante la API REST de Workflows. Para obtener más información, consulta Ejecutar un flujo de trabajo.

Regionalización

Workflows es un servicio regional y los flujos de trabajo son recursos regionales sujetos a la restricción de ubicaciones de recursos. Puedes usar políticas de ubicación de recursos para controlar la residencia de los datos.

Ten en cuenta que, cuando se implementa un flujo de trabajo en una región concreta, solo se ejecuta en esa región. Sin embargo, si el flujo de trabajo hace alguna solicitud HTTP o usa conectores, es posible que la llamada HTTP no se origine en la misma región.

Funciones clave

Estas son algunas de las funciones principales de los flujos de trabajo.

Control de ejecución

Pasos
Para crear un flujo de trabajo, debes definir los pasos necesarios y el orden de ejecución mediante la sintaxis de Workflows. Todos los flujos de trabajo deben tener al menos un paso. De forma predeterminada, los flujos de trabajo tratan los pasos como si estuvieran en una lista ordenada y los ejecuta uno a uno hasta que se hayan completado todos. Para obtener más información, consulta la sección Pasos.
Condiciones
Puedes usar un bloque switch como mecanismo de selección que permita que el valor de una expresión controle el flujo de ejecución de un flujo de trabajo. Para obtener más información, consulta Condiciones.
Iteración
Puedes usar un bucle for para iterar en una secuencia de números o en una colección de datos, como una lista o un mapa. Para obtener más información, consulta Iteración
.
Pasos paralelos
Puedes usar un paso parallel para definir una parte de tu flujo de trabajo (una ramificación o un bucle) que se pueda ejecutar simultáneamente. Para obtener más información, consulta los pasos paralelos.
Subflujos de trabajo
Un subflujo de trabajo funciona de forma similar a una rutina o una función en un lenguaje de programación, lo que te permite encapsular un paso o un conjunto de pasos que tu flujo de trabajo repetirá varias veces. Para obtener más información, consulta Subflujos de trabajo.

Activar ejecuciones

Manual
Puedes gestionar los flujos de trabajo desde la Google Cloud consola o desde la línea de comandos mediante la CLI de Google Cloud. También puedes usar la visualización mientras editas la sintaxis de los flujos de trabajo a través de la Google Cloud consola
.
Automático
Las bibliotecas de cliente de Cloud de la API Workflows o la API REST se pueden usar para gestionar los flujos de trabajo. Para obtener más información, consulta APIs y referencia de Workflows.
Programado
Puedes usar Cloud Scheduler para ejecutar un flujo de trabajo según una programación concreta, como todos los lunes a las 9:00 o cada 15 minutos. Para obtener más información, consulta el artículo Programar flujos de trabajo con Cloud Scheduler.
Argumentos de tiempo de ejecución
Para acceder a los datos transferidos en tiempo de ejecución, añade un campo params al flujo de trabajo principal (colocado en un bloque main). El bloque main acepta un único argumento que es cualquier tipo de datos JSON válido. El campo params asigna un nombre a la variable que usa el flujo de trabajo para almacenar los datos que le proporcione. Para obtener más información, consulta Argumentos de tiempo de ejecución.

Conectar servicios

APIs HTTP
Puedes definir un paso de flujo de trabajo que haga una llamada HTTP y asignar la respuesta de la llamada a una variable. Por ejemplo, puedes invocar un servicio como funciones de Cloud Run o Cloud Run mediante una solicitud HTTP. Google CloudSe admiten solicitudes HTTP y HTTPS. Para obtener más información, consulta Enviar una solicitud HTTP e Invocar funciones de Cloud Run o Cloud Run.
Puedes orientar las llamadas HTTP desde la ejecución de tu flujo de trabajo a un endpoint privado mediante el registro de servicios de Service Directory con Workflows. De esta forma, puedes proporcionar a tu flujo de trabajo un nombre de servicio de Service Directory. La ejecución del flujo de trabajo usa la información obtenida del registro de servicios para enviar la solicitud HTTP adecuada sin salir a una red pública. Para obtener más información, consulta Invocar un endpoint privado mediante el registro de servicios de Service Directory.
También puedes invocar endpoints privados locales, de Compute Engine, de Google Kubernetes Engine (GKE) o de otro tipo Google Cloud habilitando Identity-Aware Proxy (IAP). IAP te permite establecer una capa de autorización central para las aplicaciones a las que se accede mediante HTTPS, de forma que puedas usar un modelo de control de acceso a nivel de aplicación en lugar de depender de cortafuegos a nivel de red. Para obtener más información, consulta Invocar un endpoint privado on-premise, de Compute Engine, de GKE o de otro tipo habilitando IAP.
Cuando creas un endpoint privado en una red de nube privada virtual (VPC), puedes configurar un perímetro de servicio y usar Controles de Servicio de VPC con Workflows para mitigar los riesgos de filtración externa de datos.
Conectores
Workflows publica conectores que se pueden usar para conectarse a otras APIs Google Cloud dentro de un flujo de trabajo e integrar tus flujos de trabajo con esos productos. Google Cloud Simplifican las llamadas a los servicios porque se encargan de dar formato a las solicitudes y proporcionan métodos y argumentos para que no tengas que conocer los detalles de unaGoogle Cloud API. Para obtener más información, consulta Información sobre los conectores
.
Biblioteca estándar y variables de entorno
La biblioteca estándar de Workflows, las variables de entorno integradas y las variables de entorno definidas por el usuario te permiten crear argumentos para servicios y procesar respuestas de forma eficiente.
La biblioteca estándar incluye módulos y funciones de uso frecuente, como las de conversión de tipos y formatos de datos. No es necesario importar ni cargar bibliotecas en un flujo de trabajo, ya que las funciones de las bibliotecas funcionan inmediatamente. Para obtener más información, consulta el resumen de la biblioteca estándar.
Puedes acceder a la información del entorno de un flujo de trabajo (como su ubicación o su identificador de proyecto) mediante variables de entorno integradas. Las variables de entorno integradas no requieren ninguna declaración y están disponibles en todas las ejecuciones de flujos de trabajo. Para obtener más información, consulta Variables de entorno integradas.
Cuando implementas un flujo de trabajo, puedes definir pares de cadenas de clave y valor arbitrarios como variables de entorno definidas por el usuario a las que puede acceder tu flujo de trabajo en tiempo de ejecución. Por ejemplo, puedes crear un flujo de trabajo que se configure de forma dinámica en función del entorno en el que se implemente. Para obtener más información, consulta el artículo Usar variables de entorno.

Gestión de errores

Puedes hacer que tus flujos de trabajo sean resilientes y personalizar su comportamiento cuando se produzca un fallo mediante el control de excepciones de Workflows, que incluye reintentos automatizados de llamadas HTTP con tiempos de espera exponenciales, controladores de errores personalizados y otras funciones avanzadas. Para obtener más información, consulta Errores de flujo de trabajo.

Esperando

Las retrollamadas permiten que las ejecuciones de flujos de trabajo esperen a que otro servicio envíe una solicitud al endpoint de retrollamada. Esta solicitud reanuda la ejecución del flujo de trabajo. Con las retrollamadas, puedes indicar a tu flujo de trabajo que se ha producido un evento específico y esperar a que se produzca ese evento sin sondeo. Para obtener más información, consulta Esperar usando retrollamadas.

Puedes pausar la ejecución de un flujo de trabajo añadiendo un paso de suspensión a su definición. Después, puedes usar sys.sleep para consultar los datos en un intervalo determinado. Para obtener más información, consulta Esperar usando la comprobación.

Autenticación y control de acceso

Como cada ejecución de flujo de trabajo requiere una llamada autenticada, puedes reducir el riesgo de llamadas accidentales o maliciosas usando Workflows. También puedes simplificar las interacciones con otras APIs de Google Cloud usando cuentas de servicio basadas en IAM y almacenar de forma segura claves y contraseñas para autenticarte en APIs externas con el conector Secret Manager. Para obtener más información, consulta los artículos sobre autenticación y control de acceso.

Observabilidad

Workflows genera automáticamente registros de ejecución de los flujos de trabajo en Cloud Logging. También puedes controlar cuándo se envían los registros a Logging durante la ejecución de un flujo de trabajo mediante el registro de llamadas o los registros personalizados. Para obtener más información, consulta Enviar registros a Cloud Logging.

La información de los registros de auditoría está disponible a través de los registros de auditoría de Cloud. Para obtener más información, consulta la información sobre el registro de auditoría de flujos de trabajo y ejecuciones de flujos de trabajo.

Puedes consultar el historial de una ejecución de flujo de trabajo específica como una lista de entradas de pasos. Cada entrada representa un paso o un bloque de instrucciones en la ejecución del flujo de trabajo. Las entradas de pasos pueden ayudarte a determinar el origen de un error u optimizar el rendimiento de un flujo de trabajo.

Códigos de ejemplo

Puedes encontrar muchos ejemplos de código de Workflows útiles en la página de ejemplos.

Siguientes pasos