Compartilhar via


Solucionar problemas de conectores de FTP, SFTP e HTTP no Azure Data Factory e no Azure Synapse

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo apresenta sugestões para solucionar problemas comuns dos conectores de FTP, SFTP e HTTP no Azure Data Factory e no Azure Synapse.

FTP

Código de erro: FtpFailedToConnectToFtpServer

  • Mensagem: Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.

  • Causa: um tipo de serviço vinculado incorreto pode ser usado para o servidor FTP, como o serviço vinculado FTP Seguro (SFTP) para se conectar a um servidor FTP.

  • Recomendação: verifique a porta do servidor de destino. O FTP usa a porta 21.

Código de erro: FtpFailedToReadFtpData

  • Mensagem: Failed to read data from ftp: The remote server returned an error: 227 Entering Passive Mode (*,*,*,*,*,*).

  • Causa: o intervalo de portas entre 1024 e 65535 não está aberto para transferência de dados sob o modo passivo com suporte pelo pipeline do Data Factory ou do Synapse.

  • Recomendação: verifique as configurações de firewall do servidor de destino. Abra a porta 1024-65535 ou o intervalo de portas especificado no servidor FTP para o endereço IP SHIR/Azure IR.

SFTP

Código de erro: SftpOperationFail

  • Mensagem: Failed to '%operation;'. Check detailed error from SFTP.

  • Causa: um problema com a operação SFTP.

  • Recomendação: verifique os detalhes do erro.

Código de erro: SftpRenameOperationFail

  • Mensagem: Failed to rename the temp file. Your SFTP server doesn't support renaming temp file, set "useTempFileRename" as false in copy sink to disable uploading to temp file.

  • Causa: seu servidor SFTP não dá suporte à renomeação do arquivo temporário.

  • Recomendação: defina "useTempFileRename" como false no coletor de cópia para desabilitar o upload para o arquivo temporário.

Código de erro: SftpInvalidSftpCredential

  • Mensagem: Invalid SFTP credential provided for '%type;' authentication type.

  • Causa: o conteúdo da chave privada é obtido do cofre de chaves do Azure ou SDK, mas não é codificado corretamente.

  • Recomendação:

    Se o conteúdo da chave privada for do seu cofre de chaves, o arquivo da chave original pode funcionar se você carregá-lo diretamente para o serviço vinculado a SFTP.

    Para saber mais, confira Copiar dados de e para o servidor SFTP usando os pipelines do Data Factory ou do Synapse. O conteúdo da chave privada é o conteúdo da chave privada SSH codificada em base64.

    Codifique todo o arquivo de chave privada original inteiro com codificação base64 e armazene a cadeia de caracteres codificada em seu cofre de chaves. O arquivo de chave privada original é aquele que pode funcionar no serviço vinculado a SFTP se você selecionar Carregar do arquivo.

    Aqui estão alguns exemplos que você pode usar para gerar a cadeia de caracteres:

    • Usar código C#:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Executar código Python:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Use uma ferramenta de conversão base64 de terceiros. Recomendamos a ferramenta Codificar para formato Base64.

  • Causa: o formato de conteúdo da chave incorreto foi escolhido.

  • Recomendação:

    A chave privada SSH do formato PKCS#8 (começa com "-----BEGIN ENCRYPTED PRIVATE KEY-----") atualmente não tem suporte para acesso ao servidor SFTP.

    Para converter a chave para o formato de chave SSH tradicional, começando com "----- BEGIN RSA PRIVATE KEY -----", execute os seguintes comandos:

    openssl pkcs8 -in pkcs8_format_key_file -out traditional_format_key_file
    chmod 600 traditional_format_key_file
    ssh-keygen -f traditional_format_key_file -p
    
  • Causa: credenciais inválidas ou conteúdo de chave privada.

  • Recomendação: para ver se o arquivo de chave ou senha está correta, faça uma outra verificação com ferramentas como o WinSCP.

Falha na atividade de cópia de SFTP

  • Sintomas:

    • Código de erro: UserErrorInvalidColumnMappingColumnNotFound
    • Mensagem de erro: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Causa: a origem não inclui uma coluna chamada "AccMngr".

  • Resolução: para determinar se a coluna "AccMngr" existe, verifique novamente a configuração do conjunto de configurações mapeando a coluna do conjunto de banco de destino.

Código de erro: SftpFailedToConnectToSftpServer

  • Mensagem: Failed to connect to SFTP server '%server;'.

  • Causa: Se a mensagem de erro contiver a string "A operação de leitura de soquete atingiu o tempo limite após 30.000 milissegundos", uma possível causa é o uso de um tipo de serviço vinculado incorreto para o servidor SFTP. Por exemplo, você pode estar usando o serviço vinculado a FTP para se conectar ao servidor SFTP.

  • Recomendação: verifique a porta do servidor de destino. Por padrão, o SFTP usa a porta 22.

  • Causa: se a mensagem de erro contiver a string "A resposta do servidor não contém identificação do protocolo SSH", uma possível causa é que o servidor SFTP restringiu a conexão. Várias conexões são criadas para baixar do servidor SFTP em paralelo e, às vezes, encontrará limitação do servidor SFTP. Normalmente, servidores diferentes retornam erros diferentes quando encontram limitação.

  • Recomendação:

    Especifique o número máximo de conexões simultâneas do conjunto de dados SFTP como 1 e execute novamente a atividade de cópia. Se a atividade for bem-sucedida, você pode ter certeza de que o estrangulamento é a causa.

    Se você deseja promover a baixa taxa de transferência, entre em contato com o administrador do SFTP para aumentar o limite de contagem de conexões simultâneas ou você pode fazer o seguinte:

    • Se você estiver usando IR auto-hospedado, adicione o IP da máquina IR hospedado automaticamente à lista de permissões.
    • Se você estiver usando o IR do Azure, adicione endereços IP do Azure Integration Runtime. Se você não quiser adicionar um intervalo de IPs à lista de permissões do servidor SFTP, use o IR auto-hospedado.

