Kurzanleitung: Workflow mit Terraform erstellen

In dieser Kurzanleitung erfahren Sie, wie Sie mit Terraform Ihren ersten Workflow erstellen, bereitstellen und ausführen. Terraform ist ein Open-Source-Tool von HashiCorp, mit dem die Cloud-Infrastruktur mithilfe von Code vorhersehbar erstellt, geändert und verbessert werden kann. In dieser Kurzanleitung sendet der Workflow eine Anfrage an eine Beispiel-API und verwendet die Antwort zum Erstellen und Senden einer Anfrage an eine öffentliche API. Der Workflow gibt dann die Antwort der öffentlichen API zurück.

In diesem Dokument mit Terraform werden Sie:

  1. Workflows API aktivieren
  2. Dienstkonto für den Broker erstellen
  3. Workflow mit Terraform definieren und bereitstellen
  4. Führen Sie den Workflow mit dem gcloud-Befehlszeilentool aus.

Ressourcen und Anleitungen zur Verwendung von Terraform finden Sie unter Terraform mit Google Cloud verwenden.

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 Ihr Projekt aktiviert ist.

  4. Installieren und initialisieren Sie das Cloud SDK.
  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 Ihr Projekt aktiviert ist.

  7. Installieren und initialisieren Sie das Cloud SDK.
  8. Aktivieren Sie Cloud Shell in der Cloud Console.

    Cloud Shell aktivieren

    Unten in der Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Cloud SDK einschließlich des gcloud-Befehlszeilentools vorinstalliert ist. Die Werte sind bereits für Ihr aktuelles Projekt festgelegt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  9. Cloud Shell ist in Terraform bereits integriert.

Terraform-Konfigurationsdatei erstellen

Erstellen Sie eine Terraform-Konfigurationsdatei namens main.tf, um die in diesem Projekt verwendeten Google Cloud-Ressourcen aufzunehmen.

  1. Erstellen Sie ein Verzeichnis:
    mkdir terraform
  2. Wechseln Sie in das Verzeichnis terraform:
    cd terraform
  3. Fügen Sie dem Verzeichnis die neue Datei main.tf hinzu:
    nano main.tf
  4. Fügen Sie der main.tf-Datei Folgendes hinzu:
    1. Weisen Sie die ID des Projekts zu:
      provider "google" {
       project = "PROJECT_ID"
      }
      

      Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

    2. Workflows API aktivieren:
      resource "google_project_service" "workflows" {
        service            = "workflows.googleapis.com"
        disable_on_destroy = false
      }
    3. Dienstkonto für den Broker erstellen
      resource "google_service_account" "workflows_service_account" {
        account_id   = "sample-workflows-sa"
        display_name = "Sample Workflows Service Account"
      }
    4. Definieren Sie den Workflow und stellen Sie ihn bereit:
      resource "google_workflows_workflow" "workflows_example" {
        name            = "sample-workflow"
        region          = "us-central1"
        description     = "A sample workflow"
        service_account = google_service_account.workflows_service_account.id
        source_contents = <<-EOF
        # This is a sample workflow, feel free to replace it with your source code
        #
        # This workflow does the following:
        # - reads current time and date information from an external API and stores
        #   the response in CurrentDateTime variable
        # - retrieves a list of Wikipedia articles related to the day of the week
        #   from CurrentDateTime
        # - returns the list of articles as an output of the workflow
        # FYI, In terraform you need to escape the $$ or it will cause errors.
      
        - getCurrentTime:
            call: http.get
            args:
                url: https://us-central1-workflowsample.cloudfunctions.net/datetime
            result: CurrentDateTime
        - readWikipedia:
            call: http.get
            args:
                url: https://en.wikipedia.org/w/api.php
                query:
                    action: opensearch
                    search: $${CurrentDateTime.body.dayOfTheWeek}
            result: WikiResult
        - returnOutput:
            return: $${WikiResult.body[1]}
      EOF
      
        depends_on = [google_project_service.workflows]
      }

Workflow bereitstellen und ausführen

Stellen Sie Ihre Ressourcen mit Terraform bereit, um einen Workflow zu erstellen.

  1. Initialisieren Sie Terraform im Verzeichnis:

    terraform init
    
  2. Prüfen Sie, ob die vorgeschlagenen Änderungen mit Terraform dem erwarteten Plan entsprechen:
    terraform plan
    

    Sie können die Notiz zum Verwenden der Option -out ignorieren.

  3. Erstellen Sie den Workflow:

    terraform apply
    
  4. Geben Sie bei der Eingabeaufforderung Wert eingeben yes ein, um mit dem Erstellen der Ressourcen fortzufahren.
  5. Prüfen Sie, ob ein Workflow erstellt wird:
    gcloud workflows list --location us-central1
    

    Die Ausgabe sollte in etwa so aussehen:

    NAME                                                                          STATE   REVISION_ID  UPDATE_TIME
    projects/project-name/locations/us-central1/workflows/sample-workflow         ACTIVE  000001-f9a   2021-06-24T13:38:58.353765906Z
    

  6. Optional können Sie den Workflow ausführen:
    gcloud workflows execute sample-workflow
    

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

So können Sie alle Ressourcen löschen, die Sie mit Terraform erstellt haben:

terraform destroy

Sie können auch den von Ihnen erstellten Workflow löschen.

  1. Löschen Sie den von Ihnen erstellten Workflow:
    gcloud workflows delete sample-workflow
  2. Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie y ein.

Der Workflow wurde gelöscht.

Nächste Schritte