Google Cloud-Dienst über einen Connector aufrufen

Workflows veröffentlicht Connectors, um den Zugriff auf andereGoogle 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 Vorgängen mit langer Laufzeit finden Sie unter Informationen zu Connectors.

Connector-Aufruf aufrufen

Ähnlich wie beim Aufrufen eines HTTP-Endpunkts sind für einen Connector-Aufruf die Felder call und args erforderlich. Sie können einen Zeitüberschreitungswert und eine Polling-Richtlinie mit dem connector_params-Block 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 Connectormethode 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 zur Bereitstellung einer Eingabe für die API.
  • Connectorspezifische Parameter (optional):
    • TIMEOUT_IN_SECONDS: Zeit in Sekunden. Die End-to-End-Dauer, die der Connector-Aufruf ausgeführt werden darf, bevor eine Zeitlimitüberschreitungs-Ausnahme ausgelöst wird. Der Standardwert ist 1800. Dies sollte der Höchstwert für Connectormethoden sein, die keine zeitaufwendigen Vorgänge sind. Andernfalls beträgt das maximale Zeitlimit für einen Connector-Aufruf bei Vorgängen mit langer Ausführungszeit 31536000 Sekunden (ein Jahr).
    • INITIAL_DELAY_IN_SECONDS: Parameter für die Abrufrichtlinie mit dem Standardwert 1.0. Gilt nur für Aufrufe von Vorgängen mit langer Ausführungszeit.
    • MULTIPLIER_VALUE: Parameter für die Abrufrichtlinie mit dem Standardwert 1.25. Gilt nur für Aufrufe von Vorgängen mit langer Ausführungszeit.
    • MAX_DELAY_IN_SECONDS: Parameter für die Abrufrichtlinie mit dem Standardwert 60.0. Gilt nur für Aufrufe von Vorgängen, die lange dauern.
    • SKIP_POLLING_SWITCH: Wenn dieser Wert auf True gesetzt ist, ist der Aufruf des Connectors nicht blockierend, wenn die ursprüngliche Anfrage zum Verwalten oder Aktualisieren der Ressource erfolgreich ist (in der Regel HTTP POST, HTTP UPDATE oder HTTP DELETE). Wenn die ursprüngliche Anfrage nicht erfolgreich ist, können Wiederholungsversuche erfolgen. Die Abfrage des Status (HTTP GET-Anfragen, die auf die ursprüngliche Anfrage folgen) wird für den Vorgang mit langer Ausführungszeit übersprungen, nachdem die ursprüngliche 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 Connector-Aufrufschritts gespeichert ist.

Beispiel

Im folgenden Workflow wird gezeigt, wie Sie sowohl den Cloud Storage API-Connector als auch den Cloud Translation API-Connector verwenden, um zwei Dateien ins Französische und Spanische zu übersetzen und die Ergebnisse in einem Cloud Storage-Bucket zu 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