Código de erro: SftpPermissionDenied

  • Mensagem: Permission denied to access '%path;'

  • Causa: o usuário especificado não tem permissão de leitura ou gravação para a pasta ou arquivo durante a operação.

  • Recomendação: conceda ao usuário permissão para ler ou gravar na pasta ou nos arquivos no servidor SFTP.

Código de erro: SftpAuthenticationFailure

  • Mensagem: Meet authentication failure when connect to Sftp server '%server;' using '%type;' authentication type. Please make sure you are using the correct authentication type and the credential is valid. For more details, see our troubleshooting docs.

  • Causa: a credencial especificada (sua senha ou chave privada) é inválida.

  • Recomendação: verifique sua credencial.

  • Causa: o tipo de autenticação especificado não é permitido ou não é suficiente para concluir a autenticação no servidor SFTP.

  • Recomendação: aplique as seguintes opções para usar o tipo de autenticação correto:

    • Se o servidor exigir uma senha, use "Básico".
    • Se o servidor exigir uma chave privada, use "Autenticação de chave pública SSH".
    • Se o servidor exigir "senha" e "chave privada", use "Autenticação de vários fatores".
  • Causa: o servidor SFTP requer "teclado interativo" para autenticação, mas você forneceu a "senha".

  • Recomendação:

    "teclado interativo" é um método de autenticação especial, que é diferente de "senha". Isso significa que, ao fazer logon em um servidor, você deve inserir a senha manualmente e não pode usar a senha salva anteriormente. Mas o ADF (Azure Data Factory) é um serviço de transferência de dados agendado e não há nenhuma caixa de entrada pop-up que permite que você forneça a senha no runtime.

    Como um comprometimento, é fornecida uma opção para simular a entrada em segundo plano em vez de sua entrada manual real, que é equivalente a alterar "interativo com o teclado" para "senha". Se você puder aceitar essa preocupação de segurança, siga as etapas abaixo para habilitá-la:

    1. No portal do ADF, passe o mouse sobre o serviço vinculado do SFTP e abra seu conteúdo selecionando o botão de código.
    2. Adicione "allowKeyboardInteractiveAuth": true à seção "typeProperties".

Não é possível se conectar ao SFTP porque os algoritmos de troca de chaves fornecidos pelo SFTP não são compatíveis com o ADF

  • Sintomas: não é possível se conectar ao SFTP por meio do ADF e a seguinte mensagem de erro aparece: Failed to negotiate key exchange algorithm.

  • Causa: os algoritmos de troca de chaves fornecidos pelo servidor SFTP não são compatíveis com o ADF. Os algoritmos de troca de chaves compatíveis com o ADF são:

    • curve25519-sha256
    • curve25519-sha256@libssh.org
    • ecdh-sha2-nistp256
    • ecdh-sha2-nistp384
    • ecdh-sha2-nistp521
    • diffie-hellman-group-exchange-sha256
    • diffie-hellman-group-exchange-sha1
    • diffie-hellman-group16-sha512
    • diffie-hellman-group14-sha256
    • diffie-hellman-group14-sha1
    • diffie-hellman-group1-sha1

    A versão mais recente para dar suporte a algoritmos de troca de chaves acima no SHIR é a versão 5.19.

Código de erro: SftpInvalidHostKeyFingerprint

  • Mensagem: Host key finger-print validation failed. Expected fingerprint is '<value in linked service>', real finger-print is '<server real value>'

  • Causa: o Azure Data Factory agora dá suporte a algoritmos de chave de host mais seguros no conector de SFTP. Para os algoritmos recém-adicionados, é necessário obter a impressão digital correspondente no servidor SFTP.

    Os algoritmos com suporte recentemente adicionado são:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Recomendação: obtenha uma impressão digital válida usando o Nome da Chave de Host na mensagem de erro real finger-print no servidor SFTP. Você pode executar o comando para obter a impressão digital no servidor SFTP. Por exemplo: execute ssh-keygen -E md5 -lf <keyFilePath> no servidor Linux para obter a impressão digital. O comando pode variar entre diferentes tipos de servidor.

Código de erro: UnsupportedCompressionTypeWhenDisableChunking

  • Mensagem: "Disable chunking" is not compatible with "ZipDeflate" decompression.

  • Causa: Desabilitar agrupamento não é compatível com a descompactação ZipDeflate.

  • Recomendação: Carregue os dados binários para uma área de preparo (por exemplo: Armazenamento de Blobs do Azure) e descompacte-os em outra atividade de cópia.

HTTP

Código de erro: HttpFileFailedToRead

  • Mensagem: Failed to read data from http server. Check the error from http server:%message;

  • Causa: esse erro ocorre quando o pipeline do Data Factory ou do Synapse se comunica com o servidor HTTP, mas a operação de solicitação HTTP falha.

  • Recomendação: verifique o código de status HTTP na mensagem de erro e corrija o problema do servidor remoto.

Código de erro: HttpSourceUnsupportedStatusCode

  • Mensagem: Http source doesn't support HTTP Status Code '%code;'.

  • Causa: esse erro ocorre quando o Azure Data Factory solicita a origem HTTP, mas obtém um código de status inesperado.

  • Recomendação: para obter mais informações sobre o código de status HTTP, consulte este documento.

Para obter mais ajuda com a solução de problemas, experimente estes recursos: