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


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

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

FTP

Код ошибки: FtpFailedToConnectToFtpServer

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

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

  • Рекомендация. Проверьте порт целевого сервера. Протокол 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.

    Дополнительные сведения см. в статье Копирование данных с SFTP-сервера и на него с помощью Фабрики данных или конвейеров Synapse. Содержимое закрытого ключа 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-сервера используется неверный тип связанной службы. Например, для подключения к SFTP-серверу может использоваться связанная служба FTP.

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

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

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

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

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

    • Если используется локальная среда IR, добавьте IP-адрес ее компьютера в список разрешений.
    • При использовании среды Azure IR см. IP-адреса Azure Integration Runtime. Если вы не хотите добавлять диапазон IP-адресов в список разрешений сервера SFTP, используйте вместо этого локальную среду IR.

Код ошибки: 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.

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

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

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

    "Интерактивная идентификация на клавиатуре" — это специальный метод проверки подлинности, отличный от аутентификации по паролю. Это означает, что при входе на сервер пароль необходимо ввести вручную, а использовать сохраненный ранее пароль нельзя. Но фабрика данных Azure (ADF) — это служба запланированной передачи данных, а всплывающее окно ввода не позволяет ввести пароль во время выполнения.

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

    1. На портале ADF наведите указатель мыши на связанную службу SFTP и откройте ее полезные данные, нажав кнопку "Код".
    2. В раздел typeProperties добавьте "allowKeyboardInteractiveAuth": true.

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

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

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

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

    Последняя версия, поддерживающая указанные выше алгоритмы обмена ключами в SHIR, — 5.19.

Код ошибки: SftpInvalidHostKeyFingerprint

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

  • Причина: Фабрика данных Azure теперь поддерживает более безопасные алгоритмы ключей узла в соединителе 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;'.

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

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

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