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

Dans votre projet Google Cloud, effectuez les tâches suivantes :

  • Assurez-vous que la connectivité réseau est configurée. Pour en savoir plus, consultez Connectivité réseau.
  • Attribuez le rôle IAM roles/connectors.admin à l'utilisateur qui configure le connecteur.
  • Attribuez les rôles IAM roles/secretmanager.viewer et roles/secretmanager.secretAccessor au compte de service que vous souhaitez utiliser pour le connecteur. Si vous ne possédez pas de compte de service, vous devez en créer un. Le connecteur et le compte de service doivent appartenir au même projet.
  • Activez secretmanager.googleapis.com (API Secret Manager) et connectors.googleapis.com (API Connectors). Pour en savoir plus, consultez Activer des services.

Créer une connexion SFTP

Une connexion est propre à 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 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, sélectionnez un emplacement dans la liste Région, puis cliquez sur Suivant.

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

  4. Dans la section Détails de connexion, procédez comme suit :
    1. Dans le champ Connecteur, sélectionnez SFTP.
    2. Dans le champ Version du connecteur, sélectionnez la version souhaitée.
    3. Dans le champ Nom de connexion, indiquez le nom de l'instance de connexion. Le nom de la connexion peut contenir des lettres minuscules, des chiffres ou des traits d'union. Il doit commencer par une lettre et se terminer par une lettre ou un chiffre. Il ne doit pas dépasser 49 caractères.
    4. (Facultatif) Saisissez une description de l'instance de connexion.
    5. (Facultatif) Activez Cloud Logging, puis sélectionnez un niveau de journalisation. Par défaut, le niveau de journalisation est défini sur Error.
    6. Dans le champ Compte de service, sélectionnez un compte disposant des rôles requis.
    7. (Facultatif) Configurez les paramètres de nœuds 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 davantage de transactions pour une connexion, vous devez disposer de plus de nœuds. À l'inverse, moins de nœuds sont nécessaires si une connexion traite moins de transactions. Pour comprendre comment les nœuds affectent la tarification de votre connecteur, consultez 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. (Facultatif) Dans le champ Chemin d'accès à distance, saisissez le chemin d'accès au dossier sur le serveur SFTP pour effectuer les opérations sur les entités, par exemple List, Create, Update ou Delete.
    9. 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 d'accès distant sur /folder_A/folder_B/folder_C.

    10. (Facultatif) Cliquez sur + Ajouter une étiquette pour ajouter une étiquette à la connexion sous la forme d'une paire clé/valeur.
    11. Cliquez sur Suivant.
  5. Dans la section Destinations, saisissez les informations concernant l'hôte distant (système backend) auquel vous souhaitez vous connecter, puis cliquez sur Suivant.
  6. Dans le champ Type de destination, sélectionnez le type souhaité :

    • Pour spécifier le nom d'hôte ou l'adresse IP de la destination, sélectionnez Adresse de l'hôte, puis saisissez l'adresse dans le champ Hôte 1.
    • Pour établir une connexion privée, sélectionnez Rattachement de point de terminaison, puis choisissez le rattachement requis dans la liste Rattachement de 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.

  7. Dans la section Authentification, sélectionnez un type d'authentification, saisissez les informations appropriées, puis cliquez sur Suivant.

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

    • Nom d'utilisateur et mot de passe
    • SSH_PUBLIC_KEY

    Pour comprendre comment configurer ces types d'authentification, consultez Configurer l'authentification.

  8. Vérifiez les informations de connexion et d'authentification, puis cliquez sur Créer.

Configurer l'authentification

Saisissez les informations 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
  • CLÉ_SSH_PUBLIQUE
    • 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

Utiliser la connexion SFTP 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 au moyen de la tâche "Connecteurs".

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

Actions

Dans cette section, vous trouverez une liste non exhaustive des actions prises en charge par le connecteur. Pour savoir comment configurer les actions, consultez Exemples d'actions.

Action Upload

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

Nom du paramètre Type de données Obligatoire Description
Content Chaîne Non Contenu à importer en tant que fichier.
ContentBytes Chaîne Non Contenu de type octets (chaîne Base64) à importer en tant que fichier. À utiliser pour importer des données binaires.
HasBytes Booléen Non Indique si le contenu doit être importé sous forme d'octets. La valeur par défaut est false.
RemoteFile Chaîne Oui Nom du fichier sur l'hôte distant.
Overwrite 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 Exemples.

Action Download

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

Nom du paramètre Type de données Obligatoire 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 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 Obligatoire 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 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 Obligatoire 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 Exemples.

Exemples

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
  • Télécharger plusieurs fichiers

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

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 Entrée de la tâche de la tâche Connecteurs, cliquez sur filterClause, puis saisissez FilePath LIKE '/tmp/%.csv' dans le champ 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 à la suivante dans la variable de sortie connectorOutputPayload de la tâche "Connecteurs" :

[{
"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 remplace le nom du fichier hello_world.txt par hello_world_new.txt. L'exécution de cet exemple renvoie une réponse semblable à la suivante dans la variable de sortie connectorOutputPayload de la tâche "Connecteurs" :

[{
"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 Entrée de la tâche de la tâche Connecteurs, cliquez sur entityId, puis saisissez /tmp/myfile.csv dans le champ Valeur par défaut.

    Sinon, au lieu de spécifier l'entityId, vous pouvez définir la 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 Entrée de la tâche de la tâche Connecteurs, 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.

    Vous pouvez éventuellement définir l'attribut Overwrite. La valeur par défaut est false.

Importer un fichier binaire put image_1.png /tmp/image_1.png Pour importer du contenu binaire, vous devez d'abord l'encoder au format Base64. Pour cela, vous pouvez utiliser l'outil de votre choix. 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 Entrée de la tâche de la tâche Connecteurs, 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.

    Vous pouvez éventuellement définir l'attribut Overwrite. 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 Sortie de la tâche de la tâche Connecteurs, 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 "Connecteurs".

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 Sortie de la tâche de la tâche Connecteurs, 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 la forme d'une chaîne encodée en Base64 dans le champ ContentBytes du paramètre de réponse connectorOutputPayload de la tâche "Connecteurs".

Télécharger plusieurs fichiers
  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 Sortie de la tâche de la tâche Connecteurs, cliquez sur connectorInputPayload, puis saisissez les informations suivantes dans le champ Default Value :
    {
    "RemoteFile": "/tmp/myfile*.txt"
    }

Limites du système

Le connecteur SFTP peut traiter une transaction par seconde et par nœud, et limite les transactions au-delà de ce seuil. Par défaut, Integration Connectors alloue deux nœuds (pour améliorer la disponibilité) à une connexion.

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

Créer des connexions à l'aide de Terraform

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

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

Pour afficher un exemple de modèle Terraform permettant de créer une connexion, consultez 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 Obligatoire Description
remote_path CHAÎNE Non Chemin d'accès actuel sur le serveur SFTP.

Schéma JSON de la charge utile

Tous les objets d'entité d'une connexion SFTP possèdent un schéma JSON prédéfini. 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
        }
      }
    }
  

Demander de l'aide à 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