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 datové továrny 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
    • Chybová zpráva: 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 dochází 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 a zvyšte limit počtu souběžných připojení nebo můžete provést jednu z následujících akcí:

    • 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 pro přenos dat a neexistuje žádné automaticky otevírané vstupní pole, které vám umožní zadat heslo za běhu.

    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 nejsou v ADF podporované. 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í: