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

Dans ce guide de démarrage rapide, vous allez découvrir comment créer, déployer et exécuter votre premier workflow à l'aide de Google Cloud CLI. L'exemple de workflow envoie une requête à une API publique, puis renvoie la réponse de l'API.

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

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é.

  1. 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.
  2. Install the Google Cloud CLI.

  3. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à gcloud CLI avec votre identité fédérée.

  4. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Install the Google Cloud CLI.

  8. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à gcloud CLI avec votre identité fédérée.

  9. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  10. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Activez l'API Flows.

    gcloud services enable workflows.googleapis.com
  13. Créez le compte de service et attribuez-lui un nom. Exemple : sa-name
    gcloud iam service-accounts create sa-name
  14. Pour envoyer des journaux à Cloud Logging, 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"

    Pour en savoir plus sur les rôles et les autorisations des comptes de service, consultez Accorder à un workflow l'autorisation d'accéder aux ressourcesGoogle Cloud .

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

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

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

      YAML

      main:
        params: [input]
        steps:
          - checkSearchTermInInput:
              switch:
                - condition: '${"searchTerm" in input}'
                  assign:
                    - searchTerm: '${input.searchTerm}'
                  next: readWikipedia
          - getLocation:
              call: sys.get_env
              args:
                name: GOOGLE_CLOUD_LOCATION
              result: location
          - setFromCallResult:
              assign:
                - searchTerm: '${text.split(location, "-")[0]}'
          - 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": [
            {
              "checkSearchTermInInput": {
                "switch": [
                  {
                    "condition": "${\"searchTerm\" in input}",
                    "assign": [
                      {
                        "searchTerm": "${input.searchTerm}"
                      }
                    ],
                    "next": "readWikipedia"
                  }
                ]
              }
            },
            {
              "getLocation": {
                "call": "sys.get_env",
                "args": {
                  "name": "GOOGLE_CLOUD_LOCATION"
                },
                "result": "location"
              }
            },
            {
              "setFromCallResult": {
                "assign": [
                  {
                    "searchTerm": "${text.split(location, \"-\")[0]}"
                  }
                ]
              }
            },
            {
              "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]}"
              }
            }
          ]
        }
      }
      

      À moins que vous ne saisissiez votre propre terme de recherche, ce workflow utilise votre emplacementGoogle Cloud pour construire un terme de recherche qu'il transmet à l'API Wikipédia. Une liste d'articles Wikipédia associés est renvoyée.

    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='SEARCH_TERM'
      

      Remplacez SEARCH_TERM par votre terme de recherche, par exemple {"searchTerm":"North"}. Si vous saisissez {}, votre emplacement Google Cloudest utilisé pour construire un terme de recherche.

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

      argument: '{"searchTerm":"North"}'
      duration: 0.210616856s
      endTime: '2023-05-10T21:56:39.465899376Z'
      name: projects/734581694262/locations/us-central1/workflows/workflow-1/executions/eae31f11-a5c3-47e2-8014-05b400820a79
      result: '["North","North America","Northern Ireland","North Korea","North Macedonia","North
        Carolina","Northrop Grumman B-2 Spirit","Northrop F-5","Northern Cyprus","North
        Dakota"]'
      startTime: '2023-05-10T21:56:39.255282520Z'
      state: SUCCEEDED
      status:
        currentSteps:
        - routine: main
          step: returnOutput
      workflowRevisionId: 000001-ac2
      

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

    Effectuer un nettoyage

    Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud contenant les ressources.

    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é.

    Étape suivante