Workflows est une plate-forme d'orchestration entièrement gérée qui exécute des services dans un ordre que vous définissez: un workflow. Ces workflows peuvent combiner des services tels que des services personnalisés hébergés sur Cloud Run ou Cloud Functions, des services Google Cloud tels que Cloud Vision AI et BigQuery, ainsi que toute API HTTP.
En intégrant des workflows dans des solutions, vous pouvez rendre les dépendances de services explicites et observables de bout en bout. Workflow qui spécifie un processus applicatif, opérationnel ou métier, qui fournit une source de vérité ou une description canonique du processus.
Les workflows s'exécutent sans serveur et s'adaptent en fonction des besoins. Aucuns frais ne sont facturés en cas d'inactivité. Étant donné qu'un workflow ne contient aucune dépendance de code ou de bibliothèque, il ne nécessite pas de correctifs de sécurité. Une fois que vous avez déployé un workflow, vous pouvez vous assurer qu'il s'exécutera de manière fiable sans maintenance. Un workflow peut conserver l'état, réessayer, interroger ou attendre jusqu'à un an.
Les workflows sont conformes à ces certifications et normes.
Le schéma suivant montre un exemple d'utilisation de Workflows pour orchestrer des services:
Principaux cas d'utilisation
Workflows accepte de nombreux cas d'utilisation. En voici quelques exemples :
Orchestration des services | Créer des solutions en combinant des services : effectuez une séquence d'opérations sur plusieurs systèmes, en attendant la fin de toutes les opérations.
Peut être basé sur des événements. Exemple :
|
Jobs par lots | Opération sur plusieurs éléments : effectuez des opérations sur un ensemble d'éléments ou sur des données par lot. Souvent programmée. Exemple :
|
Processus métier | Automatisez les workflows métier : encodez les étapes d'un processus métier, y compris les conditions, les actions et les événements avec intervention humaine. Exemple :
|
Automatisation des processus IT | Exécution gérée des opérations de service : séquences faciles des scripts des opérations de service Google Cloud. Exemple :
|
Concepts fondamentaux
Un workflow se compose d'une série d'étapes décrites à l'aide de la syntaxe Workflows et peut être écrit en YAML ou JSON. Il s'agit de la définition du workflow. Pour obtenir une explication détaillée de la syntaxe Workflows, consultez la documentation de référence sur la syntaxe.
Une fois un workflow créé, il est déployé, ce qui le rend prêt à être exécuté. Découvrez comment créer et mettre à jour un workflow dans la console Google Cloud ou à l'aide de Google Cloud CLI. Vous pouvez également créer votre workflow à l'aide d'un IDE ou d'un éditeur de code source de votre choix, et configurer la saisie semi-automatique et la validation de la syntaxe.
Une exécution est une exécution unique de la logique contenue dans la définition d'un workflow. Un workflow qui n'a pas été exécuté ne génère aucuns frais. Toutes les exécutions de workflows sont indépendantes, et le scaling rapide du produit permet un grand nombre d'exécutions simultanées. Vous pouvez exécuter un workflow à l'aide des bibliothèques clientes, dans la console Google Cloud, à l'aide de la Google Cloud CLI ou en envoyant une requête HTTP POST
à l'URL d'appel du workflow à l'aide de l'API REST Workflows. Pour en savoir plus, consultez la page Exécuter un workflow.
Régionalité
Workflows est un service régional, et les workflows sont des ressources régionales soumises à la contrainte d'emplacement des ressources. Vous pouvez utiliser des règles d'emplacement des ressources pour contrôler la résidence des données.
Notez que lorsqu'un workflow est déployé dans une région particulière, il n'est exécuté que dans cette région. Toutefois, si le workflow effectue des requêtes HTTP ou utilise des connecteurs, l'appel HTTP peut ne pas provenir de la même région.
Capacités clés
Voici quelques-unes des principales fonctionnalités des workflows.
Contrôle de l'exécution
- Étapes
- Pour créer un workflow, vous devez définir les étapes requises et l'ordre d'exécution à l'aide de la syntaxe Workflows. Chaque workflow doit comporter au moins une étape. Par défaut, Workflows traite les étapes comme si elles se trouvaient dans une liste ordonnée et les exécute une par une jusqu'à ce que toutes les étapes soient exécutées. Pour en savoir plus, consultez la section Étapes.
- Conditions
- Vous pouvez utiliser un bloc
switch
en tant que mécanisme de sélection qui permet à la valeur d'une expression de contrôler le flux d'exécution d'un workflow. Pour en savoir plus, consultez la section Conditions. - Itération
- Vous pouvez utiliser une boucle
for
pour effectuer une itération sur une séquence de nombres ou sur un ensemble de données, telles qu'une liste ou une carte. Pour en savoir plus, consultez la section Itération. - Étapes parallèles
- Vous pouvez utiliser une étape
parallel
pour définir une partie de votre workflow (une branche ou une boucle) pouvant s'exécuter simultanément. Pour en savoir plus, consultez la section Étapes parallèles. - Sous-workflows
- Un sous-workflow fonctionne comme une routine ou une fonction dans un langage de programmation, vous permettant d'encapsuler une étape ou un ensemble d'étapes que votre workflow répétera plusieurs fois. Pour plus d'informations, consultez la section Sous-workflows.
Déclencher des exécutions
- Manuel
- Vous pouvez gérer les workflows à partir de la console Google Cloud ou de la ligne de commande à l'aide de la Google Cloud CLI. La visualisation est également disponible lors de la modification de la syntaxe Workflows via Google Cloud Console.
- Programmatique
- Les bibliothèques clientes Cloud pour l'API Workflows ou l'API REST peuvent être utilisées pour gérer les workflows. Pour en savoir plus, consultez la page API de Workflows et documentation de référence.
- Planifiée
- Vous pouvez utiliser Cloud Scheduler pour exécuter un workflow selon un calendrier donné, par exemple le lundi à 9h ou toutes les 15 minutes. Pour en savoir plus, consultez la section Planifier un workflow à l'aide de Cloud Scheduler.
- Arguments d'exécution
- Les données transmises au moment de l'exécution sont accessibles en ajoutant un champ
params
à votre workflow principal (défini dans un blocmain
). Le blocmain
accepte un argument unique correspondant à n'importe quel type de données JSON valide. Le champparams
nomme la variable utilisée par le workflow pour stocker les données que vous transmettez. Pour en savoir plus, consultez la section Arguments d'exécution.
Connecter des services
- API HTTP
- Vous pouvez définir une étape de workflow qui effectue un appel HTTP et attribue la réponse de l'appel à une variable. Par exemple, vous pouvez appeler un service Google Cloud tel que les fonctions Cloud Run ou Cloud Run via une requête HTTP. Les requêtes HTTP et HTTPS sont toutes deux acceptées. Pour en savoir plus, consultez les pages Exécuter une requête HTTP et Appeler des fonctions Cloud Run ou Cloud Run.
- Vous pouvez appeler des points de terminaison privés sur site, Compute Engine, Google Kubernetes Engine (GKE) ou d'autres points de terminaison Google Cloud en activant Identity-Aware Proxy (IAP). IAP vous permet d'établir une couche d'autorisation centrale pour les applications accessibles via HTTPS. Vous pouvez donc adopter un modèle de contrôle des accès au niveau des applications au lieu d'utiliser des pare-feu au niveau du réseau. Pour en savoir plus, consultez la section Appeler un point de terminaison privé sur site, Compute Engine, GKE ou autre.
- Vous pouvez également cibler un point de terminaison privé pour les appels HTTP à partir de l'exécution de votre workflow à l'aide du registre de services de l'annuaire des services avec Workflows. En créant un point de terminaison privé dans un réseau cloud privé virtuel (VPC), vous pouvez le rendre conforme à VPC Service Controls. Pour en savoir plus, consultez la section Appeler un point de terminaison privé conforme à VPC Service Controls.
- Connecteurs
- Workflows publie des connecteurs qui permettent de se connecter à d'autres API Google Cloud au sein d'un workflow et d'intégrer vos workflows à ces produits Google Cloud. Ils simplifient les services d'appel, car ils gèrent la mise en forme des requêtes à votre place, et fournissent des méthodes et des arguments pour vous éviter d'avoir à connaître les détails d'une API Google Cloud. Pour en savoir plus, consultez la page Comprendre les connecteurs.
- Variables d'environnement et bibliothèque standard
- La bibliothèque standard de Workflows, les variables d'environnement intégrées et les variables d'environnement définies par l'utilisateur vous permettent de construire efficacement des arguments pour les services et de traiter les réponses.
- La bibliothèque standard inclut des modules et des fonctions fréquemment utilisées, telles que les conversions de types et de formats de données. Il n'est pas nécessaire d'importer ou de charger des bibliothèques dans un workflow. Les fonctions de bibliothèque fonctionnent immédiatement. Pour en savoir plus, consultez la Présentation de la bibliothèque standard.
- Vous pouvez accéder aux informations sur l'environnement d'un workflow (telles que son emplacement ou son identifiant) à l'aide de variables d'environnement intégrées. Les variables d'environnement intégrées ne nécessitent pas de déclaration et sont disponibles à chaque exécution de workflow. Pour en savoir plus, consultez la section Variables d'environnement intégrées.
- Lorsque vous déployez un workflow, vous pouvez définir des paires de chaînes clé-valeur arbitraires en tant que variables d'environnement définies par l'utilisateur, qui sont accessibles par votre workflow au moment de l'exécution. Par exemple, vous pouvez créer un workflow configuré de manière dynamique en fonction de l'environnement dans lequel il est déployé. Pour en savoir plus, consultez Utiliser des variables d'environnement.
Gestion des exceptions
Vous pouvez rendre vos workflows résilients et personnaliser leur comportement en cas d'échec à l'aide du traitement des exceptions de Workflows, y compris les tentatives d'appel HTTP automatisées avec des intervalles exponentiels entre les tentatives, les gestionnaires d'erreurs personnalisés et d'autres fonctionnalités avancées. Pour en savoir plus, consultez la section Erreurs de workflow.
En attente
Les rappels permettent aux exécutions de workflow d'attendre qu'un autre service envoie une requête au point de terminaison de rappel. Cette requête reprend l'exécution du workflow. Avec les rappels, vous pouvez signaler à votre workflow qu'un événement spécifié s'est produit et attendre cet événement sans interrogation. Pour en savoir plus, consultez la section Attendre à l'aide de rappels.
Vous pouvez suspendre l'exécution d'un workflow en ajoutant une étape de veille à la définition de votre workflow. Vous pouvez ensuite utiliser sys.sleep
pour interroger des données sur un intervalle donné. Pour en savoir plus, consultez la section Attendre à l'aide de l'interrogation.
Authentification et contrôle des accès
Étant donné que chaque exécution de workflow nécessite un appel authentifié, vous pouvez réduire le risque d'appels accidentels ou malveillants à l'aide de Workflows. Vous pouvez également simplifier les interactions avec d'autres API Google Cloud à l'aide de comptes de service IAM. Vous pouvez également stocker en toute sécurité des clés et des mots de passe pour vous authentifier auprès d'API externes à l'aide du connecteur Secret Manager. Pour en savoir plus, consultez les pages Authentification et Contrôle des accès.
Observabilité
Les workflows génèrent automatiquement des journaux pour les exécutions de workflows dans Cloud Logging. Vous pouvez également contrôler le moment où les journaux sont envoyés à Logging lors de l'exécution d'un workflow via la journalisation des appels ou des journaux personnalisés. Pour en savoir plus, consultez la section Envoyer des journaux à Cloud Logging.
Les informations des journaux d'audit sont disponibles via Cloud Audit Logs. Pour en savoir plus, consultez les informations sur les journaux d'audit des workflows et des exécutions de workflow.
Vous pouvez récupérer l'historique d'une exécution de workflow spécifiée sous la forme d'une liste d'entrées d'étapes. Chaque entrée représente une étape ou un bloc d'instructions dans l'exécution du workflow. Les entrées d'étapes peuvent vous aider à déterminer la source d'une erreur ou à optimiser les performances d'un workflow.
Exemples de code
Vous trouverez de nombreux exemples de code Workflows utiles sur la page d'exemples.
Étape suivante
Commencez à utiliser Workflows à partir de la console Google Cloud ou de la gcloud CLI.
Découvrez comment créer et mettre à jour des workflows.
Découvrez comment contrôler l'ordre d'exécution des étapes d'un workflow.