Поделиться через


Устранение неполадок соединителей FTP, SFTP и HTTP в Фабрике данных Fabric и Azure Synapse

В этой статье приводятся рекомендации по устранению распространенных проблем с соединителями FTP, SFTP и HTTP в фабрике данных и Azure Synapse.

FTP

Код ошибки: FtpFailedToConnectToFtpServer

  • Сообщение. Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.

  • Причина. Неправильный тип подключения может использоваться для FTP-сервера, например с помощью типа подключения Secure FTP (SFTP) для подключения к FTP-серверу.

  • Рекомендация. Проверьте порт целевого сервера. Протокол FTP использует порт 21.

Код ошибки: FtpFailedToReadFtpData

  • Сообщение. Failed to read data from ftp: The remote server returned an error: 227 Entering Passive Mode (*,*,*,*,*,*).

  • Причина. Диапазон портов от 1024 до 65535 не открыт для передачи данных в пассивном режиме, поддерживаемом фабрикой данных или конвейером Synapse.

  • Рекомендация. Проверьте настройки межсетевого экрана целевого сервера. Откройте порт 1024-65535 или диапазон портов, указанный на FTP-сервере, для IP-адресов SHIR/Azure IR.

SFTP

Код ошибки: SftpOperationFail

  • Сообщение. Failed to '%operation;'. Check detailed error from SFTP.

  • Причина. Проблема при выполнении операции SFTP.

  • Рекомендация. Изучите подробные сведения об ошибке SFTP.

Код ошибки: SftpRenameOperationFail

  • Сообщение. 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.

  • Причина. Сервер SFTP не поддерживает переименование временного файла.

  • Рекомендация. Задайте для параметра useTempFileRename значение false в приемнике копирования, чтобы отключить отправку данных во временный файл.

Код ошибки: SftpInvalidSftpCredential

  • Сообщение. Invalid SFTP credential provided for '%type;' authentication type.

  • Причина. Содержимое закрытого ключа извлекается из хранилища ключей Azure или пакета SDK, но кодируется неправильно.

  • Рекомендация.

    Если содержимое закрытого ключа находится в хранилище ключей, исходный файл ключа может работать, если передать его непосредственно в подключение SFTP.

    Содержимое закрытого ключа SSH должно быть в кодировке Base64.

    Закодируйте весь исходный файл закрытого ключа в Base64 и сохраните закодированную строку в хранилище ключей. Исходный файл закрытого ключа — это файл, который может работать с типом подключения SFTP, если выбрать "Отправить " из файла.

    Вот некоторые примеры, с помощью которых можно сгенерировать строку.

    • Код C#:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
      • Код Python:
      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
      • Можно также использовать сторонние средства преобразования в формат Base64. Мы рекомендуем средство Encode to Base64 format.
  • Причина. Выбран неправильный формат содержимого ключа.

  • Рекомендация.

    Формат закрытого ключа SSH PKCS#8 (начинающийся с -----BEGIN ENCRYPTED PRIVATE KEY-----) в настоящее время не поддерживается для доступа к серверу SFTP.

    Чтобы преобразовать ключ SSH в традиционный формат, начинающийся с -----BEGIN RSA PRIVATE KEY-----, выполните следующие команды.

    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
    
  • Причина. Недопустимые учетные данные или содержимое закрытого ключа.

  • Рекомендация. Чтобы проверить правильность файла ключа или пароля, используйте такие средства, как WinSCP.

Сбой действия копирования SFTP

  • Симптомы

    • Код ошибки: UserErrorInvalidColumnMappingColumnNotFound
    • Сообщение об ошибке: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Причина. В источнике нет столбца с именем AccMngr.

  • Решение. Чтобы определить наличие столбца AccMngr, проверьте конфигурацию набора данных, сопоставив столбец целевого набора данных.

