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. Mit Connectors lassen sich z. B. Pub/Sub-Nachrichten veröffentlichen, Daten in Firestore lesen oder schreiben oder Authentifizierungsschlüssel aus Secret Manager abrufen. Für eine Genauere Angaben zu verfügbaren Connectors finden Sie in der Connector-Referenz

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. Sie können ein Zeitlimit festlegen Wert und die Abfragerichtlinie mit dem Block connector_params:

- 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 Formular googleapis.gcp_service.version.resource.operation. Beispiel: googleapis.bigquery.v2.tables.get.
  • ARG und ARG_VALUE (erforderlich): Für jeden Connector-Aufruf sind andere 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. Dies sollte ist das Maximum für Connector-Methoden, bei denen es sich nicht um Vorgänge mit langer Ausführungszeit handelt. 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 lang andauernde Kampagnen Vorgangsaufrufe.
    • MULTIPLIER_VALUE: Abfragerichtlinienparameter mit den 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, wird der Der Aufrufaufruf des Connectors ist nicht blockierend, wenn die erste Anfrage zum Verwalten die Ressource erfolgreich ist (normalerweise HTTP POST, HTTP UPDATE oder HTTP DELETE. Wenn die ursprüngliche Anfrage nicht erfolgreich ist, können Wiederholungsversuche 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, wobei der Das Ergebnis des Aufrufschritts eines Connector-Aufrufs wird gespeichert.

Beispiel

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

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