Descripción general de los flujos de trabajo

Workflows es una plataforma de organización completamente administrada que ejecuta servicios en el orden que defines: un flujo de trabajo. Estos flujos de trabajo pueden combinar servicios que incluyen 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.

Si incorporas Workflows en las soluciones, puedes hacer que las dependencias de servicios sean explícitas y observables de extremo a extremo. Un flujo de trabajo que especifica un proceso operativo, empresarial o de aplicación proporciona una fuente de verdad o una narrativa canónica para el proceso.

Workflows no tiene servidores, se amplía según sea necesario y no se incurren cargos mientras está inactivo. Como un flujo de trabajo no contiene dependencias de código ni de biblioteca, no requiere parches de seguridad. Una vez que implementes un flujo de trabajo, puedes esperar que se ejecute de forma confiable sin necesidad de mantenimiento. Un flujo de trabajo puede mantener el estado, volver a intentarlo, sondear o esperar hasta un año.

Workflows cumple con estas certificaciones y estándares.

En el siguiente diagrama, se muestra un ejemplo del uso de Workflows para coordinar servicios:

Organización de servicios con Workflows

Casos de uso clave

Workflows admite muchos casos de uso. Por ejemplo:

Organización de servicios Crear 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:
  • Envía los archivos recién subidos a Cloud Vision AI y, luego, escribe etiquetas en Firestore.
  • Llama a una función de Cloud Run y envía los resultados a un servicio de Cloud Run
los trabajos por lotes Operar en varios elementos: Realiza operaciones en un conjunto de elementos o datos por lotes. Se programan con frecuencia. Por ejemplo:
  • Enviar correos electrónicos diarios a los clientes
  • Prepara y ejecuta trabajos de BigQuery o de aprendizaje automático
  • Genera informes
Procesos empresariales Automatiza flujos de trabajo de línea de negocios: Codifica los pasos de un proceso empresarial, incluidas las condiciones, las acciones y los eventos que requieren intervención humana. Por ejemplo:
  • Haz un seguimiento de un pedido desde la solicitud hasta el cumplimiento
  • Automatiza las solicitudes de recursos con aprobaciones
Automatización de procesos de TI Ejecución administrada de operaciones de servicio: Crea secuencias de Google Cloud operaciones de servicio con facilidad. Por ejemplo:
  • Aprovisiona proyectos o infraestructura de usuarios nuevos
  • Cómo reducir el uso de recursos según una programación o activadores de eventos

Conceptos básicos

Un flujo de trabajo consta de una serie de pasos descritos con 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.

Después de crear un flujo de trabajo, se implementa, lo que lo deja listo para su ejecución. Aprende a crear y actualizar un flujo de trabajo en la consola de Google Cloud o con Google Cloud CLI. También 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.

Una ejecución es una sola ejecución de la lógica que se incluye en la definición de un flujo de trabajo. Un flujo de trabajo que no se ejecutó no genera cargos. Todas las ejecuciones de flujos de trabajo son independientes, y el escalamiento rápido del producto permite una gran cantidad de ejecuciones simultáneas. Puedes ejecutar un flujo de trabajo con las bibliotecas cliente, en la consola de Google Cloud , con Google Cloud CLI o enviando una solicitud HTTP POST a la URL de invocación del flujo de trabajo con la API de REST de Workflows. Para obtener más información, consulta Cómo ejecutar un flujo de trabajo.

Regionalidad

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

Ten en cuenta que, cuando un flujo de trabajo se implementa en una región en particular, solo se ejecuta en esa región. Sin embargo, si el flujo de trabajo realiza solicitudes 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 capacidades clave de Workflows:

Control de ejecución

Pasos
Para crear un flujo de trabajo, debes definir los pasos necesarios y el orden de ejecución con la sintaxis de Workflows. Cada flujo de trabajo debe tener al menos un paso. De forma predeterminada, Workflows trata los pasos como si estuvieran en una lista ordenada y los ejecuta uno a la vez hasta que se hayan ejecutado todos. Para obtener más información, consulta Pasos.
Condiciones
Puedes usar un bloque switch como mecanismo de selección que permite que el valor de una expresión controle el flujo de la ejecución de un flujo de trabajo. Para obtener más información, consulta Condiciones.
Iteración
Puedes usar un bucle for para iterar sobre una secuencia de números o a través de 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 rama o un bucle) que se puede ejecutar de forma simultánea. Para obtener más detalles, consulta Pasos paralelos.
Subflujos de trabajo
Un subflujo de trabajo funciona de manera similar a una rutina o 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.

Cómo activar ejecuciones

Manual
Puedes administrar flujos de trabajo desde la Google Cloud consola o desde la línea de comandos con Google Cloud CLI. La compatibilidad con la visualización mientras editas la sintaxis de Workflows también está disponible a través de la Google Cloud consola.
Programático
Las bibliotecas cliente de Cloud para la API de Workflows o la API de REST se pueden usar para administrar 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 un programa en particular, por ejemplo, todos los lunes a las 9 a.m. o cada 15 minutos. Para obtener más información, consulta Programa un flujo de trabajo con Cloud Scheduler.
Argumentos de entorno de ejecución
Para acceder a los datos que se pasan en el tiempo de ejecución, agrega un campo params a tu flujo de trabajo principal (colocado en un bloque main). El bloque main acepta un solo argumento que puede ser cualquier tipo de datos JSON válido. El campo params nombra la variable que el flujo de trabajo usa para almacenar los datos que pasas. Para obtener más información, consulta Argumentos de tiempo de ejecución.

