Rozwiązywanie problemów z łącznikami FTP, SFTP i HTTP w usługach Azure Data Factory i Azure Synapse

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Ten artykuł zawiera sugestie dotyczące rozwiązywania typowych problemów z łącznikami FTP, SFTP i HTTP w usługach Azure Data Factory i Azure Synapse.

FTP

Kod błędu: FtpFailedTo Połączenie ToFtpServer

  • Komunikat: Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.

  • Przyczyna: Niepoprawny typ połączonej usługi może być używany dla serwera FTP, na przykład przy użyciu połączonej usługi Secure FTP (SFTP) w celu nawiązania połączenia z serwerem FTP.

  • Zalecenie: Sprawdź port serwera docelowego. FTP używa portu 21.

Kod błędu: FtpFailedToReadFtpData

  • Komunikat: Failed to read data from ftp: The remote server returned an error: 227 Entering Passive Mode (*,*,*,*,*,*).

  • Przyczyna: Zakres portów z zakresu od 1024 do 65535 nie jest otwarty dla transferu danych w trybie pasywnym obsługiwanym przez fabrykę danych lub potok synapse.

  • Zalecenie: Sprawdź ustawienia zapory serwera docelowego. Otwórz port 1024-65535 lub zakres portów określony na serwerze FTP na adres IP SHIR/Azure IR.

SFTP

Kod błędu: SftpOperationFail

  • Komunikat: Failed to '%operation;'. Check detailed error from SFTP.

  • Przyczyna: Problem z operacją SFTP.

  • Zalecenie: Sprawdź szczegóły błędu z SFTP.

Kod błędu: SftpRenameOperationFail

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

  • Przyczyna: Serwer SFTP nie obsługuje zmiany nazwy pliku tymczasowego.

  • Zalecenie: ustaw wartość "useTempFileRename" jako false w ujściu kopiowania, aby wyłączyć przekazywanie do pliku tymczasowego.

Kod błędu: SftpInvalidSftpCredential

  • Komunikat: Invalid SFTP credential provided for '%type;' authentication type.

  • Przyczyna: Zawartość klucza prywatnego jest pobierana z magazynu kluczy platformy Azure lub zestawu SDK, ale nie jest poprawnie zakodowana.

  • Zalecenie:

    Jeśli zawartość klucza prywatnego pochodzi z magazynu kluczy, oryginalny plik klucza może działać, jeśli przekażesz go bezpośrednio do połączonej usługi SFTP.

    Aby uzyskać więcej informacji, zobacz Kopiowanie danych z i na serwer SFTP przy użyciu fabryki danych lub potoków usługi Synapse. Zawartość klucza prywatnego to zawartość klucza prywatnego SSH zakodowana w formacie base64.

    Zakoduj cały oryginalny plik klucza prywatnego przy użyciu kodowania base64 i zapisz zakodowany ciąg w magazynie kluczy. Oryginalny plik klucza prywatnego jest plikiem, który może pracować nad połączoną usługą SFTP, jeśli wybierzesz pozycję Przekaż z pliku.

    Oto kilka przykładów, których można użyć do wygenerowania ciągu:

    • Użyj kodu w języku C#:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Użyj kodu w języku Python:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Użyj narzędzia konwersji base64 innej firmy. Zalecamy użycie narzędzia Kodowanie do formatu Base64.

  • Przyczyna: wybrano nieprawidłowy format zawartości klucza.

  • Zalecenie:

    Klucz prywatny SSH W formacie PKCS#8 (rozpoczynający się od ciągu "-----BEGIN ENCRYPTED PRIVATE KEY-----") nie jest obecnie obsługiwany w celu uzyskania dostępu do serwera SFTP.

    Aby przekonwertować klucz na tradycyjny format klucza SSH, począwszy od polecenia "-----BEGIN RSA PRIVATE KEY-----", uruchom następujące polecenia:

    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
    
  • Przyczyna: Nieprawidłowe poświadczenia lub zawartość klucza prywatnego.

  • Zalecenie: Aby sprawdzić, czy plik klucza lub hasło są poprawne, sprawdź dwukrotnie narzędzia, takie jak WinSCP.

