Kurzanleitung: Clientbibliotheken verwenden

In dieser Kurzanleitung erfahren Sie, wie Sie mit einer Clientbibliothek einen Workflow ausführen und die Ausführungsergebnisse aufrufen. Im Beispiel wird davon ausgegangen, dass Sie den Workflow myFirstWorkflow, mit der Cloud Console oder dem gcloud-Befehlszeilentool bereitgestellt haben.

Hinweis

  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. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

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

  6. Aktivieren Sie die Workflows API.

    Workflows-API aktivieren
  7. Rufen Sie in der Cloud Console die Seite Dienstkonten auf.

    Zur Seite "Dienstkonto erstellen"
  8. Wählen Sie Dienstkonto erstellen.
  9. Geben Sie im Feld Dienstkontoname einen Namen ein.
  10. Klicken Sie auf Erstellen.
  11. Wählen Sie in der Liste Rolle die Option Logging > Logautor aus.

    Hinweis: Über das Feld Rolle wird Ihr Dienstkonto für den Zugriff auf Ressourcen autorisiert. Weisen Sie die Rolle roles/logging.logWriter zu, um Logs an Cloud Logging zu senden. Wenn Sie eine Produktionsanwendung entwickeln, gewähren Sie immer die geringstmöglichen Rollen. Weitere Informationen finden Sie unter Dienstkonten Rollen zuweisen. Eine Liste der Workflows-Rollen finden Sie in der Referenz zur Zugriffssteuerung.
  12. Klicken Sie auf Weiter.
  13. Klicken Sie auf Fertig.

Beispielcode abrufen

  1. Klonen Sie das Beispiel-Repository auf Ihren lokalen Computer:

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

    Sie können auch das Beispiel als ZIP-Datei herunterladen und extrahieren.

  2. Wechseln Sie in das Verzeichnis, das den Cloud Functions-Beispielcode enthält:

    cd nodejs-docs-samples/workflows/quickstart/
  3. Sehen Sie sich den Beispielcode an:

    const {ExecutionsClient} = require('@google-cloud/workflows');
    const client = new ExecutionsClient();
    
    /**
     * Sleeps the process N number of milliseconds.
     * @param {Number} ms The number of milliseconds to sleep.
     */
    function sleep(ms) {
      return new Promise(resolve => {
        setTimeout(resolve, ms);
      });
    }
    
    // Execute workflow
    try {
      const createExecutionRes = await client.createExecution({
        parent: client.workflowPath(projectId, location, workflow),
      });
      const executionName = createExecutionRes[0].name;
      console.log(`Created execution: ${executionName}`);
    
      // Wait for execution to finish, then print results.
      let executionFinished = false;
      let backoffDelay = 1000; // Start wait with delay of 1,000 ms
      console.log('Poll every second for result...');
      while (!executionFinished) {
        const [execution] = await client.getExecution({
          name: executionName,
        });
        executionFinished = execution.state !== 'ACTIVE';
    
        // If we haven't seen the result yet, wait a second.
        if (!executionFinished) {
          console.log('- Waiting for results...');
          await sleep(backoffDelay);
          backoffDelay *= 2; // Double the delay to provide exponential backoff.
        } else {
          console.log(`Execution finished with state: ${execution.state}`);
          console.log(execution.result);
          return execution.result;
        }
      }
    } catch (e) {
      console.error(`Error executing workflow: ${e}`);
    }

Das Programm führt Folgendes aus:

  1. Richtet die Clientbibliotheken für Workflows ein.
  2. Führt einen Workflow aus.
  3. Führt die Ausführung des Workflows mit exponentiellem Backoff aus, bis die Ausführung beendet wird.
  4. Gibt die Ausführungsergebnisse aus.

Abhängigkeiten installieren

npm install

Beispiel ausführen

Führen Sie das folgende Skript aus, um das Beispiel auszuführen:

node . PROJECT_ID [CLOUD_REGION] [WORKFLOW_NAME]

Ersetzen Sie die folgenden Befehlszeilenargumente:

  • PROJECT_ID (erforderlich): Projekt-ID des Cloud Platform-Projekts
  • CLOUD_REGION: Cloud-Speicherort für den Workflow (Standard: us-central1)
  • WORKFLOW_NAME: ID des Workflows (Standard: myFirstWorkflow)

Beispiel:

node . my-custom-project us-central1 userSignupWorkflow

Beispielausgabe:

Execution finished with state: SUCCEEDED
["Sunday","Sunday in the Park with George","Sunday shopping","Sunday Bloody Sunday","Sunday Times Golden Globe Race","Sunday All Stars","Sunday Night (South Korean TV series)","Sunday Silence","Sunday Without God","Sunday Independent (Ireland)"]

Bereinigen

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

  1. Rufen Sie in der Cloud Console die Seite Workflows auf.
    Workflows

  2. Klicken Sie auf Delete (Löschen).

  3. Geben Sie in der angezeigten Eingabeaufforderung den Namen des Workflows ein.

  4. Wählen Sie Löschen aus.

Nächste Schritte