Conexión de servicios

APIs de HTTP
Puedes definir un paso del flujo de trabajo que realice una llamada HTTP y asignar la respuesta de la llamada a una variable. Por ejemplo, puedes invocar un servicio como Cloud Run Functions o Cloud Run a través de una solicitud HTTP. Google CloudSe admiten solicitudes HTTP y HTTPS. Para obtener más información, consulta Cómo realizar una solicitud HTTP y Cómo invocar funciones de Cloud Run o Cloud Run.
Puedes segmentar un extremo privado para las llamadas HTTP desde la ejecución de tu flujo de trabajo con el registro de servicios de Directorio de servicios y Workflows. Esto te permite proporcionar a tu flujo de trabajo un nombre de servicio del Directorio de servicios. La ejecución de tu flujo de trabajo usa la información recuperada del registro de servicios para enviar la solicitud HTTP adecuada, sin salir a una red pública. Para obtener más información, consulta Invoca un extremo privado con el registro de servicios de Service Directory.
Como alternativa, puedes invocar extremos privados locales, de Compute Engine, de Google Kubernetes Engine (GKE) o de otros Google Cloud si habilitas Identity-Aware Proxy (IAP). IAP te permite establecer una capa de autorización central para las aplicaciones a las que se accede a través de HTTPS, de modo que puedas usar un modelo de control de acceso a nivel de aplicación en lugar de firewalls a nivel de red. Para obtener más información, consulta Cómo invocar un extremo privado local, de Compute Engine, de GKE o de otro tipo habilitando IAP.
Cuando creas un extremo privado dentro de una red de nube privada virtual (VPC), puedes configurar un perímetro de servicio y usar los Controles del servicio de VPC con Workflows para mitigar los riesgos de robo de datos.
Conectores
Workflows publica conectores que se pueden usar para conectarse a otras APIs Google Cloud dentro de un flujo de trabajo y para integrar tus flujos de trabajo con esos Google Cloud productos. Simplifican las llamadas a los servicios porque manejan el formato de las solicitudes por ti y proporcionan métodos y argumentos para que no necesites conocer los detalles de una API deGoogle Cloud . Para obtener más información, consulta Descripción de 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 de manera eficiente para los servicios y procesar respuestas.
La biblioteca estándar incluye módulos y funciones de uso frecuente, como las de conversiones de formato y tipo de datos. No es necesario importar ni cargar bibliotecas en un flujo de trabajo, ya que las funciones de la biblioteca funcionan de inmediato. Para obtener más información, consulta la Descripción general de la biblioteca estándar.
Puedes acceder a la información del entorno de un flujo de trabajo (como su ubicación o el identificador del proyecto) con variables de entorno integradas. Las variables de entorno integradas no requieren declaración y están disponibles en cada ejecución de flujo de trabajo. Para obtener más detalles, consulta Variables de entorno integradas.
Cuando implementas un flujo de trabajo, puedes establecer pares arbitrarios de cadenas de clave y valor como variables de entorno definidas por el usuario a las que tu flujo de trabajo puede acceder en el entorno de ejecución. Por ejemplo, puedes crear un flujo de trabajo que se configure de forma dinámica según el entorno en el que se implemente. Para obtener más información, consulta Usa variables de entorno.

Manejo de errores

Puedes hacer que tus flujos de trabajo sean resilientes y personalizar su comportamiento cuando se produce una falla con el control de excepciones de Workflows, incluidos los reintentos automatizados de llamadas HTTP con retiradas exponenciales, controladores de errores personalizados y otras funciones avanzadas. Para obtener más información, consulta Errores de flujo de trabajo.

Esperando

Las devoluciones de llamada permiten que las ejecuciones de flujos de trabajo esperen a que otro servicio realice una solicitud al extremo de devolución de llamada. Esa solicitud reanuda la ejecución del flujo de trabajo. Con las devoluciones de llamada, puedes indicarle a tu flujo de trabajo que se produjo un evento especificado y esperar ese evento sin sondeo. Para obtener más información, consulta Cómo esperar con devoluciones de llamada.

Puedes pausar la ejecución de un flujo de trabajo agregando un paso de suspensión a la definición del flujo de trabajo. Luego, puedes usar sys.sleep para sondear los datos durante un intervalo determinado. Para obtener más detalles, consulta Espera con sondeo.

Autenticación y control de acceso

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

Observabilidad

Workflows genera automáticamente registros de ejecución para las ejecuciones de 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 a través del registro de llamadas o los registros personalizados. Para obtener más información, consulta Envía registros a Cloud Logging.

La información del registro 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 de registro de auditoría de flujos de trabajo y ejecuciones de flujos de trabajo.

Puedes recuperar el historial de la ejecución de un flujo de trabajo especificado 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 la fuente de un error o a optimizar el rendimiento de un flujo de trabajo.

Muestras de código

Puedes encontrar muchas muestras de código de Workflows útiles en la página de muestras.

¿Qué sigue?