Код ошибки: SftpFailedToConnectToSftpServer

  • Сообщение. Failed to connect to SFTP server '%server;'.

  • Причина. Если сообщение об ошибке содержит строку "Операция чтения сокета истекла после 30 000 миллисекунда", одна из возможных причин заключается в том, что неправильный тип подключения используется для сервера SFTP. Например, вы можете использовать тип FTP-подключения для подключения к серверу SFTP.

  • Рекомендация. Проверьте порт целевого сервера. По умолчанию для SFTP-подключений используется порт 22.

  • Причина. Если в сообщении об ошибке есть строка "Ответ сервера не содержит идентификатора протокола SSH", одна из возможных причин заключается в том, что SFTP-сервер ограничил подключение. Несколько подключений создаются для скачивания с сервера SFTP параллельно, а иногда возникает регулирование сервера SFTP. Обычно в такой ситуации различные серверы возвращают разные ошибки.

  • Рекомендация.

    Укажите максимальное число одновременных подключений к набору данных SFTP, равное 1, и повторно запустите действие копирования. Если в этом случае действие будет выполнено успешно, значит причина в применении ограничения.

    Если вы хотите повысить низкую пропускную способность, обратитесь к администратору SFTP, чтобы увеличить ограничение числа одновременных подключений или

    • Если вы используете локальный шлюз данных (OPDG), добавьте IP-адрес компьютера OPDG в список разрешений.

Код ошибки: SftpPermissionDenied

  • Сообщение. Permission denied to access '%path;'

  • Причина. Указанный пользователь не имеет разрешения на чтение или запись для папки или файла при работе.

  • Рекомендация. Предоставьте пользователю разрешение на чтение или запись для папки или файлов на SFTP-сервере.

Код ошибки: SftpAuthenticationFailure

  • Сообщение. 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.

  • Причина. Указаны недопустимые учетные данные (пароль или закрытый ключ).

  • Рекомендация. Проверьте учетные данные.

  • Причина. Указанный тип проверки подлинности не разрешен или недостаточен для завершения проверки подлинности на сервере SFTP.

  • Рекомендация. В настоящее время поддерживается только базовый тип проверки подлинности

Не удается подключиться к SFTP из-за алгоритмов обмена ключами, предоставляемых SFTP, не поддерживаются в фабрике данных

  • Симптомы: вы не можете подключиться к SFTP через фабрику данных и выполнить следующее сообщение об ошибке: Failed to negotiate key exchange algorithm.

  • Причина. Алгоритмы обмена ключами, предоставляемые сервером SFTP, не поддерживаются в фабрике данных. Алгоритмы обмена ключами, поддерживаемые фабрикой данных, :

    • 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.

Код ошибки: SftpInvalidHostKeyFingerprint

  • Сообщение. Host key finger-print validation failed. Expected fingerprint is '<value in connection type>', real finger-print is '<server real value>'

  • Причина. Фабрика данных теперь поддерживает более безопасные алгоритмы ключей узла в соединителе SFTP. Для новых алгоритмов требуется получить соответствующий отпечаток на сервере SFTP.

    Поддерживаются следующие алгоритмы:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Рекомендация. Получите действительный отпечаток с помощью имени ключа узла в параметре real finger-print из сообщения об ошибке на сервере SFTP. Чтобы получить отпечаток на сервере SFTP, выполните соответствующую команду. Например, чтобы получить отпечаток на сервере Linux, выполните команду ssh-keygen -E md5 -lf <keyFilePath>. Команда может быть разной в зависимости от типа сервера.

Код ошибки: UnsupportedCompressionTypeWhenDisableChunking

  • Сообщение. "Disable chunking" is not compatible with "ZipDeflate" decompression.

  • Причина. Отключение фрагментирования несовместимо с zipDeflate decompression.

  • Рекомендация. Загрузите двоичные данные в промежуточную область (например, Хранилище BLOB-объектов Azure) и распакуйте их в другом действии копирования.

HTTP

Код ошибки: HttpFileFailedToRead

  • Сообщение. Failed to read data from http server. Check the error from http server:%message;

  • Причина. Эта ошибка возникает, когда Фабрика данных или конвейер Synapse обращается к HTTP-серверу, но HTTP-запрос завершается ошибкой.

  • Рекомендация. Проверьте код состояния HTTP в сообщении об ошибке и устраните проблему с удаленным сервером.

Код ошибки: HttpSourceUnsupportedStatusCode

  • Сообщение. Http source doesn't support HTTP Status Code '%code;'.

  • Причина. Эта ошибка возникает, когда фабрика данных запрашивает источник HTTP, но получает непредвиденный код состояния.

  • Рекомендация. Подробнее о коде состояния HTTP см. в этом документе.

Для получения дополнительных сведений об устранении неполадок воспользуйтесь следующими ресурсами: