Sdílet prostřednictvím


Řešení potíží s konektory FTP, SFTP a HTTP ve službě Azure Data Factory a Azure Synapse

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Tento článek obsahuje návrhy pro řešení běžných problémů s konektory FTP, SFTP a HTTP ve službě Azure Data Factory a Azure Synapse.

FTP

Kód chyby: FtpFailedToConnectToFtpServer

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

  • Příčina: Pro server FTP může být použit nesprávný typ propojené služby, například použití propojené služby SFTP (Secure FTP) pro připojení k serveru FTP.

  • Doporučení: Zkontrolujte port cílového serveru. Protokol FTP používá port 21.

Kód chyby: FtpFailedToReadFtpData

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

  • Příčina: Rozsah portů mezi 1024 a 65535 není otevřený pro přenos dat v pasivním režimu podporovaném kanálem Data Factory nebo Synapse.

  • Doporučení: Zkontrolujte nastavení brány firewall cílového serveru. Otevřete port 1024-65535 nebo rozsah portů zadaný na serveru FTP na IP adresu SHIR nebo Azure IR.

SFTP

Kód chyby: SftpOperationFail

  • Zpráva: Failed to '%operation;'. Check detailed error from SFTP.

  • Příčina: Problém s operací SFTP.

  • Doporučení: Zkontrolujte podrobnosti o chybě z protokolu SFTP.

Kód chyby: SftpRenameOperationFail

  • Zpráva: 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.

  • Příčina: Server SFTP nepodporuje přejmenování dočasného souboru.

  • Doporučení: V jímce kopírování nastavte "useTempFileRename" jako false, aby se zakázalo nahrávání do dočasného souboru.

Kód chyby: SftpInvalidSftpCredential

  • Zpráva: Invalid SFTP credential provided for '%type;' authentication type.

  • Příčina: Obsah privátního klíče se načte z trezoru klíčů Azure nebo sady SDK, ale není kódovaný správně.

  • Doporučení:

    Pokud je obsah privátního klíče z vašeho trezoru klíčů, může původní soubor klíče fungovat, pokud ho nahrajete přímo do propojené služby SFTP.

    Další informace najdete v tématu Kopírování dat ze serveru SFTP pomocí datové továrny nebo kanálů Synapse. Obsah privátního klíče je obsah privátního klíče s kódováním Base64 SSH.

    Zakódujte celý původní soubor privátního klíče pomocí kódování base64 a uložte kódovaný řetězec do trezoru klíčů. Původní soubor privátního klíče je soubor, který může pracovat s propojenou službou SFTP, pokud vyberete Nahrát ze souboru.

    Tady je několik ukázek, které můžete použít k vygenerování řetězce:

    • Použijte kód jazyka C#:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Použití kódu Pythonu:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Použijte nástroj pro převod base64 třetí strany. Doporučujeme nástroj pro formátování Kódování do Base64.

  • Příčina: Byl vybrán nesprávný formát obsahu klíče.

  • Doporučení:

    Privátní klíč SSH ve formátu PKCS#8 (počínaje "-----BEGIN ENCRYPTED PRIVATE KEY-----") se v současné době nepodporuje pro přístup k serveru SFTP.

    Pokud chcete klíč převést na tradiční formát klíče SSH, spusťte následující příkazy od příkazu "-----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
    
  • Příčina: Neplatný obsah přihlašovacích údajů nebo privátního klíče

  • Doporučení: Pokud chcete zjistit, jestli je váš soubor klíče nebo heslo správné, pečlivě zkontrolujte nástroje, jako je WinSCP.

Aktivita kopírování SFTP selhala

  • Příznaky:

    • Kód chyby: UserErrorInvalidColumnMappingColumnNotFound
    • Zpráva o chybě: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Příčina: Zdroj neobsahuje sloupec s názvem AccMngr.

  • Řešení: Pokud chcete zjistit, jestli sloupec AccMngr existuje, pečlivě zkontrolujte konfiguraci datové sady namapováním cílového sloupce datové sady.

Kód chyby: SftpFailedToConnectToSftpServer

  • Zpráva: Failed to connect to SFTP server '%server;'.

  • Příčina: Pokud chybová zpráva obsahuje řetězec "Operace čtení soketu vypršel časový limit po 30 000 milisekundách", jednou z možných příčin je, že pro server SFTP se používá nesprávný typ propojené služby. Například pro připojení k serveru SFTP můžete použít propojenou službu FTP.

  • Doporučení: Zkontrolujte port cílového serveru. Ve výchozím nastavení používá SFTP port 22.

  • Příčina: Pokud chybová zpráva obsahuje řetězec "Odpověď serveru neobsahuje identifikaci protokolu SSH", jednou z možných příčin je, že server SFTP omezil připojení. Paralelně se vytvoří více připojení ke stažení ze serveru SFTP a někdy dojde k omezování serveru SFTP. Obvykle různé servery vrací různé chyby, když narazí na omezování.

  • Doporučení:

    Zadejte maximální počet souběžných připojení datové sady SFTP jako 1 a znovu spusťte aktivitu Copy. Pokud aktivita proběhne úspěšně, můžete se ujistit, že příčinou je omezování.

    Pokud chcete zvýšit úroveň nízké propustnosti, obraťte se na správce SFTP, aby zvýšil limit počtu souběžných připojení, nebo můžete udělat jednu z těchto věcí:

    • Pokud používáte místní prostředí IR, přidejte IP adresu počítače s místním prostředím IR do seznamu povolených.
    • Pokud používáte Azure IR, přidejte IP adresy prostředí Azure Integration Runtime. Pokud nechcete do seznamu povolených serverů SFTP přidat rozsah IP adres, použijte místo toho místní prostředí IR.

Kód chyby: SftpPermissionDenied

  • Zpráva: Permission denied to access '%path;'

  • Příčina: Zadaný uživatel nemá oprávnění ke čtení nebo zápisu ke složce nebo souboru při provozu.

  • Doporučení: Udělte uživateli oprávnění ke čtení nebo zápisu do složky nebo souborů na serveru SFTP.

Kód chyby: SftpAuthenticationFailure

  • Zpráva: 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.

  • Příčina: Zadané přihlašovací údaje (heslo nebo privátní klíč) jsou neplatné.

  • Doporučení: Zkontrolujte své přihlašovací údaje.

  • Příčina: Zadaný typ ověřování není povolený nebo nestačí k dokončení ověřování na serveru SFTP.

  • Doporučení: Pokud chcete použít správný typ ověřování, použijte následující možnosti:

    • Pokud váš server vyžaduje heslo, použijte "Basic".
    • Pokud váš server vyžaduje privátní klíč, použijte ověřování veřejného klíče SSH.
    • Pokud váš server vyžaduje heslo i privátní klíč, použijte vícefaktorové ověřování.
  • Příčina: Server SFTP vyžaduje pro ověřování "keyboard-interactive", ale zadali jste heslo.

  • Doporučení:

    "keyboard-interactive" je speciální metoda ověřování, která se liší od hesla. To znamená, že při přihlášení k serveru musíte zadat heslo ručně a nemůžete použít dříve uložené heslo. Azure Data Factory (ADF) je ale naplánovaná služba přenosu dat a v modulu runtime není k dispozici žádné automaticky otevírané vstupní pole, které vám umožní zadat heslo.

    Jako kompromis je k dispozici možnost simulovat vstup na pozadí místo skutečného ručního zadávání, což odpovídá změně "klávesnice-interactive" na "password". Pokud můžete tento problém se zabezpečením přijmout, povolte ho následujícím postupem:

    1. Na portálu ADF nastavte ukazatel myši na propojenou službu SFTP a otevřete datovou část výběrem tlačítka kódu.
    2. Přidejte "allowKeyboardInteractiveAuth": true do části typeProperties.

V ADF se nejde připojit k SFTP kvůli algoritmům výměny klíčů, které poskytuje SFTP

  • Příznaky: Nemůžete se připojit k SFTP přes ADF a splnit následující chybovou zprávu: Failed to negotiate key exchange algorithm.

  • Příčina: Algoritmy výměny klíčů poskytované serverem SFTP se v ADF nepodporují. Algoritmy výměny klíčů podporované službou ADF jsou:

    • křivka25519-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

    Nejnovější verze, která podporuje výše uvedené algoritmy výměny klíčů v prostředí SHIR, je verze 5.19.

Kód chyby: SftpInvalidHostKeyFingerprint

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

  • Příčina: Azure Data Factory teď podporuje bezpečnější algoritmy klíče hostitele v konektoru SFTP. U nově přidaných algoritmů je nutné získat odpovídající otisk prstu na serveru SFTP.

    Nově podporované algoritmy jsou:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Doporučení: Získání platného otisku prstu pomocí názvu real finger-print klíče hostitele z chybové zprávy na serveru SFTP. Spuštěním příkazu můžete získat otisk prstu na serveru SFTP. Příklad: Spuštěním ssh-keygen -E md5 -lf <keyFilePath> na serveru s Linuxem získáte otisk prstu. Příkaz se může lišit mezi různými typy serverů.

Kód chyby: NepodporovanýcompressionTypeWhenDisableChunking

  • Zpráva: "Disable chunking" is not compatible with "ZipDeflate" decompression.

  • Příčina: Zakázání bloků dat není kompatibilní s dekompresí ZipDeflate .

  • Doporučení: Načtěte binární data do pracovní oblasti (například Azure Blob Storage) a dekomprimujte je v jiné aktivitě kopírování.

HTTP

Kód chyby: HttpFileFailedToRead

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

  • Příčina: K této chybě dochází, když datová továrna nebo kanál Synapse mluví se serverem HTTP, ale operace požadavku HTTP selže.

  • Doporučení: Zkontrolujte stavový kód HTTP v chybové zprávě a opravte problém se vzdáleným serverem.

Kód chyby: HttpSourceUnsupportedStatusCode

  • Zpráva: Http source doesn't support HTTP Status Code '%code;'.

  • Příčina: K této chybě dochází, když Azure Data Factory požádá o zdroj HTTP, ale dostane neočekávaný stavový kód.

  • Doporučení: Další informace o stavovém kódu HTTP najdete v tomto dokumentu.

Další nápovědu k řešení potíží najdete v těchto zdrojích informací: