Appeler un service Google Cloud à l'aide d'un connecteur

Workflows publie des connecteurs pour faciliter l'accès aux autres API Google Cloud au sein d'un workflow et pour intégrer vos workflows à ces produits Google Cloud. Par exemple, vous pouvez utiliser des connecteurs pour publier des messages Pub/Sub, lire ou écrire des données dans une base de données Firestore, ou récupérer des clés d'authentification de Secret Manager. Pour en savoir plus sur les connecteurs disponibles, consultez la documentation de référence sur les connecteurs.

Les connecteurs simplifient les appels de services, car ils gèrent la mise en forme des requêtes à votre place, en fournissant des méthodes et des arguments pour que vous n'ayez pas besoin de connaître les détails d'une API Google Cloud. Pour en savoir plus sur l'authentification et le comportement lors des nouvelles tentatives et des opérations de longue durée, consultez la section Comprendre les connecteurs.

Appeler un appel de connecteur

Comme pour l'appel d'un point de terminaison HTTP, un appel de connecteur nécessite les champs call et args. Vous pouvez spécifier une valeur de délai avant expiration et une règle d'interrogation à l'aide du bloc 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

Remplacez les éléments suivants :

  • STEP_NAME: nom de l'étape.
  • CONNECTOR (obligatoire): méthode du connecteur au format googleapis.gcp_service.version.resource.operation. Exemple : googleapis.bigquery.v2.tables.get.
  • ARG et ARG_VALUE (obligatoire) : chaque appel de connecteur nécessite des arguments différents.
  • KEY et KEY_VALUE (facultatif) : champs permettant de fournir des entrées à l'API.
  • Paramètres spécifiques au connecteur (facultatif) :
    • TIMEOUT_IN_SECONDS: durée en secondes. Durée de bout en bout pendant laquelle l'appel du connecteur est autorisé à s'exécuter avant de générer une exception de délai. La valeur par défaut est 1800. Elle doit être la limite maximale pour les méthodes de connecteur qui ne sont pas des opérations de longue durée. Sinon, pour les opérations de longue durée, le délai maximal pour un appel de connecteur est de 31536000 secondes (un an).
    • INITIAL_DELAY_IN_SECONDS: paramètre de règle d'interrogation avec une valeur par défaut de 1.0. Ne s'applique qu'aux appels d'opération de longue durée.
    • MULTIPLIER_VALUE: paramètre de règle d'interrogation avec une valeur par défaut de 1.25. S'applique uniquement aux appels d'opération de longue durée.
    • MAX_DELAY_IN_SECONDS: paramètre de règle d'interrogation avec la valeur par défaut 60.0. S'applique uniquement aux appels d'opération de longue durée.
    • SKIP_POLLING_SWITCH: si la valeur est True, l'appel du connecteur n'est pas bloquant si la demande initiale de gestion ou de mise à jour de la ressource aboutit généralement (généralement HTTP POST, HTTP UPDATE ou HTTP DELETE). Si la requête initiale n'aboutit pas, de nouvelles tentatives peuvent être effectuées. Une fois la requête initiale terminée, l'interrogation de l'état (requêtes HTTP GET qui suivent la requête initiale) est ignorée pour l'opération de longue durée. La valeur par défaut est False.
    • OAUTH2_SCOPE: champs d'application OAuth2 à transmettre à l'API Google. Il peut s'agir d'une chaîne, d'une liste de chaînes, d'une chaîne séparée par un espace ou d'une chaîne séparée par une virgule.
  • RESPONSE_VALUE (facultatif): nom de la variable dans laquelle est stocké le résultat d'une étape d'appel du connecteur.

Exemple

Le workflow suivant montre comment utiliser le connecteur d'API Cloud Storage et le connecteur de l'API Cloud Translation pour traduire deux fichiers en français et en espagnol, et enregistrer les résultats dans un bucket Cloud Storage.

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

Étapes suivantes