SFTP

Com o conector SFTP, você pode se conectar a um servidor SFTP e realizar operações de transferência de arquivos.

Antes de começar

No seu projeto do Google Cloud, faça o seguinte:

  • Verifique se a conectividade de rede está configurada. Para mais informações, consulte Conectividade de rede.
  • Conceda o papel do IAM roles/connectors.admin ao usuário que está configurando o conector.
  • Conceda os papéis do IAM roles/secretmanager.viewer e roles/secretmanager.secretAccessor à conta de serviço que você quer usar para o conector.
  • Ative secretmanager.googleapis.com (API Secret Manager) e connectors.googleapis.com (API Connectors). Para mais informações, consulte Como ativar serviços.

Criar uma conexão SFTP

Uma conexão é específica a uma fonte de dados. Isso significa que, se você tiver muitas fontes de dados, precisará criar uma conexão separada para cada uma. Para criar uma conexão, faça o seguinte:

  1. No console do Cloud, acesse a página Integration Connectors > Conexões e selecione ou crie um projeto do Google Cloud.

    Acessar a página "Conexões"

  2. Clique em + Criar novo para abrir a página Criar conexão.
  3. Na seção Local, selecione um local na lista Região e clique em Próxima.

    Para conferir a lista de todas as regiões com suporte, consulte Locais.

  4. Na seção Detalhes da conexão, faça o seguinte:
    1. No campo Conector, selecione SFTP.
    2. No campo Versão do conector, selecione a versão desejada.
    3. No campo Nome da conexão, insira um nome para a instância de conexão. O nome da conexão pode conter letras minúsculas, números ou hífens. O nome precisa começar com uma letra e terminar com uma letra ou um número, e não pode ter mais de 49 caracteres.
    4. Como opção, insira uma Descrição para a instância de conexão.
    5. Se quiser, ative o Cloud Logging e selecione um nível de registro. Por padrão, o nível de registro é definido como Error.
    6. No campo Conta de serviço, selecione uma conta que tenha os papéis necessários.
    7. (Opcional) Defina as Configurações do nó de conexão.
      • Número mínimo de nós: digite o número mínimo de nós de conexão.
      • Número máximo de nós: digite o número máximo de nós de conexão.

      Um nó é uma unidade (ou réplica) de uma conexão que processa transações. Mais nós são necessários para processar mais transações para uma conexão e, por outro lado, menos nós são necessários para processar menos transações. Para entender como os nós afetam os preços do conector, consulte Preços dos nós de conexão. Se você não inserir qualquer valor, por padrão, os nós mínimos serão definidos como 2 (para melhor disponibilidade) e os nós máximos serão definidos como 50.

    8. (Opcional) No campo Caminho remoto, insira o caminho da pasta no servidor SFTP para realizar as operações de entidade, como List, Create, Update ou Delete.
    9. Se você estiver acessando entidades (arquivos ou pastas) na pasta raiz ou nas subpastas imediatas da pasta raiz, não será necessário definir um valor para esse campo. No entanto, se você quiser acessar entidades aninhadas que estejam em uma profundidade de dois níveis ou mais da pasta raiz, defina o valor desse campo como o caminho base da pasta que tem as entidades que você quer acessar. Por exemplo, se você quiser acessar o arquivo /folder_A/folder_B/folder_C/test.png, defina o caminho remoto como /folder_A/folder_B/folder_C.

    10. Outra opção é clicar em + Adicionar rótulo para adicionar um rótulo à conexão na forma de um par de chave-valor.
    11. Clique em Próxima.
  5. Na seção Destinos, insira os detalhes do host remoto (sistema de back-end) ao qual você quer se conectar e clique em Próxima.
  6. No campo Tipo de destino, selecione o tipo desejado:

    • Para especificar o nome do host ou o endereço IP de destino, selecione Endereço do host e insira o endereço no campo Host 1.
    • Para estabelecer uma conexão particular, selecione Anexo de endpoint e escolha o anexo necessário na lista Anexo de endpoint.

    Para estabelecer uma conexão pública com os sistemas de back-end com mais segurança, considere configurar endereços IP de saída estáticos para suas conexões e configure as regras de firewall para autorizar apenas os endereços IP estáticos específicos.

  7. Na seção Autenticação, selecione um Tipo de autenticação e insira os detalhes relevantes. Clique em Próxima.

    A conexão SFTP oferece suporte aos seguintes tipos de autenticação:

    • Nome de usuário e senha
    • SSH_PUBLIC_KEY

    Para entender como configurar esses tipos de autenticação, consulte Configurar autenticação.

  8. Revise os detalhes de conexão e autenticação e clique em Criar.

Configurar a autenticação

Digite os detalhes com base na autenticação que você quer usar.

  • Nome de usuário e senha
    • Nome de usuário: o nome de usuário do SFTP a ser usado para a conexão.
    • Senha: o Secret do Secret Manager que contém a senha associada ao nome de usuário do SFTP.
  • SSH_PUBLIC_KEY
    • Nome de usuário: a conta de usuário do SFTP usada para autenticação.
    • Chave privada SSH: chave privada usada para autenticação SSH.
    • Senha da chave privada SSH: senha longa/senha que protege a chave privada, se houver.
    • Tipo de chave privada SSH: formato da chave privada SSH.

Usar a conexão SFTP em uma integração

Depois de criar a conexão, ela fica disponível na integração da Apigee e no Application Integration. É possível usar a conexão em uma integração pela tarefa "Conectores".

  • Para entender como criar e usar a tarefa "Conectores" na integração da Apigee, consulte Tarefa "Conectores".
  • Para entender como criar e usar a tarefa "Conectores" na Application Integration, consulte Tarefa "Conectores".

Ações

Esta seção lista algumas das ações compatíveis com o conector. Para entender como configurar as ações, consulte Exemplos de ações.

Ação de upload

A tabela a seguir descreve os parâmetros de entrada da ação Upload.

Nome do parâmetro Tipo de dados Obrigatório Descrição
Conteúdo String Não Conteúdo a ser enviado como um arquivo.
ContentBytes String Não Conteúdo de bytes (como uma string Base64) para upload como um arquivo. Use isso para fazer upload de dados binários.
HasBytes Booleano Não Especifica se o conteúdo será enviado como bytes. O valor padrão é false.
RemoteFile String Sim O nome do arquivo no host remoto.
Substituir Booleano Não Especifica se o arquivo remoto deve ser substituído. O valor padrão é false.

Veja como configurar a ação Upload em Exemplos.

Ação de download

A tabela a seguir descreve os parâmetros de entrada da ação Download.

Nome do parâmetro Tipo de dados Obrigatório Descrição
RemoteFile String Sim O nome do arquivo no host remoto.
HasBytes Booleano Não Especifica se o conteúdo deve ser baixado como bytes. O valor padrão é false.

Veja como configurar a ação Download em Exemplos.

Ação MoveFile

A tabela a seguir descreve os parâmetros de entrada da ação MoveFile.

Nome do parâmetro Tipo de dados Obrigatório Descrição
RemoteFile String Sim O caminho do arquivo remoto a ser movido.
DestinationPath String Sim O novo caminho para onde você quer mover o arquivo.

Veja como configurar a ação MoveFile em Exemplos.

Ação RenameFile

A tabela a seguir descreve os parâmetros de entrada da ação RenameFile.

Nome do parâmetro Tipo de dados Obrigatório Descrição
RemoteFile String Sim Caminho e nome do arquivo remoto a ser renomeado.
NewFileName String Sim Novo nome do arquivo remoto.

Veja como configurar a ação RenameFile em Exemplos.

Exemplos

Nesta seção, descrevemos como executar algumas das operações e ações da entidade neste conector. Os exemplos descrevem as seguintes operações:

  • Listar todos os arquivos no diretório
  • Listar arquivos que correspondem a um padrão em um diretório
  • Mover um arquivo
  • Renomear um arquivo
  • Excluir um arquivo
  • Fazer upload de um arquivo de texto ASCII
  • Fazer upload de um arquivo binário
  • Baixar um arquivo de texto ASCII
  • Baixar um arquivo binário
  • Fazer o download de vários arquivos

A tabela a seguir lista os cenários de exemplo e a configuração correspondente na tarefa Connectors:

Tarefa Comando de amostra Configuração
Listar todos os arquivos no diretório ls /
  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione a entidade Root e, em seguida, a operação List.
  3. Clique em Concluído.