Działanie kopiowania SFTP nie powiodło się

  • Objawy:

    • Kod błędu: UserErrorInvalidColumnMappingColumnNotFound
    • Komunikat o błędzie: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Przyczyna: Źródło nie zawiera kolumny o nazwie "AccMngr".

  • Rozwiązanie: Aby określić, czy kolumna "AccMngr" istnieje, sprawdź konfigurację zestawu danych dwukrotnie, mapując docelową kolumnę zestawu danych.

Kod błędu: SftpFailedTo Połączenie ToSftpServer

  • Komunikat: Failed to connect to SFTP server '%server;'.

  • Przyczyna: Jeśli komunikat o błędzie zawiera ciąg "Operacja odczytu gniazda przekroczyła limit czasu po 30 000 milisekundach", jedną z możliwych przyczyn jest to, że niepoprawny połączony typ usługi jest używany dla serwera SFTP. Na przykład możesz użyć połączonej usługi FTP do nawiązania połączenia z serwerem SFTP.

  • Zalecenie: Sprawdź port serwera docelowego. Domyślnie sfTP używa portu 22.

  • Przyczyna: Jeśli komunikat o błędzie zawiera ciąg "Odpowiedź serwera nie zawiera identyfikacji protokołu SSH", jedną z możliwych przyczyn jest to, że serwer SFTP ograniczył połączenie. Wiele połączeń jest tworzonych w celu pobrania z serwera SFTP równolegle, a czasami wystąpi ograniczenie przepustowości serwera SFTP. Zazwyczaj różne serwery zwracają różne błędy w przypadku wystąpienia ograniczania przepustowości.

  • Zalecenie:

    Określ maksymalną liczbę współbieżnych połączeń zestawu danych SFTP jako 1 i uruchom ponownie działanie kopiowania. Jeśli działanie zakończy się pomyślnie, możesz mieć pewność, że ograniczenie przepustowości jest przyczyną.

    Jeśli chcesz podwyższyć poziom niskiej przepływności, skontaktuj się z administratorem SFTP, aby zwiększyć limit liczby połączeń współbieżnych, lub możesz wykonać jedną z następujących czynności:

    • Jeśli używasz własnego środowiska IR, dodaj adres IP własnej maszyny IR do listy dozwolonych.
    • Jeśli używasz środowiska Azure IR, dodaj adresy IP środowiska Azure Integration Runtime. Jeśli nie chcesz dodawać zakresu adresów IP do listy dozwolonych serwerów SFTP, zamiast tego użyj własnego środowiska IR.

Kod błędu: SftpPermissionDenied

  • Komunikat: Permission denied to access '%path;'

  • Przyczyna: Określony użytkownik nie ma uprawnień do odczytu lub zapisu do folderu lub pliku podczas działania.

  • Zalecenie: przyznaj użytkownikowi uprawnienia do odczytu lub zapisu w folderze lub plikach na serwerze SFTP.

Kod błędu: SftpAuthenticationFailure

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

  • Przyczyna: Określone poświadczenie (hasło lub klucz prywatny) jest nieprawidłowe.

  • Zalecenie: Sprawdź swoje poświadczenia.

  • Przyczyna: Określony typ uwierzytelniania jest niedozwolony lub nie jest wystarczający do ukończenia uwierzytelniania na serwerze SFTP.

  • Zalecenie: Zastosuj następujące opcje, aby użyć poprawnego typu uwierzytelniania:

    • Jeśli serwer wymaga hasła, użyj opcji "Podstawowa".
    • Jeśli serwer wymaga klucza prywatnego, użyj opcji "Uwierzytelnianie za pomocą klucza publicznego SSH".
    • Jeśli serwer wymaga zarówno hasła, jak i "klucza prywatnego", użyj opcji "Uwierzytelnianie wieloskładnikowe".
  • Przyczyna: Serwer SFTP wymaga "klawiatury interakcyjnej" na potrzeby uwierzytelniania, ale podano "hasło".

  • Zalecenie:

    "klawiatura-interactive" to specjalna metoda uwierzytelniania, która różni się od "hasła". Oznacza to, że podczas logowania się do serwera należy wprowadzić hasło ręcznie i nie można użyć wcześniej zapisanego hasła. Jednak usługa Azure Data Factory (ADF) jest usługą zaplanowanego transferu danych i nie ma wyskakujących okienek wejściowych umożliwiających podanie hasła w czasie wykonywania.

    W przypadku naruszenia zabezpieczeń dostępna jest opcja symulowania danych wejściowych w tle zamiast rzeczywistego ręcznego wprowadzania danych wejściowych, co jest równoznaczne ze zmianą "klawiatury interakcyjnej" na "hasło". Jeśli możesz zaakceptować ten problem z zabezpieczeniami, wykonaj poniższe kroki, aby je włączyć:

    1. W portalu usługi ADF umieść kursor na połączonej usłudze SFTP i otwórz jego ładunek, wybierając przycisk kodu.
    2. Dodaj "allowKeyboardInteractiveAuth": true w sekcji "typeProperties".

Nie można nawiązać połączenia z sfTP z powodu algorytmów wymiany kluczy dostarczonych przez sfTP nie są obsługiwane w usłudze ADF

  • Objawy: Nie można nawiązać połączenia z sfTP za pośrednictwem usługi ADF i spełnić następującego komunikatu o błędzie: Failed to negotiate key exchange algorithm.

  • Przyczyna: Algorytmy wymiany kluczy udostępniane przez serwer SFTP nie są obsługiwane w usłudze ADF. Algorytmy wymiany kluczy obsługiwane przez usługę ADF to:

    • 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

    Najnowsza wersja do obsługi powyższych algorytmów wymiany kluczy w środowisku SHIR to wersja 5.19.

Kod błędu: SftpInvalidHostKeyFingerprint

  • Komunikat: Host key finger-print validation failed. Expected fingerprint is '<value in linked service>', real finger-print is '<server real value>'

  • Przyczyna: Usługa Azure Data Factory obsługuje teraz bezpieczniejsze algorytmy kluczy hosta w łączniku SFTP. W przypadku nowo dodanych algorytmów wymagane jest pobranie odpowiedniego odcisku palca na serwerze SFTP.

    Nowo obsługiwane algorytmy to:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Zalecenie: Pobierz prawidłowy odcisk palca przy użyciu nazwy klucza hosta w real finger-print z komunikatu o błędzie na serwerze SFTP. Możesz uruchomić polecenie , aby pobrać odcisk palca na serwerze SFTP. Na przykład: uruchom polecenie ssh-keygen -E md5 -lf <keyFilePath> na serwerze z systemem Linux, aby pobrać odcisk palca. Polecenie może się różnić w zależności od różnych typów serwerów.

Kod błędu: UnsupportedCompressionTypeWhenDisableChunking

  • Komunikat: "Disable chunking" is not compatible with "ZipDeflate" decompression.

  • Przyczyna: Wyłączanie fragmentowania nie jest zgodne z dekompresją ZipDeflate .

  • Zalecenie: Załaduj dane binarne do obszaru przejściowego (na przykład: Azure Blob Storage) i zdekompresuj je w innym działaniu kopiowania.

HTTP

Kod błędu: HttpFileFailedToRead

  • Komunikat: Failed to read data from http server. Check the error from http server:%message;

  • Przyczyna: Ten błąd występuje, gdy fabryka danych lub potok usługi Synapse rozmawia z serwerem HTTP, ale operacja żądania HTTP kończy się niepowodzeniem.

  • Zalecenie: Sprawdź kod stanu HTTP w komunikacie o błędzie i rozwiąż problem z serwerem zdalnym.

Kod błędu: HttpSourceUnsupportedStatusCode

  • Komunikat: Http source doesn't support HTTP Status Code '%code;'.

  • Przyczyna: ten błąd występuje, gdy usługa Azure Data Factory żąda źródła HTTP, ale otrzymuje nieoczekiwany kod stanu.

  • Zalecenie: Aby uzyskać więcej informacji na temat kodu stanu HTTP, zobacz ten dokument.

Aby uzyskać pomoc dotyczącą rozwiązywania problemów, wypróbuj następujące zasoby: