FTP

O conetor FTP permite-lhe estabelecer ligação a um servidor FTP e realizar operações de transferência de ficheiros.

Antes de começar

Antes de usar o conector FTP, conclua as seguintes tarefas:

  • No seu projeto do Google Cloud:
    • Certifique-se de que a conetividade de rede está configurada. Para obter informações sobre padrões de rede, consulte o artigo Conetividade de rede.
    • Conceda a função IAM roles/connectors.admin ao utilizador que está a configurar o conetor.
    • Conceda as seguintes funções de IAM à conta de serviço que quer usar para o conector:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Uma conta de serviço é um tipo especial de Conta Google destinada a representar um utilizador não humano que precisa de autenticação e autorização para aceder a dados nas APIs Google. Se não tiver uma conta de serviço, tem de criar uma. O conector e a conta de serviço têm de pertencer ao mesmo projeto. Para mais informações, consulte Criar uma conta de serviço.

    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (API Connectors)

      Para saber como ativar serviços, consulte o artigo Ativar serviços.

    Se estes serviços ou autorizações não tiverem sido ativados anteriormente para o seu projeto, é-lhe pedido que os ative quando configurar o conector.

Configure o conetor

Uma associação é específica de uma origem de dados. Isto significa que, se tiver muitas origens de dados, tem de criar uma associação separada para cada origem de dados. Para criar uma associação, faça o seguinte:

  1. Na Cloud Console, aceda à página Integration Connectors > Ligações e, de seguida, selecione ou crie um projeto do Google Cloud.

    Aceda à página Ligações

  2. Clique em + Criar novo para abrir a página Criar associação.
  3. Na secção Localização, escolha a localização para a ligação.
    1. Região: selecione uma localização na lista pendente.

      Para ver a lista de todas as regiões suportadas, consulte o artigo Localizações.

    2. Clicar em Seguinte.
  4. Na secção Detalhes da associação, conclua o seguinte:
    1. Conetor: selecione FTP na lista pendente de conetores disponíveis.
    2. Versão do conetor: selecione a versão do conetor na lista pendente de versões disponíveis.
    3. No campo Nome da ligação, introduza um nome para a instância de ligação.

      Os nomes das associações têm de cumprir os seguintes critérios:

      • Os nomes das associações podem usar letras, números ou hífenes.
      • As letras têm de ser minúsculas.
      • Os nomes das associações têm de começar com uma letra e terminar com uma letra ou um número.
      • Os nomes das associações não podem exceder 49 carateres.
    4. Opcionalmente, introduza uma Descrição para a instância de associação.
    5. Opcionalmente, ative o Registo na nuvem e, em seguida, selecione um nível de registo. Por predefinição, o nível do registo está definido como Error.
    6. Conta de serviço: selecione uma conta de serviço que tenha as funções necessárias.
    7. Opcionalmente, configure as definições do nó de associação:

      • Número mínimo de nós: introduza o número mínimo de nós de ligação.
      • Número máximo de nós: introduza o número máximo de nós de ligação.

      Um nó é uma unidade (ou uma réplica) de uma ligação que processa transações. São necessários mais nós para processar mais transações para uma ligação e, inversamente, são necessários menos nós para processar menos transações. Para compreender como os nós afetam os preços dos conectores, consulte o artigo Preços dos nós de ligação. Se não introduzir valores, por predefinição, os nós mínimos são definidos como 2 (para uma melhor disponibilidade) e os nós máximos são definidos como 50.

    8. Profundidade de obtenção de ficheiros: especifique o nível de profundidade das pastas que quer consultar a partir da tabela Root.
    9. Passivo: controla se o servidor deve ser direcionado para o modo passivo. Recomendado se estiver atrás de uma firewall.
    10. Caminho remoto: o caminho atual no servidor FTP.
    11. Modo SSL: o mecanismo de autenticação a usar quando se liga ao servidor FTP.
    12. Profundidade da tabela: o nível de profundidade para apresentar as subpastas como vistas.
    13. Usar MLSD: usa fichas para processamento automático. Usado apenas para servidores FTP.
    14. Opcionalmente, clique em + Adicionar etiqueta para adicionar uma etiqueta à associação sob a forma de um par chave/valor.
    15. Clicar em Seguinte.
  5. Na secção Destinos, introduza os detalhes do anfitrião remoto (sistema de back-end) ao qual quer estabelecer ligação.
    1. Tipo de destino: selecione um Tipo de destino.
      • Para especificar o nome de anfitrião ou o endereço IP de destino, selecione Endereço do anfitrião e introduza o endereço no campo Anfitrião 1.
      • Para estabelecer uma ligação privada, selecione Anexo do ponto final e escolha o anexo necessário na lista Anexo do ponto final.

      Se quiser estabelecer uma ligação pública aos seus sistemas de back-end com segurança adicional, pode considerar configurar endereços IP estáticos de saída para as suas ligações e, em seguida, configurar as regras da firewall para permitir apenas os endereços IP estáticos específicos.

      Para introduzir destinos adicionais, clique em +Adicionar destino.

    2. Clicar em Seguinte.
  6. Na secção Autenticação, introduza os detalhes de autenticação.
    1. Selecione um Tipo de autenticação e introduza os detalhes relevantes.

      Os seguintes tipos de autenticação são suportados pela ligação FTP:

      • Nome de utilizador e palavra-passe
    2. Para saber como configurar estes tipos de autenticação, consulte o artigo Configurar autenticação.

    3. Clicar em Seguinte.
  7. Rever: reveja os detalhes da ligação e da autenticação.
  8. Clique em Criar.

Configure a autenticação

Introduza os detalhes com base na autenticação que quer usar.

  • Nome de utilizador e palavra-passe
    • Nome de utilizador: o nome de utilizador de FTP a usar para a ligação.
    • Palavra-passe: o Secret do Secret Manager que contém a palavra-passe associada ao nome de utilizador do FTP.

Entidades, operações e ações

Todos os conetores de integração oferecem uma camada de abstração para os objetos da aplicação ligada. Só pode aceder aos objetos de uma aplicação através desta abstração. A abstração é exposta como entidades, operações e ações.

  • Entidade: pode considerar uma entidade como um objeto ou uma coleção de propriedades na aplicação ou no serviço associado. A definição de uma entidade difere de um conetor para um conetor. Por exemplo, num conetor de base de dados, as tabelas são as entidades. Num conetor de servidor de ficheiros, as pastas são as entidades. Num conetor de sistema de mensagens, as filas são as entidades.

    No entanto, é possível que um conector não suporte ou não tenha entidades, caso em que a lista Entities estará vazia.

  • Operação: uma operação é a atividade que pode realizar numa entidade. Pode realizar qualquer uma das seguintes operações numa entidade:

    Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para a entidade. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa de conectores. No entanto, se um conector não suportar nenhuma das operações de entidades, essas operações não suportadas não são apresentadas na lista Operations.

  • Ação: uma ação é uma função de primeira classe que é disponibilizada à integração através da interface do conetor. Uma ação permite-lhe fazer alterações a uma ou mais entidades e varia de conetor para conetor. Normalmente, uma ação tem alguns parâmetros de entrada e um parâmetro de saída. No entanto, é possível que um conector não suporte nenhuma ação, caso em que a lista Actions está vazia.

Limitações do sistema

O conector FTP pode processar 1 transação por segundo, por , e limita todas as transações que excedam este limite. Por predefinição, os Integration Connectors atribuem 2 nós (para uma melhor disponibilidade) a uma ligação.

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

Ações

Esta secção apresenta algumas das ações suportadas pelo conetor. Para compreender como configurar as ações, consulte os exemplos de ações.

Ação de carregamento

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

Nome do parâmetro Tipo de dados Obrigatória Descrição
Conteúdo String Não Conteúdo a carregar como um ficheiro.
ContentBytes String Não Conteúdo de bytes (como uma string Base64) a carregar como um ficheiro. Use esta opção para carregar dados binários.
HasBytes Booleano Não Especifica se o conteúdo deve ser carregado como bytes. O valor predefinido é false.
RemoteFile String Sim O nome do ficheiro no anfitrião remoto.
Substituir Booleano Não Especifica se o ficheiro remoto deve ser substituído. O valor predefinido é false.

Para ver exemplos de como configurar a ação Upload, consulte a secção Exemplos.

Ação de transferência

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

Nome do parâmetro Tipo de dados Obrigatória Descrição
RemoteFile String Sim O nome do ficheiro no anfitrião remoto.
HasBytes Booleano Não Especifica se o conteúdo deve ser transferido como bytes. O valor predefinido é false.

Para ver exemplos de como configurar a ação Download, consulte a secção Exemplos.

Ação MoveFile

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

Nome do parâmetro Tipo de dados Obrigatória Descrição
RemoteFile String Sim O caminho do ficheiro remoto a mover.
DestinationPath String Sim O novo caminho para o qual quer mover o ficheiro.

Para ver exemplos de como configurar a ação MoveFile, consulte a secção Exemplos.

Ação RenameFile

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

Nome do parâmetro Tipo de dados Obrigatória Descrição
RemoteFile String Sim Caminho e nome do ficheiro remoto cujo nome vai ser mudado.
NewFileName String Sim Novo nome do ficheiro remoto.

Para ver exemplos de como configurar a ação RenameFile, consulte a secção Exemplos.

Exemplos

Esta secção descreve como realizar algumas das operações e ações de entidades neste conector. Os exemplos descrevem as seguintes operações:

  • Listar todos os ficheiros no diretório raiz
  • Listar ficheiros que correspondem a um padrão num diretório
  • Mova um ficheiro
  • Mude o nome de um ficheiro
  • Elimine um ficheiro
  • Carregue um ficheiro de texto ASCII
  • Carregue um ficheiro binário
  • Transfira um ficheiro de texto ASCII
  • Transfira um ficheiro binário

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

Tarefa Comando de exemplo Configuração
Listar todos os ficheiros no diretório raiz 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 ficheiros .csv num 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, de seguida, clique em Concluído.
  4. Defina a cláusula do filtro. Para definir a cláusula, na secção Task Input da tarefa Connectors, clique em filterClause e, de seguida, introduza FilePath LIKE '/tmp/%.csv' no campo Default Value.
Mova um ficheiro 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, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conectores, clique em connectorInputPayload e, de seguida, introduza 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 ficheiro /tmp/dir_A/hello_world.txt para o diretório /dir_B/dir_C/. A execução deste exemplo devolve uma resposta semelhante à seguinte na variável de saída connectorOutputPayload da tarefa do conetor:

[{
"Success":"true"
}]
Mude o nome de um ficheiro 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, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conectores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/hello_world.txt",
    "NewFilename": "hello_world_new.txt"
    }

Este exemplo muda o nome do ficheiro hello_world.txt para hello_world_new.txt. A execução deste exemplo devolve uma resposta semelhante à seguinte na variável de saída connectorOutputPayload da tarefa do conetor:

[{
"Success":"true"
}]
Elimine um ficheiro 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 ficheiro a mover.
  3. Selecione a operação Delete e, de seguida, clique em Concluído.
  4. Defina o ID da entidade para o caminho completo do ficheiro. Para definir o ID da entidade, na secção Task Input da tarefa Connectors, clique em entityId e, de seguida, introduza /tmp/myfile.csv no campo Default Value.

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

Carregue um ficheiro 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, de seguida, clique em Concluído.
  3. Na secção Entrada de tarefas da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza 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 ficheiro file_1.txt com o conteúdo This is a sample text! no diretório /tmp do servidor FTP. Além disso, qualquer ficheiro existente com o mesmo nome é substituído porque o valor do atributo Overwrite é true.

    A definição do atributo Overwrite é opcional. Por predefinição, o valor é false.

