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:
- 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.
- 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: executessh-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.
Conteúdo relacionado
Para obter mais ajuda com a solução de problemas, experimente estes recursos: