L'exécution d'un workflow exécute la définition actuelle du workflow associé au workflow.
Vous pouvez transmettre des arguments d'exécution dans une requête d'exécution de workflow et accéder à ces arguments à l'aide d'une variable de workflow. Pour en savoir plus, consultez la section Transmettre des arguments d'exécution dans une requête d'exécution.
Une fois l'exécution du workflow terminée, son historique et ses résultats sont conservés pendant une durée limitée. Pour en savoir plus, consultez la page Quotas et limites.
Avant de commencer
Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour obtenir des informations de dépannage, consultez la page Développer des applications dans un environnement Google Cloud limité.
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
- Si un workflow accède à d'autres ressources Google Cloud, assurez-vous qu'il est associé à un compte de service disposant des autorisations appropriées pour le faire. Pour savoir quel compte de service est associé à un workflow existant, consultez la section Vérifier le compte de service associé à un workflow.
Notez que pour créer une ressource et lui associer un compte de service, vous devez disposer des autorisations nécessaires pour créer cette ressource et emprunter l'identité du compte de service que vous allez associer à la ressource. Pour en savoir plus, consultez la section Autorisations de compte de service.
- Déployer un workflow à l'aide de la console Google Cloud ou de la Google Cloud CLI
Exécuter un workflow
Vous pouvez exécuter un workflow à l'aide des bibliothèques clientes, de la console Google Cloud, de gcloud CLI ou en envoyant une requête à l'API REST Workflows.
Console
Pour exécuter un workflow, accédez à la page Workflows de la console Google Cloud:
Sur la page Workflows, sélectionnez un workflow pour accéder à sa page d'informations.
Sur la page Détails du workflow, cliquez sur play_arrow Exécuter.
Sur la page Execute workflow (Exécuter le workflow), dans le volet Input (Entrée), vous pouvez saisir des arguments d'exécution facultatifs à transmettre à votre workflow avant l'exécution. Les arguments doivent être au format JSON. Exemple :
{"animal":"cat"}
Si votre workflow n'utilise pas d'arguments d'exécution, laissez ce champ vide.Vous pouvez également spécifier le niveau de journalisation des appels que vous souhaitez appliquer à l'exécution du workflow. Dans la liste Call log level (Niveau du journal d'appels), sélectionnez l'une des options suivantes:
- Non spécifié: aucun niveau de journalisation n'est spécifié. Il s'agit de l'option par défaut. Un niveau de journalisation d'exécution est prioritaire sur tout niveau de journalisation de workflow, sauf si celui-ci n'est pas spécifié (valeur par défaut). Dans ce cas, le niveau de journalisation du workflow s'applique.
- Erreurs uniquement: consigne toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.
- Tous les appels: consigne tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.
- Aucun journal: aucun journal d'appels.
Cliquez sur Exécuter.
Sur la page Détails de l'exécution, vous pouvez afficher les résultats de l'exécution, y compris tout résultat, l'ID et l'état d'exécution, ainsi que l'étape actuelle ou finale de l'exécution du workflow. Pour en savoir plus, consultez Accéder aux résultats d'exécution du workflow.
gcloud
Ouvrez un terminal.
Recherchez le nom du workflow que vous souhaitez exécuter. Si vous ne connaissez pas le nom du workflow, vous pouvez saisir la commande suivante pour répertorier tous vos workflows:
gcloud workflows list
Vous pouvez exécuter le workflow de deux manières:
Exécutez le workflow et attendez la fin de l'exécution:
gcloud workflows run WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Exécutez le workflow sans attendre la fin de la tentative d'exécution:
gcloud workflows execute WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --data=DATA
Remplacez les éléments suivants :
WORKFLOW_NAME
: nom du workflow.CALL_LOGGING_LEVEL
(facultatif): niveau de journalisation des appels à appliquer lors de l'exécution. Peut être une valeur parmi :none
: aucun niveau de journalisation n'est spécifié. Il s'agit de l'option par défaut. Un niveau de journalisation d'exécution est prioritaire sur un niveau de journalisation de workflow, sauf si celui-ci n'est pas spécifié (valeur par défaut). Dans ce cas, le niveau de journalisation du workflow s'applique.log-errors-only
: journalise toutes les exceptions interceptées, ou lorsqu'un appel est arrêté en raison d'une exception.log-all-calls
: journalise tous les appels aux sous-workflows ou aux fonctions de la bibliothèque, ainsi que leurs résultats.log-none
: aucune journalisation des appels.
DATA
(facultatif): arguments d'exécution pour votre workflow au format JSON.
Si vous avez exécuté
gcloud workflows execute
, l'ID unique de la tentative d'exécution du workflow est renvoyé et le résultat ressemble à ce qui suit:To view the workflow status, you can use following command: gcloud workflows executions describe b113b589-8eff-4968-b830-8d35696f0b33 --workflow workflow-2 --location us-central1
Pour afficher l'état de l'exécution, saisissez la commande renvoyée à l'étape précédente.
Si la tentative d'exécution aboutit, le résultat est semblable à ce qui suit, avec un state
indiquant la réussite du workflow et un status
qui spécifie l'étape finale du workflow de l'exécution.
argument: '{"searchTerm":"Friday"}' endTime: '2022-06-22T12:17:53.086073678Z' name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/c4dffd1f-13db-46a0-8a4a-ee39c144cb96 result: '["Friday","Friday the 13th (franchise)","Friday Night Lights (TV series)","Friday the 13th (1980 film)","Friday the 13th","Friday the 13th (2009 film)","Friday the 13th Part III","Friday the 13th Part 2","Friday (Rebecca Black song)","Friday Night Lights (film)"]' startTime: '2022-06-22T12:17:52.799387653Z' state: SUCCEEDED status: currentSteps: - routine: main step: returnOutput workflowRevisionId: 000001-ac2
Bibliothèques clientes
Les exemples suivants supposent que vous avez déjà déployé un workflow, myFirstWorkflow
.
Installez la bibliothèque cliente et configurez votre environnement de développement. Pour en savoir plus, consultez la présentation des bibliothèques clientes Workflows.
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Accédez au répertoire contenant l'exemple de code Workflows:
Java
cd java-docs-samples/workflows/cloud-client/
Node.js
cd nodejs-docs-samples/workflows/quickstart/
Python
cd python-docs-samples/workflows/cloud-client/
Consultez l'exemple de code :
Java
Node.js (JavaScript)
Node.js (TypeScript)
Python
L'exemple effectue les opérations suivantes:
- Configure les bibliothèques clientes Cloud pour Workflows.
- Exécute un workflow.
- Interroge l'exécution du workflow (à l'aide d'un intervalle exponentiel entre les tentatives) jusqu'à la fin de l'exécution.
- Imprime les résultats d'exécution.
Pour exécuter l'exemple, commencez par installer les dépendances:
Java
mvn compile
Node.js (JavaScript)
npm install
Node.js (TypeScript)
npm install && npm run build
Python
pip3 install -r requirements.txt
Exécutez le script :
Java
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME mvn compile exec:java -Dexec.mainClass=com.example.workflows.WorkflowsQuickstart
Node.js (JavaScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Node.js (TypeScript)
npm start PROJECT_ID CLOUD_REGION WORKFLOW_NAME
Python
GOOGLE_CLOUD_PROJECT=PROJECT_ID LOCATION=CLOUD_REGION WORKFLOW=WORKFLOW_NAME python3 main.py
Remplacez les éléments suivants :
PROJECT_ID
(obligatoire): ID du projet Google Cloud.CLOUD_REGION
: emplacement du workflow (par défaut:us-central1
)WORKFLOW_NAME
: ID du workflow (par défaut:myFirstWorkflow
)
Le résultat ressemble à ce qui suit :
Execution finished with state: SUCCEEDED ["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]
API REST
Pour créer une exécution à l'aide de la dernière révision d'un workflow donné, utilisez la méthode projects.locations.workflows.executions.create
.
Notez que pour vous authentifier, vous devez disposer d'un compte de service disposant de droits suffisants pour exécuter le workflow. Par exemple, vous pouvez attribuer le rôle Demandeur de workflows (roles/workflows.invoker
) à un compte de service afin qu'il soit autorisé à déclencher l'exécution de votre workflow. Pour en savoir plus, consultez la page Appeler des workflows.
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
PROJECT_NUMBER
: numéro de votre projet Google Cloud indiqué sur la page Paramètres IAM et administration.LOCATION
: région dans laquelle le workflow est déployé (par exemple,us-central1
).WORKFLOW_NAME
: nom défini par l'utilisateur pour le workflow (par exemple,myFirstWorkflow
).PARAMETER
: Facultatif. Si le workflow que vous exécutez peut recevoir des arguments d'exécution que vous transmettez dans le cadre d'une requête d'exécution, vous pouvez ajouter au corps de la requête une chaîne au format JSON dont la valeur est une ou plusieurs paires paramètre/valeur échappées (par exemple,"{\"searchTerm\":\"asia\"}"
).VALUE
: Facultatif. Valeur d'une paire paramètre/valeur que votre workflow peut recevoir en tant qu'argument d'exécution.CALL_LOGGING_LEVEL
: Facultatif. Niveau de journalisation des appels à appliquer lors de l'exécution. Par défaut, aucun niveau de journalisation n'est spécifié et le niveau de journalisation du workflow s'applique à la place. Pour en savoir plus, consultez la page Envoyer des journaux à Logging. Choisissez l'une des options suivantes :CALL_LOG_LEVEL_UNSPECIFIED
: aucun niveau de journalisation n'est spécifié et le niveau de journalisation du workflow s'applique à la place. Il s'agit de l'option par défaut. Sinon, le niveau de journalisation de l'exécution s'applique et est prioritaire sur le niveau de journalisation du workflow.LOG_ERRORS_ONLY
: consigne toutes les exceptions interceptées ou lorsqu'un appel est arrêté en raison d'une exception.LOG_ALL_CALLS
: consigne tous les appels aux sous-workflows ou aux fonctions de bibliothèque, ainsi que leurs résultats.LOG_NONE
: aucune journalisation des appels.
Corps JSON de la requête :
{ "argument": "{\"PARAMETER\":\"VALUE\"}", "callLogLevel": "CALL_LOGGING_LEVEL" }
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Execution
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID", "startTime": "2023-11-07T14:35:27.215337069Z", "state": "ACTIVE", "argument": "{\"PARAMETER\":\"VALUE\"}", "workflowRevisionId": "000001-2df", "callLogLevel": "CALL_LOGGING_LEVEL", "status": {} }
Vérifier l'état des exécutions
Plusieurs commandes vous permettent de vérifier l'état d'exécution d'un workflow.
Pour récupérer la liste des tentatives d'exécution d'un workflow et de leurs ID, saisissez la commande suivante:
gcloud workflows executions list WORKFLOW_NAME
Remplacez
WORKFLOW_NAME
par le nom du workflow.La commande renvoie une valeur
NAME
semblable à celle-ci:projects/PROJECT_NUMBER/locations/REGION/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
Copiez l'ID d'exécution à utiliser dans la commande suivante.
Pour vérifier l'état d'une tentative d'exécution et attendre la fin de la tentative, saisissez la commande suivante:
gcloud workflows executions wait EXECUTION_ID
Remplacez
EXECUTION_ID
par l'ID de la tentative d'exécution.La commande attend la fin de la tentative d'exécution, puis renvoie les résultats.
Pour attendre la fin de la dernière exécution avant de renvoyer le résultat, saisissez la commande suivante:
gcloud workflows executions wait-last
Si vous avez effectué une tentative d'exécution précédente dans la même session
gcloud
, la commande attend la fin de la tentative d'exécution précédente, puis renvoie les résultats de l'exécution terminée. S'il n'existe aucune tentative précédente,gcloud
renvoie l'erreur suivante:ERROR: (gcloud.workflows.executions.wait-last) [NOT FOUND] There are no cached executions available.
Pour obtenir l'état de la dernière exécution, saisissez la commande suivante:
gcloud workflows executions describe-last
Si vous avez effectué une tentative d'exécution précédente dans la même session
gcloud
, la commande renvoie les résultats de la dernière exécution, même si elle est en cours d'exécution. Si aucune tentative précédente n'existe,gcloud
renvoie l'erreur suivante:ERROR: (gcloud.beta.workflows.executions.describe-last) [NOT FOUND] There are no cached executions available.