Carregue um ficheiro binário put image_1.png /tmp/image_1.png Para carregar conteúdo binário, tem de codificar primeiro o conteúdo no formato Base64. Pode escolher uma ferramenta à sua escolha para codificar o conteúdo. Os passos para codificar o conteúdo estão fora do âmbito deste documento. Depois de ter o conteúdo como uma string Base64, siga estes passos:
  1. Na caixa de diálogo Configure connector task, clique em Actions.
  2. Selecione a ação Upload e, de seguida, clique em Concluído.
  3. Na secção Entrada de tarefas da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza o seguinte no campo Default Value:
    {
      "ContentBytes": "SGVsbG8gd29ybGQ=",
      "RemoteFile": "/tmp/image_1.png",
      "Overwrite": true,
      "HasBytes": true
    }
  4. Este exemplo cria o ficheiro image_1.png com o conteúdo especificado no campo ContentBytes. O ficheiro é criado no diretório /tmp do servidor FTP. Além disso, qualquer ficheiro existente com o mesmo nome é substituído porque o valor do atributo Overwrite é true.

    A definição do atributo Overwrite é opcional. Por predefinição, o valor é false.

Transfira um ficheiro 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, de seguida, clique em Concluído.
  3. Na secção Resultado da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza o seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/myfile.txt"
    }

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

Transfira um ficheiro 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, de seguida, clique em Concluído.
  3. Na secção Resultado da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza o seguinte no campo Default Value:
    {
    "RemoteFile": "/tmp/myfile.png",
    "HasBytes" : true
    }

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

Esquema JSON para o payload

Todos os objetos de entidade numa ligação FTP têm um esquema JSON predefinido. Compreender bem o esquema permite-lhe configurar facilmente os valores de payload de entrada ou saída. Os objetos de entidade numa ligação FTP 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
      }
    }
  }

Configuração dinâmica de filterClause

Para as operações List, Update e Delete, pode definir o valor da variável de entrada filterClause dinamicamente no tempo de execução através da tarefa Mapeamento de dados na sua integração. Por exemplo, pode querer enviar o valor da cláusula de filtro quando invocar o acionador da API na sua integração. A imagem seguinte mostra um exemplo de mapeamento para a variável filterClause no editor de mapeamento de dados da tarefa de mapeamento de dados: Definir cláusula de filtro no editor de mapeamento de dados

Crie ligações com o Terraform

Pode usar o recurso do Terraform para criar uma nova associação.

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

Para ver um modelo do Terraform de exemplo para a criação de ligações, consulte o modelo de exemplo.

Quando criar esta associação através do Terraform, tem de definir as seguintes variáveis no ficheiro de configuração do Terraform:

Nome do parâmetro Tipo de dados Obrigatória Descrição
file_retrieval_depth STRING Falso Especifique o nível de profundidade das pastas que quer consultar a partir da tabela Root.
passivo BOOLEAN Falso Controla se o servidor deve ser direcionado para o modo passivo. Recomendado se estiver atrás de uma firewall.
remote_path STRING Falso O caminho atual no servidor FTP.
table_depth INTEGER Falso O nível de profundidade para apresentar subpastas como vistas.
use_mlsd BOOLEAN Falso Usa fichas para processamento automático. Usado apenas para servidores FTP.

Use a ligação FTP numa integração

Depois de criar a ligação, esta fica disponível no Apigee Integration e no Application Integration. Pode usar a ligação numa integração através da tarefa Conectores.

  • Para compreender como criar e usar a tarefa Connectors no Apigee Integration, consulte o artigo Tarefa Connectors.
  • Para compreender como criar e usar a tarefa Connectors na integração de aplicações, consulte o artigo Tarefa Connectors.

Obtenha ajuda da comunidade do Google Cloud

Pode publicar as suas perguntas e discutir este conector na comunidade do Google Cloud nos Fóruns do Cloud.

O que se segue?