Cloud Storage

Le connecteur Google Cloud Storage vous permet de vous connecter à Google Cloud Storage et d'effectuer des opérations de transfert de fichiers.

Avant de commencer

Avant d'utiliser le connecteur Cloud Storage, effectuez les tâches suivantes :

  • Dans votre projet Google Cloud :
    • Attribuez le rôle IAM roles/connectors.admin à l'utilisateur qui configure le connecteur.
    • Attribuez les rôles IAM suivants au compte de service que vous souhaitez utiliser pour le connecteur :
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
      • roles/storage.admin

      Un compte de service est un compte Google spécial destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données des API Google. Si vous ne possédez pas de compte de service, vous devez en créer un. Pour plus d'informations, consultez la section Créer un compte de service.

    • Activez les services suivants :
      • secretmanager.googleapis.com (API Secret Manager)
      • connectors.googleapis.com (API Connectors)

      Pour savoir comment activer des services, consultez la page Activer des services.

    Si ces services ou autorisations n'ont pas encore été activés pour votre projet, vous êtes invité à les activer lors de la configuration du connecteur.

Configurer le connecteur

Pour configurer le connecteur, vous devez créer une connexion à votre source de données (système backend). Une connexion est spécifique à une source de données. Cela signifie que si vous disposez de nombreuses sources de données, vous devez créer une connexion distincte pour chacune d'elles. Pour créer une connexion, procédez comme suit :

  1. Dans la console Cloud, accédez à la page Integration Connectors > Connections (Connecteurs d'intégration > Connexions), puis sélectionnez ou créez un projet Google Cloud.

    Accéder à la page "Connexions"

  2. Cliquez sur + CRÉER pour ouvrir la page Créer une connexion.
  3. Dans la section Emplacement, choisissez l'emplacement de la connexion.
    1. Région : sélectionnez un emplacement dans la liste déroulante.

      Pour obtenir la liste de toutes les régions disponibles, consultez la page Emplacements.

    2. Cliquez sur NEXT (Suivant).
  4. Dans la section Informations de connexion, procédez comme suit :
    1. Connecteur : sélectionnez Cloud Storage dans la liste déroulante des connecteurs disponibles.
    2. Version du connecteur : sélectionnez la version du connecteur dans la liste déroulante des versions disponibles.
    3. Dans le champ Nom de connexion, saisissez un nom pour l'instance de connexion.

      Les noms de connexion doivent répondre aux critères suivants :

      • Les noms de connexion peuvent contenir des lettres, des chiffres ou des traits d'union.
      • Les lettres doivent être en minuscules.
      • Les noms de connexion doivent commencer par une lettre et se terminer par une lettre ou un chiffre.
      • Les noms de connexion ne peuvent pas dépasser 63 caractères.
    4. Saisissez éventuellement une Description pour l'instance de connexion.
    5. Compte de service : sélectionnez un compte de service disposant des rôles requis.
    6. Vous pouvez également configurer les paramètres du nœud de connexion :

      • Nombre minimal de nœuds : saisissez le nombre minimal de nœuds de connexion.
      • Nombre maximal de nœuds : saisissez le nombre maximal de nœuds de connexion.

      Un nœud est une unité (ou instance répliquée) de connexion qui traite des transactions. Un plus grand nombre de nœuds est nécessaire afin de traiter plus de transactions pour une connexion. À l'inverse, moins de nœuds sont nécessaires pour traiter moins de transactions. Pour comprendre l'impact des nœuds sur la tarification de votre connecteur, consultez la section Tarifs des nœuds de connexion. Si vous ne saisissez aucune valeur, le nombre minimal de nœuds est défini par défaut sur 2 (pour une meilleure disponibilité) et le nombre maximal sur 50.

    7. ID du projet : saisissez l'ID du projet Google Cloud dans lequel se trouvent les données.
    8. Vous pouvez également cliquer sur + AJOUTER UN LIBELLÉ pour ajouter un libellé à la connexion sous la forme d'une paire clé/valeur.
    9. Cliquez sur NEXT (Suivant).
  5. Vérification: vérifiez votre connexion.
  6. Cliquez sur Créer.

Entités, opérations et actions

Tous les connecteurs Integration Connectors fournissent une couche d'abstraction pour les objets de l'application connectée. Vous ne pouvez accéder aux objets d'une application que via cette abstraction. L'abstraction vous est présentée en tant qu'entités, opérations et actions.

  • Entité : une entité peut être considérée comme un objet ou un ensemble de propriétés dans l'application ou le service connecté. La définition d'une entité diffère d'un connecteur à l'autre. Par exemple, dans un connecteur de base de données, les tables sont les entités, dans un connecteur de serveur de fichiers, les dossiers sont les entités et, dans un connecteur de système de messagerie, les files d'attente sont les entités.

    Toutefois, il est possible qu'un connecteur ne soit pas compatible ou ne possède aucune entité. Dans ce cas, la liste Entities est vide.

  • Opération : une opération est l'activité que vous pouvez effectuer sur une entité. Vous pouvez effectuer l'une des opérations suivantes sur une entité :

    La sélection d'une entité dans la liste disponible génère une liste d'opérations disponibles pour l'entité. Pour obtenir une description détaillée des opérations, consultez les opérations d'entité de la tâche de connecteur. Toutefois, si un connecteur n'est compatible avec aucune des opérations d'entité, celles-ci ne sont pas répertoriées dans la liste Operations.

  • Action : une action est une fonction de première classe mise à la disposition de l'intégration via l'interface du connecteur. Une action vous permet de modifier une ou plusieurs entités, et varie d'un connecteur à l'autre. Toutefois, il est possible qu'un connecteur ne prenne en charge aucune action, auquel cas la liste Actions est vide.

Limites du système

Le connecteur Google Cloud Storage peut traiter jusqu'à 10 transactions par seconde et par nœud, et limite les transactions au-delà de cette limite. Par défaut, Integration Connectors alloue deux nœuds par connexion (pour une meilleure disponibilité).

Pour en savoir plus sur les limites applicables à Integration Connectors, consultez la section Limites.

Actions

La connexion Google Cloud Storage accepte les actions suivantes :

Action DownloadObject

Le tableau suivant décrit les paramètres d'entrée de l'action DownloadObject.

Nom du paramètre Requis Type de données Description
Bucket Oui Chaîne Le nom du bucket dans lequel l'objet à télécharger est présent.
ObjectFilePath Non Chaîne Nom de l'objet à télécharger. Si cette option n'est pas spécifiée, tous les objets du bucket spécifié sont téléchargés.

Si l'objet à télécharger est présent dans un dossier enfant d'un bucket, vous devez fournir le chemin d'accès complet de cet objet. Par exemple, pour télécharger le fichier logfile.txt présent dans le dossier folderA du bucket bucket_01, le chemin d'accès à l'objet doit être folderA/logfile.txt.

HasBytes Non Booléen Indique si le contenu doit être téléchargé sous forme d'octets. Les valeurs valides sont true ou false. Si ce paramètre est défini sur true, le contenu est téléchargé en tant que chaîne encodée en Base64.

Par défaut, le champ HasBytes est défini sur false.

UpdatedEndDate Non Date Plage de dates de fin pour le téléchargement d'objets. Si ce paramètre n'est pas spécifié, les objets seront téléchargés à partir de la date UpdatedStartDate spécifiée jusqu'à aujourd'hui.
UpdatedStartDate Non Date Début de la plage de dates pour le téléchargement des objets. Si ce paramètre n'est pas spécifié, les objets seront téléchargés depuis le début de l'heure jusqu'à UpdatedEndDate.

Pour obtenir des exemples de configuration de l'action DownloadObject, consultez la page Exemples.

Action UploadObject

Le tableau suivant décrit les paramètres d'entrée de l'action UploadObject.

Nom du paramètre Requis Type de données Description
Bucket Oui Chaîne Nom du bucket dans lequel l'objet sera importé.
FolderPath Non Chaîne Chemin d'accès au dossier dans lequel l'objet doit être importé.
ContentBytes Non Chaîne Contenu à importer sous la forme d'octets (chaîne encodée en base64).
HasBytes Non Booléen Indique si le contenu doit être importé sous la forme d'octets. Valeurs valides ; true ou false. Si ce paramètre est défini sur true, le contenu que vous souhaitez importer doit être une chaîne encodée en base64.

Par défaut, le champ HasBytes est défini sur false.

Contenu Oui Chaîne Contenu à importer.
ObjectName Non Chaîne Nom de l'objet qui sera importé.

Pour obtenir des exemples de configuration de l'action UploadObject, consultez la page Exemples.

Action CopyObject

Le tableau suivant décrit les paramètres d'entrée de l'action CopyObject.

Nom du paramètre Requis Type de données Description
BucketSource Oui Chaîne Nom du bucket à partir duquel vous souhaitez copier l'objet.
ObjectSource Oui Chaîne Chemin complet du dossier dans lequel vous souhaitez copier l'objet.
BucketDestination Oui String Nom du bucket dans lequel vous souhaitez copier l'objet.
ObjectDestination Non Chaîne Chemin complet de la destination, y compris le nom de l'objet. Si vous ne spécifiez aucun nom d'objet, le nom de l'objet source est conservé.

Pour obtenir des exemples de configuration de l'action CopyObject, consultez la page Exemples.

Action MoveObject

Le tableau suivant décrit les paramètres d'entrée de l'action MoveObject.

Nom du paramètre Requis Type de données Description
BucketSource Oui Chaîne Nom du bucket à partir duquel vous souhaitez déplacer l'objet.
ObjectSource Oui Chaîne Chemin complet du dossier dans lequel vous souhaitez déplacer l'objet.
BucketDestination Oui Chaîne Nom du bucket dans lequel vous souhaitez déplacer l'objet.
ObjectDestination Non Chaîne Chemin complet de la destination, y compris le nom de l'objet. Si vous ne spécifiez aucun nom d'objet, le nom de l'objet source est conservé.

Action DeleteObject

Le tableau suivant décrit les paramètres d'entrée de l'action DeleteObject.

Nom du paramètre Requis Type de données Description
BucketSource Oui Chaîne Nom du bucket où se trouve l'objet à supprimer.
ObjectSource Oui Chaîne Nom de l'objet que vous souhaitez supprimer.
Génération Non Double Version de l'objet à supprimer. Si cette option est présente, elle supprime définitivement la révision spécifiée de l'objet plutôt que la dernière version (le comportement par défaut).
IfGenerationMatch Non Double Rend l'opération de suppression conditionnelle (l'action n'est appliquée que si la génération actuelle de l'objet correspond à la valeur donnée). Si cette valeur est définie sur 0, l'opération ne réussit que s'il n'existe pas de version active de l'objet.
IfGenerationNotMatch Non Double Rend l'opération de suppression conditionnelle (l'action n'est appliquée que si la génération actuelle de l'objet ne correspond pas à la valeur donnée). Si aucun objet actif n'existe, la condition préalable échoue. Définir cette valeur sur 0 permet de n'exécuter l'opération que s'il existe une version active de l'objet.
IfMetagenerationMatch Non Double Rend l'opération de suppression conditionnelle (l'action n'est appliquée que si la métagénération actuelle de l'objet correspond à la valeur spécifiée).
IfMetagenerationNotMatch Non Double Rend l'opération de suppression conditionnelle (l'action n'est appliquée que si la métagénération actuelle de l'objet ne correspond pas à la valeur spécifiée).

Action SignURL

Le tableau suivant décrit les paramètres d'entrée de l'action SignURL, qui crée une URL signée pour l'objet spécifié.

Nom du paramètre Requis Type de données Description
Bucket Oui Chaîne Nom du bucket où se trouve l'objet.
Objet Oui Chaîne Nom de l'objet pour lequel générer la SignedURL.
RequestMethod Non Chaîne La méthode utilisée par la requête signée. La valeur par défaut est GET.
Emplacement Non Chaîne Emplacement du bucket spécifié. La valeur par défaut est auto.
ActiveDateTime Non Chaîne L'horodatage dateTime auquel la SignedURL deviendra active. Si cete valeur n'est pas spécifiée, la date/heure actuelle sera utilisée.
Requête Non Chaîne La chaîne de requête à inclure lors de l'utilisation de SignedURL, si aucune valeur n'est spécifiée, aucune chaîne de requête ne sera utilisée.
CustomHeaders Non Chaîne Une liste d'en-têtes (nom=valeur) séparés par une virgule à utiliser avec la SignedURL. Si cette valeur n'est pas spécifiée, aucun en-tête personnalisé ne sera utilisé.
ExpiresIn Oui Chaîne Le délai d'expiration de SignedURL doit être au format 1d2h3m4s. La valeur maximale est 7d0h0m0s.
HmacAccessKey Non Chaîne La clé d'accès HMAC. Pour en savoir plus, consultez la page Clés HMAC.
HmacSecret Non Chaîne Le secret HMAC.

Examples

Les exemples de cette section décrivent les opérations suivantes :

  • Répertorier tous les objets
  • Répertorier tous les objets d'un bucket
  • Répertorier tous les buckets
  • Télécharger un objet
  • Télécharger un objet binaire
  • Importer un objet dans un bucket
  • Importer un objet dans un dossier
  • Copier un objet
  • Déplacer un objet
  • Supprimer un objet
  • Créer une URL signée pour un objet

Le tableau suivant fournit une liste d'exemples de scénarios et la configuration correspondante dans la tâche de connecteur :

Tâche Configuration
Répertorier tous les objets
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Entities.
  2. Sélectionnez l'entité Objects, puis l'opération List.
  3. Cliquez sur OK.

Cette commande répertorie tous les objets de tous les buckets. Les objets sont répertoriés dans le paramètre de réponse connectorOutputPayload de la tâche Connectors.

Répertorier tous les objets d'un bucket
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Entities.
  2. Sélectionnez l'entité Objects, puis l'opération List.
  3. Cliquez sur OK.
  4. Définissez la valeur filterClause sur le nom du bucket dont vous souhaitez répertorier les objets. Pour définir la clause, dans la section Task Input de la tâche Connectors, cliquez sur filterClause puis saisissez Bucket = 'BUCKET_NAME' dans le champ Valeur par défaut. Par exemple, Bucket = 'bucket_01'.
Répertorier tous les buckets
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Entities.
  2. Sélectionnez l'entité Buckets, puis l'opération List.
  3. Cliquez sur OK.
Télécharger un objet
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action DownloadObject, puis cliquez sur OK.
  3. Dans la section Entrée de la tâche de la tâche Connecteurs, cliquez sur connectorInputPayload, puis saisissez une valeur semblable à la suivante dans le champ Default Value :
    
    {
      "Bucket": "bucket-test-01",
      "ObjectFilePath": "logfile.txt"
    }
  4. Cet exemple télécharge le fichier logfile.txt. Le contenu du fichier téléchargé est disponible au format JSON dans le paramètre de réponse connectorOutputPayload de la tâche Connectors.

Télécharger un objet binaire

La procédure de téléchargement d'un objet binaire est la même que pour un objet standard, comme décrit précédemment. De plus, vous devez spécifier HasBytes en tant que true dans le champ connectorInputPayload. L'objet est téléchargé sous forme d'une chaîne encodée en Base64. Exemple de valeur pour le champ connectorInputPayload :


{
"Bucket": "bucket-test-01",
"ObjectFilePath": "image01.png",
"HasBytes" : true
}

Si le téléchargement aboutit, le résultat dans le champ connectorOutputPayload ressemble à ce qui suit :


{
"Success": "true",
"ContentBytes": "SGVsbG8gdGVzdCE\u003d"
}
Importer un objet dans un bucket
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action UploadObject, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    
    {
    "Content": "Hello test!",
    "Bucket": "bucket-test-01",
    "ObjectName" : "test-file-01.txt"
    }
  4. Cet exemple crée le fichier test-file-01.txt avec le contenu Hello test! dans le bucket bucket-test-01. S'il existe un fichier portant le nom test-file-01.txt, il est écrasé.

Importer un objet dans un dossier
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action UploadObject, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    
    {
    "Content": "Hello test!",
    "Bucket": "bucket-test-01",
    "ObjectName" : "folderA/test-file-01.txt"
    }
  4. Cet exemple crée le fichier test-file-01.txt avec le contenu Hello test! dans le dossier folderA du bucket bucket-test-01. Si le dossier contient un fichier portant le nom test-file-01.txt, il est écrasé.

Copier un objet
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action CopyObject, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    
    {
    "BucketSource": "bucket_01",
    "ObjectSource": "folderA/logfile.txt",
    "BucketDestination": "bucket_02",
    "ObjectDestination": "folderB/logfile.txt"
    }
  4. Cet exemple copie le fichier folderA/logfile.txt de bucket_01 vers folderB/logfile.txt dans bucket_02.

Si la copie aboutit, le résultat du champ connectorOutputPayload ressemble à ce qui suit :


{
"Success": "true"
}
Déplacer un objet
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action MoveObject, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    
    {
    "BucketSource": "bucket_01",
    "ObjectSource": "folderA/logfile.txt",
    "BucketDestination": "bucket_02",
    "ObjectDestination": "folderB/logfile.txt"
    }
  4. Cet exemple déplace le fichier folderA/logfile.txt du bucket bucket_01 vers l'emplacement folderB/logfile.txt dans le bucket bucket_02.

Si la copie aboutit, le résultat du champ connectorOutputPayload ressemble à ce qui suit :


{
"Success": "true"
}
Supprimer un objet
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action DeleteObject, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    
    {
    "BucketSource": "bucket_01",
    "ObjectSource": "logfile.txt"
    }
  4. Cet exemple supprime le fichier logfile.txt du bucket bucket_01.

Si la copie aboutit, le résultat du champ connectorOutputPayload ressemble à ce qui suit :


{
"Success": "true"
}
Créer une URL signée pour un objet
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action SignURL, puis cliquez sur OK.
  3. Dans la section Task Input (Entrée de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    
    {
    "Bucket": "bucket-test-01",
    "ObjectName" : "test-file-01.txt"
    }
  4. Cet exemple crée une URL signée pour le fichier test-file-01.txt, qui se trouve dans le bucket bucket-test-01. Si l'action réussit, vous obtenez l'URL signée dans la réponse comme suit :

    
    {
    "Success": "true",
    "SignURL": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm=
    GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount
    .com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18
    1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16
    9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849
    6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc
    c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058
    0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a
    66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823
    a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703
    2ea7abedc098d2eb14a7"
    }

Remarques

  • La taille maximale d'un objet téléchargeable est de 10 Mo.
  • Vous ne pouvez pas importer plusieurs fichiers avec l'action UploadObject. Vous ne pouvez importer qu'un seul fichier.

Utiliser Terraform pour créer des connexions

Vous pouvez utiliser la ressource Terraform pour créer une connexion.

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Pour voir un exemple de modèle Terraform pour créer des connexions, consultez cet exemple de modèle.

Lorsque vous créez cette connexion à l'aide de Terraform, vous devez définir les variables suivantes dans votre fichier de configuration Terraform:

Nom du paramètre Type de données Requis Description
project_id STRING Vrai ID du projet Google Cloud dans lequel résident les données.

Utiliser la connexion Cloud Storage dans une intégration

Une fois la connexion créée, elle devient disponible dans Apigee Integration et Application Integration. Vous pouvez utiliser la connexion dans une intégration via la tâche "Connecteurs".

  • Pour découvrir comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez la page Tâche Connecteurs.
  • Pour découvrir comment créer et utiliser la tâche "Connecteurs" dans Application Integration, consultez la section Tâche Connecteurs.

Obtenir de l'aide auprès de la communauté Google Cloud

Vous pouvez publier vos questions et discuter de ce connecteur sur les forums Cloud de la communauté Google Cloud.

Étapes suivantes