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

Workflows publie des connecteurs pour faciliter l'accès à d'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 depuis Secret Manager. Pour obtenir une documentation détaillée 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 son comportement lors des nouvelles tentatives et des opérations de longue durée, consultez Découvrez les connecteurs.

Appeler un 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 stratégie 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): pour fournir une entrée à 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 avant expiration. La valeur par défaut est 1800, qui doit être la valeur 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 avant expiration maximal d'un appel de connecteur est de 31536000 secondes (un an).
    • INITIAL_DELAY_IN_SECONDS : paramètre de stratégie de sondage avec une valeur par défaut de 1.0. Ne s'applique qu'aux les appels d'opération.
    • MULTIPLIER_VALUE: paramètre de règle de scrutation 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 de scrutation dont la valeur par défaut est 60.0. Ne s'applique qu'aux appels d'opérations de longue durée.
    • SKIP_POLLING_SWITCH : si la valeur est True, l'appel d'invocation du connecteur n'est pas bloquant si la requête initiale de gestion ou de mise à jour de la ressource aboutit (généralement HTTP POST, HTTP UPDATE ou HTTP DELETE). Si la requête initiale échoue, des nouvelles tentatives peuvent être effectuées. 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 une fois la requête initiale terminé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 des espaces ou d'une chaîne séparée par des virgules.
  • RESPONSE_VALUE (facultatif): nom de la variable dans laquelle le d'une étape d'appel de connecteur est stocké.

Exemple

Le workflow suivant montre comment utiliser à la fois le connecteur de l'API Cloud Storage et le connecteur de l'API Cloud Translation pour traduire deux fichiers en français et en espagnol, puis 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

Étape suivante