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:
- No portal ADF, passe o mouse sobre o serviço vinculado SFTP e abra sua carga selecionando o botão de código.
- 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: executarssh-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.
Conteúdos relacionados
Para obter mais ajuda na solução de problemas, tente estes recursos: