Solución de problemas de los conectores FTP, SFTP y HTTP en Azure Data Factory y Azure Synapse
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga más información sobre cómo iniciar una nueva evaluación gratuita.
En este artículo se proporcionan sugerencias para solucionar problemas comunes con los conectores FTP, SFTP y HTTP en Azure Data Factory y Azure Synapse.
FTP
Código de error: FtpFailedToConnectToFtpServer
Mensaje:
Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.
Causa: Podría haberse usado un tipo de servicio vinculado incorrecto para el servidor FTP, como, por ejemplo, cuando se utiliza el servicio vinculado FTP (SFTP) para conectarse a un servidor FTP.
Recomendación: compruebe el puerto del servidor de destino. FTP utiliza el puerto 21.
Código de error: FtpFailedToReadFtpData
Mensaje:
Failed to read data from ftp: The remote server returned an error: 227 Entering Passive Mode (*,*,*,*,*,*).
Causa: el intervalo de puertos entre el 1024 y el 65 535 no está abierto para la transferencia de datos en el modo pasivo compatible con la factoría de datos o la canalización de Synapse.
Recomendación: compruebe la configuración del firewall del servidor de destino. Abra los puertos entre el 1024 y el 65 535 o el intervalo de puertos especificado en el servidor FTP para la dirección IP de Azure IR o SHIR.
SFTP
Código de error: SftpOperationFail
Mensaje:
Failed to '%operation;'. Check detailed error from SFTP.
Causa: Problema con la operación SFTP.
Recomendación: compruebe los detalles del error desde SFTP.
Código de error: SftpRenameOperationFail
Mensaje:
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: El servidor SFTP no admite el cambio de nombre del archivo temporal.
Recomendación: establezca "useTempFileRename" como false en el receptor de copia para deshabilitar la carga en el archivo temporal.
Código de error: SftpInvalidSftpCredential
Mensaje:
Invalid SFTP credential provided for '%type;' authentication type.
Causa: El contenido de la clave privada se ha obtenido de Azure Key Vault o del SDK, pero no se ha codificado correctamente.
Recomendación:
Si el contenido de la clave privada procede del almacén de claves, el archivo de clave original puede funcionar si lo carga directamente en el servicio vinculado de SFTP.
Para obtener más información, consulte Copia de datos hacia y desde un servidor SFTP mediante canalizaciones de Data Factory o Synapse. El contenido de la clave privada es contenido de clave privada SSH codificado en Base64.
Codifique todo el archivo de clave privada original con codificación Base64 y almacene la cadena codificada en el almacén de claves. El archivo de clave privada original es el que puede funcionar en el servicio vinculado de SFTP si selecciona Cargar en el archivo.
Estos son algunos ejemplos que puede usar para generar la cadena:
Mediante código en C#:
byte[] keyContentBytes = File.ReadAllBytes(Private Key Path); string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
Mediante código de Python:
import base64 rfd = open(r'{Private Key Path}', 'rb') keyContent = rfd.read() rfd.close() print base64.b64encode(Key Content)
Use una herramienta de conversión de Base64 de terceros. Se recomienda la herramienta Encode to Base64 format.
Causa: Se ha elegido un formato de contenido de clave incorrecto.
Recomendación:
La clave privada de SSH con el formato PKCS#8 (que empieza por "-----BEGIN ENCRYPTED PRIVATE KEY-----") no se admite actualmente para acceder al servidor SFTP.
Para convertir la clave al formato de clave SSH tradicional, que empieza por "-----BEGIN RSA PRIVATE KEY-----", ejecute los siguientes 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: Contenido de clave privada o credenciales no válido.
Recomendación: para comprobar si el archivo de clave o la contraseña son correctos, use herramientas como WinSCP.
Error en la actividad de copia de SFTP
Síntomas:
- Código de error: UserErrorInvalidColumnMappingColumnNotFound
- Mensaje de error:
Column 'AccMngr' specified in column mapping cannot be found in source data.
Causa: El origen no incluye una columna denominada "AccMngr".
Solución: Para determinar si existe la columna "AccMngr", vuelva a comprobar la configuración del conjunto de datos asignando la columna del conjunto de datos de destino.
Código de error: SftpFailedToConnectToSftpServer
Mensaje:
Failed to connect to SFTP server '%server;'.
Causa: Si el mensaje de error contiene la cadena "La operación de lectura del socket ha agotado el tiempo de espera después de 30 000 milisegundos", una posible causa es que se use un tipo de servicio vinculado incorrecto para el servidor SFTP. Por ejemplo, podría estar usando el servicio vinculado FTP para conectarse al servidor SFTP.
Recomendación: compruebe el puerto del servidor de destino. De forma predeterminada, SFTP usa el puerto 22.
Causa: Si el mensaje de error contiene la cadena "La respuesta del servidor no contiene la identificación del protocolo SSH", una posible causa es que el servidor SFTP haya limitado la conexión. Se crean varias conexiones para realizar descargas del servidor SFTP en paralelo y, a veces, se alcanza la limitación del servidor SFTP. Normalmente, los distintos servidores devuelven errores diferentes cuando encuentran limitaciones.
Recomendación:
Especifique el número máximo de conexiones simultáneas del conjunto de datos SFTP como 1 y vuelva a ejecutar la actividad de copia. Si la actividad se realiza correctamente, puede estar seguro de que la limitación era la causa.
Si quiere promocionar el rendimiento bajo, póngase en contacto con el administrador de SFTP para aumentar el límite de conexiones simultáneas, o también puede hacer lo siguiente:
- Si usa el entorno de ejecución de integración autohospedado, agregue la dirección IP de la máquina de dicho entorno a la lista de permitidos.
- Si usa Azure IR, agregue direcciones IP de Azure Integration Runtime. Si no quiere agregar un intervalo de direcciones IP a la lista de permitidos del servidor SFTP, use en su lugar el entorno de ejecución de integración autohospedado.
Código de error: SftpPermissionDenied
Mensaje:
Permission denied to access '%path;'
Causa: el usuario especificado no tiene permiso de lectura o escritura para la carpeta o el archivo cuando está en funcionamiento.
Recomendación: conceda al usuario permiso para leer o escribir en la carpeta o los archivos del servidor SFTP.
Código de error: SftpAuthenticationFailure
Mensaje:
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: las credenciales especificadas (su contraseña o clave privada) no son válidas.
Recomendación: compruebe sus credenciales.
Causa: el tipo de autenticación especificado no se permite o no es suficiente para completar la autenticación en el servidor SFTP.
Recomendación: aplique las siguientes opciones para usar el tipo de autenticación correcto:
- Si el servidor requiere una contraseña, use "Básico".
- Si el servidor requiere una clave privada, use "Autenticación de clave pública SSH".
- Si el servidor requiere tanto una contraseña como una clave privada, use "Autenticación multifactor".
Causa: el servidor SFTP requiere "keyboard-interactive" para la autenticación, pero ha proporcionado la contraseña.
Recomendación:
"keyboard-interactive" es un método de autenticación especial, que es diferente de la contraseña. Esto significa que al iniciar sesión en un servidor, debe escribir la contraseña manualmente y no puede usar la contraseña guardada anteriormente. Pero Azure Data Factory (ADF) es un servicio de transferencia de datos programado y no hay ningún cuadro de entrada emergente que le permita proporcionar la contraseña en el entorno de ejecución.
Como solución intermedia, se proporciona una opción para simular la entrada en segundo plano en lugar de la entrada manual real, lo que equivale a cambiar "keyboard-interactive" por la contraseña. Si puede aceptar este problema de seguridad, siga estos pasos para habilitarlo:
- En el portal de ADF, mantenga el puntero sobre el servicio vinculado de SFTP y abra su carga seleccionando el botón de código.
- Agregue
"allowKeyboardInteractiveAuth": true
en la sección "typeProperties".
No se puede conectar a SFTP debido a que los algoritmos de intercambio de claves proporcionados por SFTP no se admiten en ADF
Síntomas: No puede conectarse a SFTP a través de ADF y cumplir el siguiente mensaje de error:
Failed to negotiate key exchange algorithm.
Causa: Los algoritmos de intercambio de claves proporcionados por el servidor SFTP no se admiten en ADF. Los algoritmos de intercambio de claves admitidos por ADF son:
- 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
La versión 5.19 es la más reciente para admitir los algoritmos de intercambio de claves anteriores en SHIR.
Código de error: SftpInvalidHostKeyFingerprint
Mensaje:
Host key finger-print validation failed. Expected fingerprint is '<value in linked service>', real finger-print is '<server real value>'
Causa: Azure Data Factory ahora admite algoritmos de clave de host más seguros en el conector SFTP. Para los algoritmos recién agregados, es necesario obtener la huella digital correspondiente en el servidor SFTP.
Los algoritmos recién admitidos son los siguientes:
- ssh-ed25519
- ecdsa-sha2-nistp256
- ecdsa-sha2-nistp384
- ecdsa-sha2-nistp521
Recomendación: obtenga una huella digital válida mediante el uso del nombre de clave de host en
real finger-print
desde el mensaje de error en el servidor SFTP. Puede ejecutar el comando para obtener la huella digital en el servidor SFTP. Por ejemplo: ejecutessh-keygen -E md5 -lf <keyFilePath>
en el servidor Linux para obtener la huella digital. El comando puede variar entre diferentes tipos de servidor.
Código de error: UnsupportedCompressionTypeWhenDisableChunking
Mensaje:
"Disable chunking" is not compatible with "ZipDeflate" decompression.
Causa: Deshabilitar la fragmentación no es compatible con la descompresión ZipDeflate.
Recomendación: cargue los datos binarios en un área de almacenamiento provisional (por ejemplo, Azure Blob Storage) y descomprímalos en otra actividad de copia.
HTTP
Código de error: HttpFileFailedToRead
Mensaje:
Failed to read data from http server. Check the error from http server:%message;
Causa: este error se produce cuando una canalización de Data Factory o Synapse se comunica con el servidor HTTP, pero se produce un error en la operación de solicitud HTTP.
Recomendación: compruebe el código de estado HTTP del mensaje de error y solucione el problema del servidor remoto.
Código de error: HttpSourceUnsupportedStatusCode
Mensaje:
Http source doesn't support HTTP Status Code '%code;'.
Causa: este error se produce cuando Azure Data Factory solicita el origen HTTP, pero obtiene código de estado inesperado.
Recomendación: Para obtener más información sobre el código de estado HTTP, consulte este documento.
Contenido relacionado
Para obtener ayuda para solucionar problemas, pruebe estos recursos: