Descripción general de los flujos de trabajo

Workflows es una plataforma de organización completamente administrada que ejecuta servicios en un orden que tú defines: un flujo de trabajo. Estos flujos de trabajo pueden combinar servicios, incluidos servicios personalizados alojados en Cloud Run o Cloud Functions, servicios de Google Cloud, como Cloud Vision AI y BigQuery, y cualquier API basada en HTTP.

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

Workflows funcionan sin servidores, se escalan verticalmente según sea necesario y no se generan cargos mientras el usuario está inactivo. Debido a que un flujo de trabajo no contiene dependencias de código ni de bibliotecas, no requiere parches de seguridad. Una vez que implementas un flujo de trabajo, puedes esperar que se ejecute de manera confiable sin mantenimiento. Un flujo de trabajo puede conservar el estado, reintentar, sondear o esperar hasta por un año.

Workflows cumplen con estas certificaciones y estándares.

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

Organización de servicios con Workflows

Casos de uso clave

Workflows admiten muchos casos de uso. Por ejemplo:

Organización de servicios Crea soluciones mediante la combinación de servicios: Realiza una secuencia de operaciones en varios sistemas y espera a que se completen todas las operaciones. Puede estar controlado por eventos. Por ejemplo:
  • Envía los archivos subidos recientemente a Cloud Vision AI y, luego, escribe las etiquetas en Firestore
  • Llama a una Cloud Function y envía los resultados a un servicio de Cloud Run
Trabajos por lotes Operar sobre varios elementos: Realiza operaciones en un conjunto de elementos o datos por lotes. Programadas 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 en un proceso empresarial, incluidas las condiciones, las acciones y los eventos con interacción humana. Por ejemplo:
  • Realiza el seguimiento de un pedido desde la solicitud hasta la entrega
  • Automatiza las solicitudes de recursos con aprobaciones
Automatización de procesos de TI Ejecución administrada de las operaciones de servicio: Secuencias de comandos de las operaciones de servicio de Google Cloud con facilidad. Por ejemplo:
  • Aprovisionar nuevos proyectos o infraestructura de inquilino
  • Desactive los recursos según un programa 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 pueden 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 que se crea un flujo de trabajo, se implementa, lo que hace que el flujo de trabajo esté listo para ejecutarse. Aprende a crear y actualizar un flujo de trabajo en la consola de Google Cloud o mediante Google Cloud CLI. También puedes crear tu flujo de trabajo con un IDE o editor de código fuente preferidos y configurando el autocompletado y la validación de sintaxis.

Una ejecución es una ejecución única de la lógica contenida 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 mediante las bibliotecas cliente, en la consola de Google Cloud, con Google Cloud CLI o mediante el envío de 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 Ejecuta un flujo de trabajo.

Funciones clave

Estas son algunas de las capacidades clave de Workflows.

Control de ejecución

Pasos
Para crear un flujo de trabajo, define los pasos que deseas y su orden de ejecución con la sintaxis 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 detalles, 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 detalles, consulta Condiciones.
Iteración
Puedes usar un bucle for para iterar sobre una secuencia de números o una colección de datos, como una lista o un mapa. Para obtener más detalles, 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 puede ejecutarse en simultáneo. Para obtener más información, 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 conjunto de pasos que tu flujo de trabajo repetirá varias veces. Para obtener más información, consulta Subflujos de trabajo.

Activa ejecuciones

Manual
Puedes administrar flujos de trabajo desde la consola de Google Cloud o desde la línea de comandos con Google Cloud CLI. La compatibilidad de visualización mientras se edita la sintaxis de Workflows también está disponible a través de la consola de Google Cloud.
Programático
Las bibliotecas cliente de Cloud para la API de Workflows o la API de REST se pueden usar a fin de administrar flujos de trabajo. Para obtener más información, consulta API y referencia de Workflows.
Programado
Puedes usar Cloud Scheduler para ejecutar un flujo de trabajo en una programación en particular, como 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 al flujo de trabajo principal (colocado en un bloque main). El bloque main acepta un solo argumento que sea cualquier tipo de datos JSON válido. El campo params nombra la variable que usa el flujo de trabajo para almacenar los datos que pasas. Para obtener más detalles, consulta Argumentos del entorno de ejecución.

Servicios de conexión

APIs de HTTP
Puedes definir un paso del flujo de trabajo que realice una llamada HTTP y asigne la respuesta de la llamada a una variable. Por ejemplo, puedes invocar un servicio de Google Cloud, como Cloud Functions o Cloud Run, a través de una solicitud HTTP. Se admiten solicitudes HTTP y HTTPS. Para obtener más información, consulta Realiza una solicitud HTTP y, también, Invoca Cloud Functions o Cloud Run.
También puedes invocar entornos locales privados, Compute Engine, Google Kubernetes Engine (GKE) o cualquier otro extremo de Google Cloud. Para obtener más detalles, consulta Invoca entornos locales privados, Compute Engine, GKE o algún otro extremo.
Conectores
Los flujos de trabajo publican conectores que se pueden usar para conectarse a otras APIs de Google Cloud dentro de un flujo de trabajo y para integrar tus flujos de trabajo en esos productos de Google Cloud. Simplifican los servicios de llamadas porque manejan el formato de las solicitudes por ti y proporcionan métodos y argumentos para que no tengas que conocer los detalles de una API de Google Cloud. Para obtener más detalles, consulta Información sobre los conectores.
Biblioteca estándar y variables de entorno
La biblioteca estándar de Workflows y las variables de entorno integradas te permiten construir argumentos para servicios y respuestas de procesos de manera eficiente.
La biblioteca estándar incluye módulos y funciones de uso frecuente, como las de conversiones de formatos y tipos de datos. No es necesario importar o cargar bibliotecas en un flujo de trabajo, ya que las funciones correspondientes funcionan de inmediato. Para obtener más detalles, 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 identificador de proyecto) con variables de entorno integradas. Las variables de entorno integradas no requieren declaración y están disponibles en todas las ejecuciones de flujos de trabajo. Para obtener más detalles, consulta Variables de entorno integradas.

Manejo de errores

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

Pendiente

Las devoluciones de llamada permiten que las ejecuciones de flujo de trabajo esperen a que otro servicio envíe 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 específico y esperar en ese evento sin sondear. Para obtener más información, consulta Espera usando devoluciones de llamada.

Puedes pausar la ejecución de un flujo de trabajo si agregas un paso de suspensión a la definición de tu flujo de trabajo. Luego, puedes usar sys.sleep para sondear los datos durante un intervalo determinado. Para obtener más información, consulta Espera usando el 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 API de Google Cloud mediante las cuentas de servicio basadas en IAM, y almacenar de forma segura claves y contraseñas para autenticar en API externas mediante el conector de Secret Manager. Para obtener más detalles, obtén más información sobre la autenticación y el control de acceso.

Observabilidad

Workflows genera de forma automática registros 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 detalles, 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 detalles, consulta la información del registro de auditoría de flujos de trabajo.

Muestras de código

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

¿Qué sigue?