SFTP

Le connecteur SFTP vous permet de vous connecter à un serveur SFTP et d'effectuer des opérations de transfert de fichiers.

Avant de commencer

Avant d'utiliser le connecteur SFTP, 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

      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 Détails de connexion, procédez comme suit :
    1. Connecteur : sélectionnez SFTP 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 doivent pas dépasser 49 caractères.
    4. Saisissez éventuellement une Description pour l'instance de connexion.
    5. Vous pouvez également activer Cloud Logging. puis sélectionnez un niveau de journalisation. Par défaut, le niveau de journalisation est défini sur Error.
    6. Compte de service : sélectionnez un compte de service disposant des rôles requis.
    7. 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. Pour traiter plus de transactions pour une connexion, plus de nœuds sont nécessaires. À l'inverse, moins de nœuds sont nécessaires pour traiter moins de transactions. Pour comprendre comment les nœuds affectent 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.

    8. Chemin d'accès à distance : chemin d'accès au dossier sur le serveur SFTP.

      Ne définissez ce champ que si vous souhaitez effectuer une opération d'entité, telle que List, Create, Update ou Delete.

      Si vous accédez à des entités (fichiers ou dossiers) dans le dossier racine, ou dans les dossiers enfants situés immédiatement après le niveau racine, vous n'avez pas besoin de définir de valeur pour ce champ. Toutefois, si vous souhaitez accéder à des entités imbriquées situées à deux niveaux ou plus du dossier racine, vous devez définir la valeur de ce champ sur le chemin de base du dossier contenant les entités auxquelles vous souhaitez accéder. Par exemple, si vous souhaitez accéder au fichier /folder_A/folder_B/folder_C/test.png, vous devez définir le chemin distant sur /folder_A/folder_B/folder_C.

    9. Vous pouvez également cliquer sur + Ajouter une étiquette pour ajouter une étiquette à la connexion sous la forme d'une paire clé/valeur.
    10. Cliquez sur Suivant.
  5. Dans la section Destinations, saisissez les informations concernant l'hôte distant (système backend) auquel vous souhaitez vous connecter.
    1. Type de destination : sélectionnez un type de destination.
      • Sélectionnez Adresse hôte dans la liste pour spécifier le nom d'hôte ou l'adresse IP de la destination.
      • Si vous souhaitez établir une connexion privée à vos systèmes backend, sélectionnez Rattachement du point de terminaison dans la liste, puis sélectionnez le rattachement du point de terminaison requis dans la liste Rattachement du point de terminaison.

      Si vous souhaitez établir une connexion publique à vos systèmes backend avec une sécurité supplémentaire, vous pouvez envisager de configurer des adresses IP sortantes statiques pour vos connexions, puis de configurer vos règles de pare-feu pour ajouter à la liste d'autorisation uniquement les adresses IP statiques spécifiques.

      Pour saisir d'autres destinations, cliquez sur + Ajouter une destination.

    2. Cliquez sur Suivant.
  6. Dans la section Authentification, saisissez les informations d'authentification.
    1. Sélectionnez un type d'authentification, puis saisissez les informations appropriées.

      Les types d'authentification suivants sont compatibles avec la connexion SFTP :

      • Nom d'utilisateur et mot de passe
      • SSH_PUBLIC_KEY
    2. Pour comprendre comment configurer ces types d'authentification, consultez la section Configurer l'authentification.

    3. Cliquez sur Next (Suivant).
  7. Vérifiez vos informations de connexion et d'authentification.
  8. Cliquez sur Créer.

Configurer l'authentification

Saisissez les détails en fonction de l'authentification que vous souhaitez utiliser.

  • Nom d'utilisateur et mot de passe
    • Nom d'utilisateur : nom d'utilisateur SFTP à utiliser pour la connexion.
    • Mot de passe : secret Secret Manager contenant le mot de passe associé au nom d'utilisateur SFTP.
  • SSH_PUBLIC_KEY
    • Nom d'utilisateur : compte utilisateur SFTP utilisé pour l'authentification.
    • Clé privée SSH : clé privée utilisée pour l'authentification SSH.
    • Mot de passe de la clé privée SSH : phrase secrète/mot de passe protégeant la clé privée, le cas échéant.
    • Type de clé privée SSH : format de la clé privée SSH.

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 pas compatible avec l'une des opérations d'entité, ces opérations non compatibles 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. Normalement, une action comporte des paramètres d'entrée et un paramètre de sortie. 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 SFTP peut traiter une transaction par seconde, par nœud, et throttles toutes les transactions au-delà de cette limite. Par défaut, les connecteurs d'intégration allouent deux nœuds (pour une meilleure disponibilité) à une connexion.

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

