L'exécution d'un workflow exécute la définition actuelle du workflow associé au workflow.
Vous pouvez transmettre des arguments d'environnement d'exécution dans une requête d'exécution de workflow et y accéder à l'aide d'une variable de workflow. Pour en savoir plus, consultez la section Transmettre des arguments d'environnement 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 en savoir plus sur la résolution des problèmes, consultez Développer des applications dans un environnement Google Cloud limité.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Si un workflow accède à d'autres Google Cloud ressources, assurez-vous qu'il est associé à un compte de service disposant des autorisations appropriées.
Pour savoir quel compte de service est associé à un workflow existant, consultez la page 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 lui accorder l'identité du compte de service que vous rattacherez à la ressource. Pour en savoir plus, consultez la section Autorisations de compte de service.
- Déployez 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 de différentes manières:
- Google Cloud Console
- à l'aide de la Google Cloud CLI dans votre terminal ou Cloud Shell ;
- En envoyant une requête directe à l'API Workflows
Vous pouvez également exécuter un workflow à l'aide des bibliothèques clientes Cloud. Pour en savoir plus, consultez la section Exécuter un workflow à l'aide des bibliothèques clientes Cloud.
Console
Pour exécuter un workflow, dans la console Google Cloud, accédez à la page Workflows:
Sur la page Workflows (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 éventuellement spécifier le niveau de journalisation des appels que vous souhaitez appliquer à l'exécution du workflow. Dans la liste Niveau de journalisation des 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.
Vous pouvez éventuellement spécifier le niveau d'historique d'exécution que vous souhaitez appliquer à l'exécution du workflow. Dans la liste Historique des exécutions, sélectionnez l'une des options suivantes:
- Hériter du workflow: appliquez le paramètre d'historique des exécutions du workflow. Il s'agit de l'option par défaut.
- Standard: activez l'historique d'exécution de base.
- Détaillé: activez l'historique d'exécution détaillé, y compris les valeurs de variable dans le champ d'application et le nombre d'itérations attendu.
Cliquez sur Exécuter.
Sur la page Détails de l'exécution, vous pouvez consulter les résultats de l'exécution, y compris toute sortie, l'ID et l'état de l'exécution, ainsi que l'étape actuelle ou finale de l'exécution du workflow. Pour en savoir plus, consultez la section Accéder aux résultats de l'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 à l'aide de la commande
gcloud workflows run
ou de la commandegcloud workflows execute
:Exécutez le workflow et attendez la fin de l'exécution:
gcloud workflows run WORKFLOW_NAME \ --call-log-level=CALL_LOGGING_LEVEL \ --execution-history-level="EXECUTION_HISTORY_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 \ --execution-history-level="EXECUTION_HISTORY_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.
EXECUTION_HISTORY_LEVEL
(facultatif): niveau de l'historique d'exécution à appliquer lors de l'exécution. Peut être une valeur parmi :none
: aucun niveau d'historique des exécutions n'est spécifié. Il s'agit de la valeur par défaut. Si aucun niveau d'historique d'exécution n'est spécifié pour une exécution, il est déterminé par le niveau appliqué au workflow. Si les niveaux sont différents, le paramètre appliqué au niveau de l'exécution remplace le paramètre appliqué au niveau du workflow pour cette exécution.execution-history-basic
: active l'historique d'exécution de base.execution-history-detailed
: activez l'historique d'exécution détaillé, y compris les valeurs de variable dans le champ d'application et le nombre d'itérations prévu.
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
spécifiant l'étape finale du workflow d'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
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
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_NUMBER
: numéro de votre projet Google Cloudrépertorié sur la page IAM et paramètres d'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 lui 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 de valeurs de paramètre 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 section 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 prévaut 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
: 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.
BACKLOG_EXECUTION
: facultative. Si la valeur esttrue
, l'exécution n'est pas mise en file d'attente lorsque le quota de simultanéité est épuisé. Pour en savoir plus, consultez la section Gérer le report des exécutions.EXECUTION_HISTORY_LEVEL
: facultative. Niveau de l'historique des exécutions à appliquer lors de l'exécution. Pour en savoir plus, consultez la section Afficher l'historique des étapes d'exécution. Choisissez l'une des options suivantes :EXECUTION_HISTORY_LEVEL_UNSPECIFIED
: aucun niveau d'historique d'exécution n'est spécifié. Il s'agit de l'option par défaut. Si aucun niveau d'historique d'exécution n'est spécifié pour une exécution, il est déterminé par le niveau appliqué au workflow. Si les niveaux sont différents, le paramètre appliqué au niveau de l'exécution remplace le paramètre appliqué au niveau du workflow pour cette exécution.EXECUTION_HISTORY_BASIC
: active l'historique d'exécution de base.EXECUTION_HISTORY_ADVANCED
: activez l'historique d'exécution détaillé, y compris les valeurs de variable dans le champ d'application et le nombre d'itérations prévu.
Corps JSON de la requête :
{ "argument": "{\"PARAMETER\":\"VALUE\"}", "callLogLevel": "CALL_LOGGING_LEVEL", "disableConcurrencyQuotaOverflowBuffering": "BACKLOG_EXECUTION", "executionHistoryLevel": "EXECUTION_HISTORY_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", "executionHistoryLevel": "EXECUTION_HISTORY_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 à la suivante: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, puis renvoyer le résultat de l'exécution terminée, 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. Si aucune tentative précédente n'existe,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.
Filtrer les exécutions
Vous pouvez appliquer des filtres à la liste des exécutions de workflow renvoyées par la méthode workflows.executions.list
.
Vous pouvez filtrer les données en fonction des champs suivants:
createTime
disableOverflowBuffering
duration
endTime
executionId
label
startTime
state
stepName
workflowRevisionId
Par exemple, pour filtrer sur un libellé (labels."fruit":"apple"
), vous pouvez envoyer une requête API semblable à la suivante:
GET https://workflowexecutions.googleapis.com/v1/projects/MY_PROJECT/locations/MY_LOCATION/workflows/MY_WORKFLOW/executions?view=full&filter=labels.%22fruit%22%3A%22apple%22"
Où :
view=full
spécifie une vue définissant les champs à renseigner dans les exécutions renvoyées. Dans ce cas, toutes les donnéeslabels.%22fruit%22%3A%22apple%22
correspond à la syntaxe de filtre encodée au format URL.
Pour en savoir plus, consultez la section Filtrage AIP-160.
Gérer le report d'exécution
Vous pouvez utiliser le journalisation différée de l'exécution pour éviter les nouvelles tentatives côté client, supprimer les retards d'exécution et maximiser le débit. Les exécutions en attente s'exécutent automatiquement dès que le quota de simultanéité d'exécution est disponible.
Il existe un nombre maximal d'exécutions de workflow actives pouvant s'exécuter simultanément. Une fois ce quota épuisé, et si le report d'exécution est désactivé ou si le quota des exécutions différées est atteint, toutes les nouvelles exécutions échouent avec un code d'état HTTP 429 Too many requests
. Lorsque le journalisation des exécutions est activée, les nouvelles exécutions aboutissent et sont créées avec l'état QUEUED
. Dès que le quota de simultanéité d'exécution est disponible, les exécutions s'exécutent automatiquement et passent à l'état ACTIVE
.
Par défaut, le report d'exécution est activé pour toutes les requêtes (y compris celles déclenchées par Cloud Tasks) avec les exceptions suivantes:
- Lorsque vous créez une exécution à l'aide d'un connecteur
executions.run
ouexecutions.create
dans un workflow, le report des exécutions est désactivé par défaut. Vous pouvez le configurer en définissant explicitement le champdisableConcurrencyQuotaOverflowBuffering
de l'exécution surfalse
. - Pour les exécutions déclenchées par Pub/Sub, le journalisation des exécutions est désactivée et ne peut pas être configurée.
Veuillez noter les points suivants :
- Les exécutions mises en file d'attente sont démarrées dans l'ordre FIFO (premier entré, premier sorti), dans la mesure du possible.
- Un champ de code temporel
createTime
indique quand une exécution est créée. Le code temporelstartTime
indique quand une exécution est automatiquement supprimée de la file d'attente de la file d'attente et commence à s'exécuter. Pour les exécutions qui ne sont pas en file d'attente, les deux valeurs d'horodatage sont identiques. - La limite des exécutions en attente peut être observée à l'aide de la métrique de quota
workflowexecutions.googleapis.com/executionbacklogentries
. Pour en savoir plus, consultez la page Afficher et gérer les quotas.
Désactiver le journalisation de l'exécution
Vous pouvez désactiver le journalisation des exécutions en définissant un indicateur lorsque vous utilisez Google Cloud CLI. Exemple :
gcloud workflows execute WORKFLOW_NAME --disable-concurrency-quota-overflow-buffering
Vous pouvez également désactiver le report d'exécution en définissant le champ disableConcurrencyQuotaOverflowBuffering
sur true
dans le corps de la requête JSON lorsque vous envoyez une requête d'exécution à l'API REST Workflows.
Exemple :
{ "argument": {"arg1":"value1"}, "callLogLevel": "LOG_NONE", "disableConcurrencyQuotaOverflowBuffering": true }
Pour en savoir plus, consultez la page Exécuter un workflow.
Étape suivante
- Accéder aux résultats d'exécution d'un workflow
- Contrôler l'ordre d'exécution des étapes d'un workflow
- Envoyer des journaux d'exécution à Cloud Logging
- Mettre à jour un workflow existant