Guide de démarrage rapide: créer un workflow à l'aide de la CLI gcloud

Créer un workflow à l'aide de la CLI gcloud

Ce guide de démarrage rapide explique comment créer, déployer et exécuter votre premier workflow à l'aide de la CLI Google Cloud. Le workflow envoie une requête à un exemple d'API, puis utilise la réponse pour créer et envoyer une requête à une API publique. Le workflow renvoie ensuite la réponse de l'API publique.

Pour obtenir la liste de toutes les commandes de CLI gcloud de Workflows, consultez la page de référence de la CLI gcloud.

Avant de commencer

Certaines étapes de ce document risquent de ne pas fonctionner correctement si votre organisation applique des contraintes à votre environnement Google Cloud. Dans ce cas, vous ne pourrez peut-être pas effectuer des tâches telles que la création d'adresses IP publiques ou de clés de compte de service. Si vous effectuez une requête qui renvoie une erreur concernant des contraintes, consultez la section Développer des applications dans un environnement Google Cloud limité.

  1. 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.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  4. Installez et initialisez Google Cloud CLI.
  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet.

  7. Installez et initialisez Google Cloud CLI.
  8. Activer l'API Workflows

    gcloud services enable workflows.googleapis.com
  9. Créez le compte de service et attribuez-lui un nom. Exemple : sa-name
    gcloud iam service-accounts create sa-name
  10. Attribuez le rôle roles/logging.logWriter au compte de service.
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"
    

    Remplacez PROJECT_ID par l'ID de votre projet.

Créer, déployer et exécuter un workflow

  1. Dans votre répertoire d'accueil, créez un fichier nommé myFirstWorkflow.yaml ou myFirstWorkflow.json.

  2. Copiez et collez le workflow suivant dans le nouveau fichier, puis enregistrez-le:

    YAML

    main:
        params: [input]
        steps:
        - checkInputExists:
            switch:
                - condition: ${input != null}
                  next: checkSearchTermInInput
            next: getCurrentTime
        - checkSearchTermInInput:
            switch:
                - condition: ${"searchTerm" in input}
                  assign:
                    - searchTerm: ${input.searchTerm}
                  next: readWikipedia
        - getCurrentTime:
            call: http.get
            args:
                url: https://us-central1-workflowsample.cloudfunctions.net/datetime
            result: currentDateTime
        - setFromCallResult:
            assign:
                - searchTerm: ${currentDateTime.body.dayOfTheWeek}
        - readWikipedia:
            call: http.get
            args:
                url: https://en.wikipedia.org/w/api.php
                query:
                    action: opensearch
                    search: ${searchTerm}
            result: wikiResult
        - returnOutput:
                return: ${wikiResult.body[1]}

    JSON

    {
      "main": {
        "params": [
          "input"
        ],
        "steps": [
          {
            "checkInputExists": {
              "switch": [
                {
                  "condition": "${input != null}",
                  "next": "checkSearchTermInInput"
                }
              ],
              "next": "getCurrentTime"
            }
          },
          {
            "checkSearchTermInInput": {
              "switch": [
                {
                  "condition": "${\"searchTerm\" in input}",
                  "assign": [
                    {
                      "searchTerm": "${input.searchTerm}"
                    }
                  ],
                  "next": "readWikipedia"
                }
              ]
            }
          },
          {
            "getCurrentTime": {
              "call": "http.get",
              "args": {
                "url": "https://us-central1-workflowsample.cloudfunctions.net/datetime"
              },
              "result": "currentDateTime"
            }
          },
          {
            "setFromCallResult": {
              "assign": [
                {
                  "searchTerm": "${currentDateTime.body.dayOfTheWeek}"
                }
              ]
            }
          },
          {
            "readWikipedia": {
              "call": "http.get",
              "args": {
                "url": "https://en.wikipedia.org/w/api.php",
                "query": {
                  "action": "opensearch",
                  "search": "${searchTerm}"
                }
              },
              "result": "wikiResult"
            }
          },
          {
            "returnOutput": {
              "return": "${wikiResult.body[1]}"
            }
          }
        ]
      }
    }

    Ce workflow appelle un exemple d'API. Le jour de la semaine renvoyé est transmis à l'API Wikipédia. Les articles pertinents sur Wikipédia concernant le jour en cours de la semaine sont renvoyés.

  3. Déployez le workflow et associez-le au compte de service spécifié:

    gcloud workflows deploy myFirstWorkflow --source=myFirstWorkflow.EXTENSION \
        --service-account=sa-name@PROJECT_ID.iam.gserviceaccount.com
    

    Remplacez les éléments suivants :

    • EXTENSION: extension de fichier de votre workflow. Utilisez yaml pour la version YAML ou json pour la version JSON.
    • PROJECT_ID : ID de votre projet.
  4. Exécutez le workflow :

    gcloud workflows run myFirstWorkflow \
        --data='DAY_OF_WEEK'
    

    Remplacez DAY_OF_WEEK par votre terme de recherche, par exemple, {"searchTerm":"Tuesday"}. Si vous saisissez {}, le jour de la semaine en cours (en heure GMT) est récupéré.

    Cette méthode renvoie les résultats de la tentative d'exécution. Le résultat ressemble à ce qui suit:

    argument: 'null'
    endTime: '2020-06-23T16:21:35.266171131Z'
    name: projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/f72bc6d4-5ea0-4dfb-bb14-2dae82303120
    result: '["Tuesday","Tuesday Weld","Tuesday Night Music Club","Tuesday (ILoveMakonnen
      song)","Tuesdays with Morrie","Tuesday Group","Tuesday Knight","Tuesday (Burak Yeter
      song)","Tuesday Morning Quarterback","Tuesday Maybe"]'
    startTime: '2020-06-23T16:21:34.826993288Z'
    state: SUCCEEDED
    workflowVersionId: '1'
    

Vous avez déployé et exécuté votre premier workflow !

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page soient facturées sur votre compte Google Cloud :

  1. Supprimez le workflow que vous avez créé:

    gcloud workflows delete myFirstWorkflow
    
  2. Lorsque vous êtes invité à poursuivre l'opération, saisissez y.

Le workflow est supprimé.

Étapes suivantes