Cette page a été traduite par l'API Cloud Translation.
Switch to English

Transmettre des arguments d'environnement d'exécution dans une requête d'exécution

Cette page explique comment transmettre des arguments d'exécution dans une requête d'exécution de workflow et comment y accéder à l'aide de variables de workflow.

Configurer un workflow qui reçoit les arguments d'exécution

Vous pouvez créer des workflows qui utilisent des arguments d'exécution que vous leur transmettez dans le cadre d'une requête d'exécution. Pour configurer votre workflow afin de recevoir des arguments d'exécution, procédez comme suit:

  1. Suivez les étapes pour créer un workflow ou choisissez un workflow existant à mettre à jour, mais ne le déployez pas encore.

  2. Ajoutez un champ params à la définition du workflow:

    main:
      params: [DICTIONARY_NAME]
      steps:
        ...
    

    Remplacez DICTIONARY_NAME par le nom du dictionnaire qui stocke les noms des paramètres et les valeurs d'argument que vous transmettez au workflow.

    Par exemple, le workflow suivant renvoie un message d'accueil "Hello" à une personne dont le prénom et le nom que vous transmettez en tant qu'arguments d'exécution:

    main:
      params: [args]
      steps:
        - step1:
            assign:
              - OutputVar: ${"Hello, " + args.firstName + " " + args.lastName + "!"}
        - step2:
            return: ${OutputVar}
    
  3. Déployez votre workflow pour terminer sa création ou sa mise à jour.

Transmettre des données dans une requête d'exécution

Une fois votre workflow configuré pour recevoir des arguments d'exécution, vous pouvez transmettre une chaîne au format JSON, telle que {"firstName":"Workflows","lastName":"User"}, au workflow dans une requête d'exécution:

gcloud

Ajoutez l'indicateur --data à la commande gcloud workflows execute que vous utilisez pour exécuter votre workflow. Cette option prend une chaîne JSON de vos données. Par exemple, pour transmettre un firstName et un lastName à l'exemple de workflow précédent:

gcloud workflows run WORKFLOW_NAME \
--data='{"firstName":"FIRST","lastName":"LAST"}'

Remplacez l'élément suivant :

  • WORKFLOW_NAME: nom du workflow
  • FIRST: chaîne que vous souhaitez transmettre à votre workflow pour firstName
  • LAST: chaîne que vous souhaitez transmettre à votre workflow pour lastName

Le résultat doit être semblable à ce qui suit:

Waiting for execution [EXECUTION_ID] to complete...done
.
argument: '{"firstName":"Workflows","lastName":"User"}'
endTime: '2020-11-18T23:28:36.134741660Z'
name: projects/PROJECT_NUMBER/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID
result: '"Hello, Workflows User!"'
startTime: '2020-11-18T23:28:36.003269841Z'
state: SUCCEEDED
workflowRevisionId: 000001-ae2

Console

  1. Sélectionnez le workflow que vous souhaitez exécuter sur la page "Workflows" de Google Cloud Console:
    Accéder à la page "Workflows"

  2. À partir de la page des détails du workflow, cliquez sur Exécuter.

  3. Sur la page "Exécuter le workflow" qui s'affiche, saisissez une chaîne JSON contenant les noms des paramètres et les valeurs d'argument, tels que {"firstName":"Workflows","lastName":"User"}, dans la zone "Entrée" :

    Zone d'entrée contenant l'exemple de chaîne JSON

  4. Cliquez sur "Exécuter". Cloud Console affiche les résultats de l'exécution:

    Résultats de l'exécution, affichant la sortie "Hello, Workflows User!"

API REST

  1. Ajoutez l'option data à la commande que vous utilisez pour exécuter votre workflow. La valeur de data est une chaîne au format JSON avec un argument dont la valeur est une ou plusieurs paires de valeurs de paramètre échappées. Par exemple, pour transmettre des valeurs firstName et lastName à l'exemple de workflow précédent:

    curl --request POST --header "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    --header 'Content-Type: application/json' --data '{"argument":"{\"firstName\":\"FIRST\",\"lastName\":\"LAST\"}"}' \
    "https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/workflows/WORKFLOW_NAME/executions"
    

    Remplacez l'élément suivant :

    • PROJECT_ID: nom de votre projet
    • WORKFLOW_NAME: nom du workflow
    • FIRST: chaîne que vous souhaitez transmettre à votre workflow pour firstName
    • LAST: chaîne que vous souhaitez transmettre à votre workflow pour lastName

    Le résultat doit être semblable à ce qui suit:

    {
      "name": "projects/PROJECT_NUMBER/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID",
      "startTime": "2020-11-09T23:51:31.765761331Z",
      "state": "ACTIVE",
      "argument": "{\"firstName\":\"Workflows\",\"lastName\":\"User\"}",
      "workflowRevisionId": "000001-08c"
    }
     ```
    
  2. Pour obtenir les résultats de l'exécution, exécutez la commande suivante:

    curl --request GET --header "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    --header 'Content-Type: application/json' \
    "https://workflowexecutions.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/workflows/WORKFLOW_NAME/executions/EXECUTION_ID"
    

    Remplacez EXECUTION_ID par l'ID du résultat renvoyé par votre première commande.

    Ce résultat contient des lignes semblables à celles-ci:

    "argument": "{\"firstName\":\"Workflows\",\"lastName\":\"User\"}",
    "result": "\"Hello, Workflows User!\"",
    

Pour en savoir plus sur l'exécution d'un workflow à l'aide de l'API REST, consultez la page Exécuter un workflow.

Étape suivante