Google Cloud-Dienst mit einem Connector aufrufen

Mit Workflows werden Connectors veröffentlicht, um den Zugriff auf andere Google Cloud APIs innerhalb eines Workflows zu erleichtern und Ihre Workflows in diese Google Cloud-Produkte einzubinden. Beispielsweise können Sie Connectors verwenden, um Pub/Sub-Nachrichten zu veröffentlichen, Daten in einer Firestore-Datenbank zu lesen oder zu schreiben oder Authentifizierungsschlüssel von Secret Manager abzurufen. Eine detaillierte Beschreibung der verfügbaren Connectors finden Sie unter Referenz zu Connectors.

Connectors vereinfachen den Aufruf von Diensten, da sie die Formatierung von Anfragen für Sie verarbeiten und Methoden und Argumente bereitstellen. Sie müssen also die Details einer Google Cloud API nicht kennen. Weitere Informationen zur Authentifizierung und zum Verhalten bei Wiederholungsversuchen und Vorgängen mit langer Ausführungszeit finden Sie unter Connectors verstehen.

Connector-Aufruf aufrufen

Ähnlich wie beim Aufruf eines HTTP-Endpunkts sind für einen Connector-Aufruf die Felder call und args erforderlich. Mit dem Block connector_params können Sie einen Zeitüberschreitungswert und eine Abfragerichtlinie angeben:

- STEP_NAME:
    call: CONNECTOR
    args:
        ARG: ARG_VALUE
        [...]
        body:
            KEY:KEY_VALUE
            [...]
        connector_params:
            timeout: TIMEOUT_IN_SECONDS
            polling_policy:
                initial_delay: INITIAL_DELAY_IN_SECONDS
                multiplier: MULTIPLIER_VALUE
                max_delay: MAX_DELAY_IN_SECONDS
            skip_polling: SKIP_POLLING_SWITCH 
            scopes:  OAUTH2_SCOPE 
    result: RESPONSE_VALUE

Ersetzen Sie Folgendes:

  • STEP_NAME: durch den Namen des Schritts
  • CONNECTOR (erforderlich): die Verbindungsmethode im Format googleapis.gcp_service.version.resource.operation. Beispiel: googleapis.bigquery.v2.tables.get.
  • ARG und ARG_VALUE (erforderlich): Für jeden Connector-Aufruf sind unterschiedliche Argumente erforderlich.
  • KEY und KEY_VALUE (optional): Felder für die Eingabe von Eingaben für die API.
  • Connector-spezifische Parameter (optional):
    • TIMEOUT_IN_SECONDS: Zeit in Sekunden. Die End-to-End-Dauer, während der der Connector-Aufruf ausgeführt werden darf, bevor eine Zeitüberschreitungsausnahme ausgelöst wird. Der Standardwert ist 1800 und sollte für Connector-Methoden, die keine Vorgänge mit langer Ausführungszeit erfordern, der Höchstwert sein. Andernfalls beträgt bei Vorgängen mit langer Ausführungszeit das maximale Zeitlimit für einen Connector-Aufruf 31536000 Sekunden (ein Jahr).
    • INITIAL_DELAY_IN_SECONDS: Abfragerichtlinienparameter mit dem Standardwert 1.0. Gilt nur für Vorgangsaufrufe mit langer Ausführungszeit.
    • MULTIPLIER_VALUE: Richtlinienparameter für Abfragen mit dem Standardwert 1.25. Gilt nur für lang andauernde Vorgangsaufrufe.
    • MAX_DELAY_IN_SECONDS: Abfragerichtlinienparameter mit dem Standardwert 60.0. Gilt nur für Vorgänge mit langer Ausführungszeit.
    • SKIP_POLLING_SWITCH: Wenn dieser Wert auf True gesetzt ist, ist der Connector-Aufruf nicht blockierend, wenn die erste Anfrage zum Verwalten oder Aktualisieren der Ressource erfolgreich ist (in der Regel HTTP POST, HTTP UPDATE oder HTTP DELETE). Wenn die erste Anfrage nicht erfolgreich ist, können Wiederholungsversuche erfolgen. Das Abfragen des Status (HTTP GET-Anfragen, die auf die erste Anfrage folgen) wird für den lang andauernden Vorgang nach Abschluss der ersten Anfrage übersprungen. Der Standardwert ist False.
    • OAUTH2_SCOPE: OAuth2-Bereiche, die an die Google API übergeben werden sollen. Kann ein String, eine Liste von Strings, ein durch Leerzeichen oder ein durch Kommas getrennter String sein.
  • RESPONSE_VALUE (optional): Variablenname, in dem das Ergebnis eines Aufrufschritts für einen Connector-Aufruf gespeichert wird.

Beispiel

Im folgenden Workflow wird gezeigt, wie Sie mit dem Cloud Storage API-Connector und dem Cloud Translation API-Connector zwei Dateien ins Französische und Spanische übersetzen und die Ergebnisse in einem Cloud Storage-Bucket speichern.

main:
  steps:
  - init:
      assign:
      - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
      - location: ${sys.get_env("GOOGLE_CLOUD_LOCATION")}
      - inputBucketName: ${projectId + "-input-files"}
      - outputBucketName: ${projectId + "-output-files-" + string(int(sys.now()))}
  - createOutputBucket:
        call: googleapis.storage.v1.buckets.insert
        args:
          project: ${projectId}
          body:
            name: ${outputBucketName}
  - batchTranslateText:
      call: googleapis.translate.v3beta1.projects.locations.batchTranslateText
      args:
          parent: ${"projects/" + projectId + "/locations/" + location}
          body:
              inputConfigs:
                gcsSource:
                  inputUri: ${"gs://" + inputBucketName + "/*"}
              outputConfig:
                  gcsDestination:
                    outputUriPrefix: ${"gs://" + outputBucketName + "/"}
              sourceLanguageCode: "en"
              targetLanguageCodes: ["es", "fr"]
      result: batchTranslateTextResult

Nächste Schritte