Actions

Cette section répertorie certaines actions possibles avec le connecteur. Pour comprendre comment configurer consultez la section Exemples d'actions.

Action d'importation

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

Nom du paramètre Type de données Requis Description
Contenu Chaîne Non Contenu à importer sous forme de fichier.
ContentBytes Chaîne Non Contenu en octets (sous forme de chaîne Base64) à importer en tant que fichier. Utilisez-le pour importer des données binaires.
HasBytes Booléen Non Indique si le contenu doit être importé en octets. La valeur par défaut est false.
RemoteFile Chaîne Oui Nom du fichier sur l'hôte distant.
Remplacer Booléen Non Indique si le fichier distant doit être écrasé. La valeur par défaut est false.

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

Action de téléchargement

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

Nom du paramètre Type de données Requis Description
RemoteFile Chaîne Oui Nom du fichier sur l'hôte distant.
HasBytes Booléen Non Indique si le contenu doit être téléchargé sous forme d'octets. La valeur par défaut est false.

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

Action MoveFile

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

Nom du paramètre Type de données Requis Description
RemoteFile Chaîne Oui Chemin d'accès au fichier distant à déplacer.
DestinationPath Chaîne Oui Nouveau chemin d'accès vers lequel vous souhaitez déplacer le fichier.

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

Action RenameFile

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

Nom du paramètre Type de données Requis Description
RemoteFile Chaîne Oui Chemin d'accès et nom du fichier distant à renommer.
NewFileName Chaîne Oui Nouveau nom du fichier distant.

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

Examples

Cette section explique comment effectuer certaines opérations et actions d'entité dans ce connecteur. Les exemples décrivent les opérations suivantes :

  • Lister tous les fichiers du répertoire racine
  • Lister les fichiers correspondant à un modèle dans un répertoire
  • Déplacer un fichier
  • Renommer un fichier
  • Supprimer un fichier
  • Importer un fichier texte ASCII
  • Importer un fichier binaire
  • Télécharger un fichier texte ASCII
  • Télécharger un fichier binaire

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

Tâche Exemple de commande Configuration
Lister tous les fichiers du répertoire racine ls /
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Entities.
  2. Sélectionnez l'entité Root, puis l'opération List.
  3. Cliquez sur OK.
Lister les fichiers .csv d'un répertoire ls /tmp/*.csv
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Entities.
  2. Sélectionnez le répertoire de base (/tmp) dans la liste Entity.
  3. Sélectionnez l'opération List, puis cliquez sur OK.
  4. Définissez la clause de filtre. Pour définir la clause, dans la section Task Input (Entrée de la tâche) de la tâche Connectors (Connecteurs), cliquez sur filterClause, puis saisissez FilePath LIKE '/tmp/%.csv' dans le champ Default Value (Valeur par défaut).
Déplacer un fichier mv /tmp/dir_A/hello_world.txt /dir_B/dir_C/
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action MoveFile, 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 :
    {
    "RemoteFile": "/tmp/dir_A/hello_world.txt",
    "DestinationPath": "/dir_B/dir_C/"
    }

Cet exemple déplace le fichier /tmp/dir_A/hello_world.txt vers le répertoire /dir_B/dir_C/. L'exécution de cet exemple renvoie une réponse semblable comme suit dans la variable de sortie connectorOutputPayload de la tâche de connecteur:

[{
"Success":"true"
}]
Renommer un fichier mv /tmp/hello_world.txt /tmp/hello_world_new.txt
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action RenameFile, 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 :
    {
    "RemoteFile": "/tmp/hello_world.txt",
    "NewFilename": "hello_world_new.txt"
    }

Cet exemple renomme le fichier hello_world.txt en hello_world_new.txt. L'exécution de cet exemple renvoie une réponse semblable comme suit dans la variable de sortie connectorOutputPayload de la tâche de connecteur:

[{
"Success":"true"
}]
Supprimer un fichier rm /tmp/myfile.csv
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Entities.
  2. Dans la liste Entity, sélectionnez le répertoire de base contenant le fichier à déplacer.
  3. Sélectionnez l'opération Delete, puis cliquez sur OK.
  4. Définissez l'ID d'entité sur le chemin d'accès complet du fichier. Pour définir l'ID d'entité, dans la section Task Input (Entrée de la tâche) de la tâche Connectors (Connecteurs), cliquez sur entityId, puis saisissez /tmp/myfile.csv dans le champ Default Value (Valeur par défaut).

    Plutôt que de spécifier le entityId, vous pouvez également définir le filterClause sur FilePath LIKE '/tmp/myfile.csv'.

