Partilhar via


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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

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

Este artigo fornece sugestões para solucionar problemas comuns com os conectores 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 usar o serviço vinculado FTP seguro (SFTP) para se conectar a um servidor FTP.

  • Recomendação: Verifique a porta do servidor de destino. FTP utiliza 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 no modo passivo suportado pelo data factory ou pelo pipeline 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 IR SHIR/Azure.

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 do SFTP.

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 suporta a renomeação do arquivo temporário.

  • Recomendação: Defina "useTempFileRename" como false no coletor de cópia para desativar 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 é buscado no cofre de chaves ou SDK do Azure, mas não está codificado corretamente.

  • Recomendação:

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

    Para obter mais informações, consulte Copiar dados de e para o servidor SFTP usando data factory ou pipelines Synapse. O conteúdo da chave privada é o conteúdo de chave privada SSH codificado em base64.

    Codifique todo o arquivo de chave privada original 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 SFTP se você selecionar Carregar do arquivo.

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

    • Use o código C#:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Use o 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 de formato Codificar para Base64.

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

  • Recomendação:

    A chave privada SSH de formato PKCS#8 (comece com "-----BEGIN ENCRYPTED PRIVATE KEY-----") não é suportada atualmente para acessar o 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 a senha estão corretos, verifique novamente com ferramentas como o WinSCP.

Falha na atividade de cópia SFTP

  • Sintomas:

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

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

Código de erro: SftpFailedToConnectToSftpServer

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

  • Causa: Se a mensagem de erro contiver a cadeia de caracteres "A operação de leitura de soquete expirou após 30.000 milissegundos", uma causa possível é que um tipo de serviço vinculado incorreto é usado para o servidor SFTP. Por exemplo, você pode estar usando o serviço vinculado 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 cadeia de caracteres "A resposta do servidor não contém identificação do protocolo SSH", uma causa possível é que o servidor SFTP limitou a conexão. Várias conexões são criadas para baixar do servidor SFTP em paralelo e, às vezes, ele encontra a limitação do servidor SFTP. Normalmente, servidores diferentes retornam erros diferentes quando encontram limitação.

  • Recomendação:

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

    Se você quiser 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 execute uma das seguintes ações:

    • Se você estiver usando IR auto-hospedado, adicione o IP da máquina de IR auto-hospedado à 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 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 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 a 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 seu servidor requer uma senha, use "Básico".
    • Se o seu servidor requer uma chave privada, use "autenticação de chave pública SSH".
    • Se o seu servidor requer "senha" e "chave privada", use "Autenticação de múltiplos fatores".
  • Causa: Seu servidor SFTP requer "teclado interativo" para autenticação, mas você forneceu "senha".

  • Recomendação:

    "keyboard-interactive" é um método de autenticação especial, que é diferente de "password". Isso significa que, ao fazer login em um servidor, você deve digitar a senha manualmente e não pode usar a senha salva anteriormente. Mas o Azure Data Factory (ADF) é um serviço de transferência de dados agendado e não há nenhuma caixa de entrada pop-up que permita fornecer a senha no tempo de execução.

    Como compromisso, é fornecida uma opção para simular a entrada em segundo plano em vez da sua entrada manual real, o que equivale a alterar o "teclado-interativo" para "senha". Se você puder aceitar esse problema de segurança, siga as etapas abaixo para habilitá-lo:

    1. No portal ADF, passe o mouse sobre o serviço vinculado SFTP e abra sua carga selecionando o botão de código.
    2. Adicione "allowKeyboardInteractiveAuth": true na seção "typeProperties".

Não é possível conectar-se ao SFTP devido a algoritmos de troca de chaves fornecidos pelo SFTP não são suportados no ADF

  • Sintomas: Você não consegue se conectar ao SFTP via ADF e atender à seguinte mensagem de erro: Failed to negotiate key exchange algorithm.

  • Causa: Os algoritmos de troca de chaves fornecidos pelo servidor SFTP não são suportados no ADF. Os algoritmos de troca de chaves suportados pelo ADF são:

    • Curva25519-SHA256
    • curve25519-sha256@libssh.org
    • ecdh-sha2-nistp256
    • ecdh-sha2-nistp384
    • ECDH-SHA2-NISTP521
    • diffie-hellman-group-exchange-sha256
    • diffie-hellman-grupo-exchange-sha1
    • diffie-hellman-group16-sha512
    • diffie-hellman-group14-sha256
    • diffie-hellman-grupo14-sha1
    • diffie-hellman-grupo1-sha1

    A última versão para suportar 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 oferece suporte a algoritmos de chave de host mais seguros no conector SFTP. Para os algoritmos recém-adicionados, é necessário obter a impressão digital correspondente no servidor SFTP.

    Os algoritmos recentemente suportados 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 real finger-print mensagem de erro no servidor SFTP. Você pode executar o comando para obter a impressão digital no seu servidor SFTP. Por exemplo: executar 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: Desativar fragmentação não é compatível com a descompressão ZipDeflate .

  • Recomendação: Carregue os dados binários em 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: Este erro ocorre quando uma fábrica de dados ou um pipeline Synapse fala 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 acontece quando o Azure Data Factory solicita a fonte 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 na solução de problemas, tente estes recursos: