Google Cloud-Dienst mit einem Connector aufrufen

Workflows veröffentlichen Connectors, um den Zugriff auf andere Google Cloud APIs in einem Workflow zu erleichtern und Ihre Workflows in diese Google Cloud-Produkte zu integrieren. 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 aus Secret Manager abzurufen. Eine detaillierte Referenz zu den verfügbaren Connectors finden Sie in der 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 Wiederholungen und lang andauernden Vorgängen finden Sie unter Informationen zu Connectors.

Connectoraufruf ausführen

Ähnlich wie beim Aufrufen eines HTTP-Endpunkts sind für einen Connectoraufruf die Felder call und args erforderlich. Mit dem Block connector_params können Sie einen Zeitüberschreitungs-Wert 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: der Name des Schritts.
  • CONNECTOR (erforderlich): die Connector-Methode im Format googleapis.gcp_service.version.resource.operation. Beispiel: googleapis.bigquery.v2.tables.get.
  • ARG und ARG_VALUE (erforderlich): Für jeden Connectoraufruf sind unterschiedliche Argumente erforderlich.
  • KEY und KEY_VALUE (optional): Felder zur Bereitstellung einer Eingabe für die API.
  • Anschlussspezifische Parameter (optional):
    • TIMEOUT_IN_SECONDS: Zeit in Sekunden. Die End-to-End-Dauer, die der Connector-Aufruf maximal dauern darf, bevor eine Zeitüberschreitungsausnahme ausgelöst wird. Der Standardwert ist 1800 und sollte für Connectormethoden, die keine langwierigen Vorgänge sind, maximal sein. Andernfalls beträgt die maximale Zeitüberschreitung für einen Connectoraufruf bei langwierigen Vorgängen 31536000 Sekunden (ein Jahr).
    • INITIAL_DELAY_IN_SECONDS: Parameter für die Abfragerichtlinie mit dem Standardwert 1.0. Gilt nur für Aufrufe von Vorgängen mit langer Ausführungszeit.
    • MULTIPLIER_VALUE: Parameter für die Abfragerichtlinie mit dem Standardwert 1.25. Gilt nur für Aufrufe mit langer Ausführungszeit.
    • MAX_DELAY_IN_SECONDS: Parameter für die Abfragerichtlinie mit dem Standardwert 60.0. Gilt nur für lang laufende Vorgangsanfragen.
    • SKIP_POLLING_SWITCH: Wenn dieser Wert auf True gesetzt ist, ist der Aufruf der Connector-Aufruffunktion nicht blockierend, wenn die ursprüngliche Anfrage zum Verwalten oder Aktualisieren der Ressource erfolgreich ist (normalerweise HTTP POST, HTTP UPDATE oder HTTP DELETE). Wenn die ursprüngliche Anfrage nicht erfolgreich ist, können Wiederholungen auftreten. Die Abfrage des Status (HTTP GET-Anfragen, die auf die erste Anfrage folgen) wird für den lang andauernden Vorgang übersprungen, nachdem die erste Anfrage abgeschlossen ist. 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 getrennter String oder ein durch Kommas getrennter String sein.
  • RESPONSE_VALUE (optional): Variablenname, in dem das Ergebnis eines Aufrufschritts für den Connector gespeichert ist.

Beispiel

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

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