Importer un fichier texte ASCII put file_1.txt /tmp/file_1.txt
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action Upload, 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": "This is a sample text!\r\n",
      "RemoteFile": "/tmp/file_1.txt",
      "Overwrite": true
    }
  4. Cet exemple crée le fichier file_1.txt avec le contenu This is a sample text! dans le répertoire /tmp du serveur SFTP. Tous les fichiers existants portant le même nom sont écrasés, car la valeur de l'attribut Overwrite est true.

    La définition de l'attribut Overwrite est facultative. La valeur par défaut est false.

Importer un fichier binaire put image_1.png /tmp/image_1.png Pour importer un contenu binaire, vous devez d'abord encoder le contenu au format Base64. Vous pouvez choisir un outil de votre choix pour encoder le contenu. Les étapes d'encodage du contenu ne sont pas décrites dans ce document. Une fois que vous disposez du contenu sous forme de chaîne Base64, procédez comme suit :
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action Upload, 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 :
    {
      "ContentBytes": "SGVsbG8gd29ybGQ=",
      "RemoteFile": "/tmp/image_1.png",
      "Overwrite": true,
      "HasBytes": true
    }
  4. Cet exemple crée le fichier image_1.png avec le contenu comme spécifié dans le champ ContentBytes. Le fichier est créé dans le répertoire /tmp du serveur SFTP. Tous les fichiers existants portant le même nom sont écrasés, car la valeur de l'attribut Overwrite est true.

    La définition de l'attribut Overwrite est facultative. La valeur par défaut est false.

Télécharger un fichier texte ASCII get /tmp/myfile.txt
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action Download, puis cliquez sur OK.
  3. Dans la section Task Output (Sortie de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    {
    "RemoteFile": "/tmp/myfile.txt"
    }

Le contenu du fichier téléchargé est disponible sous forme de chaîne dans le champ Content du paramètre de réponse connectorOutputPayload de la tâche de connecteur.

Télécharger un fichier binaire get /tmp/myfile.png
  1. Dans la boîte de dialogue Configure connector task, cliquez sur Actions.
  2. Sélectionnez l'action Download, puis cliquez sur OK.
  3. Dans la section Task Output (Sortie de la tâche) de la tâche Connectors, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    {
    "RemoteFile": "/tmp/myfile.png",
    "HasBytes" : true
    }

Le contenu du fichier téléchargé est disponible sous forme de chaîne encodée en base64 dans le champ ContentBytes du paramètre de réponse connectorOutputPayload de la tâche de connecteur.

Schéma JSON pour la charge utile

Tous les objets d'entité d'une connexion SFTP possèdent un schéma JSON prédéfini. Une bonne compréhension du schéma vous permet de configurer facilement les valeurs de charge utile d'entrée ou de sortie. Les objets d'entité dans une connexion SFTP utilisent le schéma JSON suivant :

  {
    "type": "object",
    "properties": {
      "FilePath": {
        "type": "string",
        "readOnly": false
      },
      "Filename": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false,
        "description": "The name of the file or directory."
      },
      "FileSize": {
        "type": [
          "number",
          "null"
        ],
        "readOnly": false,
        "description": "The size of the file."
      },
      "LastModified": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false
      },
      "IsDirectory": {
        "type": [
          "boolean",
          "null"
        ],
        "readOnly": false
      },
      "Permissions": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false
      },
      "Owner": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false
      },
      "OwnerId": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false
      },
      "Group": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false
      },
      "GroupId": {
        "type": [
          "string",
          "null"
        ],
        "readOnly": false
      }
    }
  }

Configuration dynamique de filterClause

Pour les opérations List, Update et Delete, vous pouvez définir la valeur de la variable d'entrée filterClause de manière dynamique au moment de l'exécution à l'aide de la tâche de mappage de données de votre intégration. Par exemple, vous pouvez envoyer la valeur de la clause de filtre lorsque vous appelez le déclencheur d'API dans votre intégration. L'image suivante montre un exemple de mappage pour la variable filterClause dans l'éditeur de mappage de données de la tâche de mappage de données : définir une clause de filtre dans l'éditeur de mappage de données

Utiliser Terraform pour créer des connexions

Vous pouvez utiliser l'outil Terraform ressource pour créer une connexion.

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

Pour afficher un exemple de modèle Terraform pour la création de 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
remote_path STRING Faux Chemin d'accès actuel du serveur SFTP.

Utiliser la connexion SFTP dans une intégration

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

  • Pour comprendre comment créer et utiliser la tâche "Connecteurs" dans Apigee Integration, consultez la section Tâche Connecteurs.
  • Pour savoir 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.

Étape suivante