Kurzanleitung: Workflow mit der gcloud-Befehlszeile erstellen

Workflow mit der gcloud-Befehlszeile erstellen

In dieser Kurzanleitung erfahren Sie, wie Sie Ihren ersten Workflow über die Google Cloud-Befehlszeile erstellen, bereitstellen und ausführen. Der Workflow sendet eine Anfrage an eine Beispiel-API und verwendet die Antwort, um eine Anfrage zu erstellen und an eine öffentliche API zu senden. Der Workflow gibt dann die Antwort der öffentlichen API zurück.

Eine Liste aller Workflows für die gcloud-Befehlszeile finden Sie auf der Referenzseite zur gcloud-Befehlszeile.

Hinweis

Einige der Schritte in diesem Dokument funktionieren möglicherweise nicht richtig, wenn Ihre Organisation Einschränkungen auf Ihre Google Cloud-Umgebung anwendet. In diesem Fall können Sie möglicherweise keine Aufgaben wie das Erstellen öffentlicher IP-Adressen oder Dienstkontoschlüssel ausführen. Wenn Sie eine Anfrage stellen, die einen Fehler zu Einschränkungen zurückgibt, lesen Sie, wie Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln werden.

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  4. Installieren und initialisieren Sie Google Cloud CLI.
  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  7. Installieren und initialisieren Sie Google Cloud CLI.
  8. Workflows API aktivieren

    gcloud services enable workflows.googleapis.com
  9. Erstellen Sie das Dienstkonto und geben Sie ihm einen Namen; Beispiel: sa-name.
    gcloud iam service-accounts create sa-name
  10. Weisen Sie dem Dienstkonto die Rolle roles/logging.logWriter zu.
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"
    

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

Workflow erstellen, bereitstellen und ausführen

  1. Erstellen Sie in Ihrem Stammverzeichnis eine neue Datei mit dem Namen myFirstWorkflow.yaml oder myFirstWorkflow.json.

  2. Kopieren Sie den folgenden Workflow, fügen Sie ihn in die neue Datei ein und speichern Sie ihn:

    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]}"
            }
          }
        ]
      }
    }

    Mit diesem Workflow wird eine Beispiel-API aufgerufen. Der zurückgegebene Wochentag wird an die Wikipedia API übergeben. Es werden relevante Artikel auf Wikipedia zum aktuellen Wochentag zurückgegeben.

  3. Stellen Sie den Workflow bereit und verknüpfen Sie ihn mit dem angegebenen Dienstkonto:

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

    Ersetzen Sie Folgendes:

    • EXTENSION: Die Dateierweiterung für Ihren Workflow; yaml für die YAML-Version oder json für die JSON-Version
    • PROJECT_ID: Ihre Projekt-ID
  4. Führen Sie den Workflow aus:

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

    Ersetzen Sie DAY_OF_WEEK durch Ihren Suchbegriff, z. B. {"searchTerm":"Tuesday"}. Wenn Sie {} eingeben, wird der aktuelle Wochentag (in GMT) abgerufen.

    Dies gibt die Ergebnisse des Ausführungsversuchs zurück. Die Ausgabe sieht in etwa so aus:

    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'
    

Sie haben Ihren ersten Workflow bereitgestellt und ausgeführt.

Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden.

  1. Löschen Sie den von Ihnen erstellten Workflow:

    gcloud workflows delete myFirstWorkflow
    
  2. Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie y ein.

Der Workflow wurde gelöscht.

Weitere Informationen