Listar arquivos .csv em um diretório ls /tmp/*.csv
  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione o diretório base (/tmp) na lista Entity.
  3. Selecione a operação List e clique em Concluído.
  4. Defina a cláusula de filtro. Para definir a cláusula, na seção Entrada de tarefas da tarefa Conectores, clique em filterClause e, em seguida, insira FilePath LIKE '/tmp/%.csv' no Valor padrão.
Mover um arquivo mv /tmp/dir_A/hello_world.txt /dir_B/dir_C/
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação MoveFile e clique em Concluído.
  3. Na seção Entrada da tarefa da tarefa Connectors, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/dir_A/hello_world.txt",
    "DestinationPath": "/dir_B/dir_C/"
    }

Este exemplo move o arquivo /tmp/dir_A/hello_world.txt para o diretório /dir_B/dir_C/. A execução deste exemplo retorna uma resposta semelhante a esta na variável de saída connectorOutputPayload da tarefa do conector:

[{
"Success":"true"
}]
Renomear um arquivo mv /tmp/hello_world.txt /tmp/hello_world_new.txt
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação RenameFile e clique em Concluído.
  3. Na seção Entrada da tarefa da tarefa Connectors, clique em connectorInputPayload e insira um valor semelhante ao seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/hello_world.txt",
    "NewFilename": "hello_world_new.txt"
    }

Este exemplo renomeia o arquivo hello_world.txt como hello_world_new.txt. A execução deste exemplo retorna uma resposta semelhante a esta na variável de saída connectorOutputPayload da tarefa do conector:

[{
"Success":"true"
}]
Excluir um arquivo rm /tmp/myfile.csv
  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Na lista Entity, selecione o diretório base que tem o arquivo que será movido.
  3. Selecione a operação Delete e clique em Concluído.
  4. Defina o ID da entidade como o caminho completo do arquivo. Para definir o ID da entidade, na seção Task Input da tarefa Connectors, clique em entityId e digite /tmp/myfile.csv no campo Default Value.

    Como alternativa, em vez de especificar o entityId, você também pode definir a filterClause como FilePath LIKE '/tmp/myfile.csv'.

Fazer upload de um arquivo de texto ASCII put file_1.txt /tmp/file_1.txt
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação Upload e clique em Concluído.
  3. Na seção Entrada da tarefa da tarefa Connectors, clique em connectorInputPayload e insira o seguinte no campo Default Value:
    {
      "Content": "This is a sample text!\r\n",
      "RemoteFile": "/tmp/file_1.txt",
      "Overwrite": true
    }
  4. Este exemplo cria o arquivo file_1.txt que tem o conteúdo This is a sample text! no diretório /tmp do servidor SFTP. Qualquer arquivo com o mesmo nome será substituído porque o valor do atributo Overwrite é true.

    Definir o atributo Overwrite é opcional. Por padrão, o valor é false.

Fazer upload de um arquivo binário put image_1.png /tmp/image_1.png Para fazer upload de um conteúdo binário, primeiro é necessário codificar o conteúdo no formato Base64. Você pode escolher a ferramenta que quiser para codificar o conteúdo. As etapas para codificar o conteúdo estão fora do escopo deste documento. Depois de criar o conteúdo como uma string Base64, siga estas etapas:
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação Upload e clique em Concluído.
  3. Na seção Task Input da tarefa Connectors, clique em connectorInputPayload e insira o seguinte no campo Default Value:
    {
      "ContentBytes": "SGVsbG8gd29ybGQ=",
      "RemoteFile": "/tmp/image_1.png",
      "Overwrite": true,
      "HasBytes": true
    }
  4. Este exemplo cria o arquivo image_1.png com o conteúdo conforme especificado no campo ContentBytes. O arquivo é criado no diretório /tmp do servidor SFTP. Qualquer arquivo com o mesmo nome será substituído porque o valor do atributo Overwrite é true.

    Definir o atributo Overwrite é opcional. Por padrão, o valor é false.

Baixar um arquivo de texto ASCII get /tmp/myfile.txt
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação Download e clique em Concluído.
  3. Na seção Task Output da tarefa Connectors, clique em connectorInputPayload e insira o seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/myfile.txt"
    }

O conteúdo do arquivo baixado está disponível como uma string no campo Content do parâmetro de resposta connectorOutputPayload da tarefa do conector.

Baixar um arquivo binário get /tmp/myfile.png
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação Download e clique em Concluído.
  3. Na seção Task Output da tarefa Connectors, clique em connectorInputPayload e insira o seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/myfile.png",
    "HasBytes" : true
    }

O conteúdo do arquivo baixado está disponível como uma string codificada em Base64 no campo ContentBytes do parâmetro de resposta connectorOutputPayload da tarefa do conector.

Fazer o download de vários arquivos
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação Download e clique em Concluído.
  3. Na seção Task Output da tarefa Connectors, clique em connectorInputPayload e insira o seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/myfile*.txt"
    }

Limitações do sistema

O conector SFTP pode processar uma transação por segundo, por , e limita qualquer transação além desse limite. Por padrão, o Integration Connectors aloca dois nós (para melhor disponibilidade) para uma conexão.

Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.

Criar conexões usando o Terraform

Use o recurso do Terraform para criar uma conexão.

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

Para conferir um modelo de exemplo do Terraform para criação de conexão, consulte modelo de exemplo.

Ao criar essa conexão usando o Terraform, defina as seguintes variáveis no arquivo de configuração do Terraform:

Nome do parâmetro Tipo de dados Obrigatório Descrição
remote_path STRING Falso O caminho atual no servidor SFTP.

Esquema JSON para payload

Todos os objetos de entidade em uma conexão SFTP têm um esquema JSON predefinido. Os objetos de entidade em uma conexão SFTP usam o seguinte esquema JSON:

    {
      "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
        }
      }
    }
  

Receber ajuda da comunidade do Google Cloud

Poste suas dúvidas e converse sobre esse conector na comunidade do Google Cloud em Fóruns do Cloud.

A seguir