Share via


Felsöka FTP-, SFTP- och HTTP-anslutningsappar i Azure Data Factory och Azure Synapse

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln innehåller förslag på hur du felsöker vanliga problem med FTP-, SFTP- och HTTP-anslutningsappar i Azure Data Factory och Azure Synapse.

FTP

Felkod: FtpFailedTo Anslut ToFtpServer

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

  • Orsak: En felaktig länkad tjänsttyp kan användas för FTP-servern, till exempel att använda den SFTP-länkade tjänsten (Secure FTP) för att ansluta till en FTP-server.

  • Rekommendation: Kontrollera målserverns port. FTP använder port 21.

Felkod: FtpFailedToReadFtpData

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

  • Orsak: Portintervallet mellan 1024 och 65535 är inte öppet för dataöverföring i passivt läge som stöds av datafabriken eller Synapse-pipelinen.

  • Rekommendation: Kontrollera brandväggsinställningarna för målservern. Öppna port 1024-65535 eller portintervallet som anges i FTP-servern till SHIR/Azure IR IP-adress.

SFTP

Felkod: SftpOperationFail

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

  • Orsak: Ett problem med SFTP-åtgärden.

  • Rekommendation: Kontrollera felinformationen från SFTP.

Felkod: SftpRenameOperationFail

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

  • Orsak: SFTP-servern har inte stöd för att byta namn på den temporära filen.

  • Rekommendation: Ange "useTempFileRename" som falskt i kopieringsmottagaren för att inaktivera uppladdning till temp-filen.

Felkod: SftpInvalidSftpCredential

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

  • Orsak: Innehåll med privat nyckel hämtas från Azure-nyckelvalvet eller SDK:t, men det är inte korrekt kodat.

  • Rekommendation:

    Om innehållet för den privata nyckeln kommer från ditt nyckelvalv kan den ursprungliga nyckelfilen fungera om du laddar upp den direkt till den SFTP-länkade tjänsten.

    Mer information finns i Kopiera data från och till SFTP-servern med hjälp av datafabriken eller Synapse-pipelines. Innehållet i den privata nyckeln är base64-kodat SSH-innehåll med privat nyckel.

    Koda hela den ursprungliga privata nyckelfilen med base64-kodning och lagra den kodade strängen i nyckelvalvet. Den ursprungliga privata nyckelfilen är den som kan fungera med den SFTP-länkade tjänsten om du väljer Ladda upp från filen.

    Här är några exempel som du kan använda för att generera strängen:

    • Använd C#-kod:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Använd Python-kod:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Använd ett base64-konverteringsverktyg från tredje part. Vi rekommenderar verktyget Koda till Base64-format .

  • Orsak: Fel nyckelinnehållsformat har valts.

  • Rekommendation:

    PKCS#8 format SSH privat nyckel (börja med "-----BEGIN ENCRYPTED PRIVATE KEY-----") stöds för närvarande inte för att komma åt SFTP-servern.

    Om du vill konvertera nyckeln till det traditionella SSH-nyckelformatet, som börjar med "-----BEGIN RSA PRIVATE KEY-----", kör du följande kommandon:

    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
    
  • Orsak: Ogiltiga autentiseringsuppgifter eller innehåll med privat nyckel.

  • Rekommendation: Dubbelkolla med verktyg som WinSCP för att se om nyckelfilen eller lösenordet är korrekt.

SFTP-kopieringsaktiviteten misslyckades

  • Symptom:

    • Felkod: UserErrorInvalidColumnMappingColumnNotFound
    • Felmeddelande: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Orsak: Källan innehåller inte en kolumn med namnet "AccMngr".

  • Lösning: För att avgöra om kolumnen "AccMngr" finns dubbelkollar du konfigurationen av datauppsättningen genom att mappa måldatauppsättningskolumnen.

Felkod: SftpFailedTo Anslut ToSftpServer

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

  • Orsak: Om felmeddelandet innehåller strängen "Socket read operation has timed out after 30,000 millisekunder" är en möjlig orsak att en felaktig länkad tjänsttyp används för SFTP-servern. Du kan till exempel använda den FTP-länkade tjänsten för att ansluta till SFTP-servern.

  • Rekommendation: Kontrollera målserverns port. Som standard använder SFTP port 22.

  • Orsak: Om felmeddelandet innehåller strängen "Serversvaret innehåller inte SSH-protokollidentifiering" är en möjlig orsak att SFTP-servern begränsade anslutningen. Flera anslutningar skapas för att ladda ned från SFTP-servern parallellt, och ibland uppstår SFTP-serverbegränsning. Vanligtvis returnerar olika servrar olika fel när de stöter på begränsning.

  • Rekommendation:

    Ange det maximala antalet samtidiga anslutningar för SFTP-datauppsättningen som 1 och kör aktiviteten Kopiera igen. Om aktiviteten lyckas kan du vara säker på att begränsningen är orsaken.

    Om du vill höja upp det låga dataflödet kontaktar du SFTP-administratören för att öka gränsen för antal samtidiga anslutningar, eller så kan du göra något av följande:

    • Om du använder lokalt installerad IR lägger du till ip-adressen för den lokalt installerade IR-datorn i listan över tillåtna.
    • Om du använder Azure IR lägger du till IP-adresser för Azure Integration Runtime. Om du inte vill lägga till ett intervall med IP-adresser i listan över tillåtna SFTP-servrar använder du lokalt installerad IR i stället.

Felkod: SftpPermissionDenied

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

  • Orsak: Den angivna användaren har inte läs- eller skrivbehörighet till mappen eller filen när den används.

  • Rekommendation: Ge användaren behörighet att läsa eller skriva till mappen eller filerna på SFTP-servern.

Felkod: SftpAuthenticationFailure

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

  • Orsak: Den angivna autentiseringsuppgiften (ditt lösenord eller din privata nyckel) är ogiltig.

  • Rekommendation: Kontrollera dina autentiseringsuppgifter.

  • Orsak: Den angivna autentiseringstypen är inte tillåten eller inte tillräcklig för att slutföra autentiseringen på SFTP-servern.

  • Rekommendation: Använd följande alternativ för att använda rätt autentiseringstyp:

    • Om servern kräver ett lösenord använder du "Basic".
    • Om servern kräver en privat nyckel använder du "offentlig SSH-nyckelautentisering".
    • Om servern kräver både "lösenord" och "privat nyckel" använder du "Multifaktorautentisering".
  • Orsak: SFTP-servern kräver "tangentbord-interaktiv" för autentisering, men du angav "lösenord".

  • Rekommendation:

    "keyboard-interactive" är en särskild autentiseringsmetod som skiljer sig från "lösenord". Det innebär att när du loggar in på en server måste du ange lösenordet manuellt och du kan inte använda det tidigare sparade lösenordet. Men Azure Data Factory (ADF) är en schemalagd dataöverföringstjänst och det finns ingen popup-indataruta som gör att du kan ange lösenordet vid körningen.

    Som en kompromiss tillhandahålls ett alternativ för att simulera indata i bakgrunden i stället för dina riktiga manuella indata, vilket motsvarar att ändra "tangentbord-interaktiv" till "lösenord". Om du kan acceptera det här säkerhetsproblemet följer du stegen nedan för att aktivera det:

    1. Hovra på den länkade SFTP-tjänsten på ADF-portalen och öppna nyttolasten genom att välja kodknappen.
    2. Lägg till "allowKeyboardInteractiveAuth": true i avsnittet "typeProperties".

Det går inte att ansluta till SFTP på grund av nyckelutbytesalgoritmer som tillhandahålls av SFTP stöds inte i ADF

  • Symptom: Du kan inte ansluta till SFTP via ADF och uppfyller följande felmeddelande: Failed to negotiate key exchange algorithm.

  • Orsak: De nyckelutbytesalgoritmer som tillhandahålls av SFTP-servern stöds inte i ADF. De nyckelutbytesalgoritmer som stöds av ADF är:

    • 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

    Den senaste versionen som stöder algoritmer för nyckelutbyte på SHIR är version 5.19.

Felkod: SftpInvalidHostKeyFingerprint

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

  • Orsak: Azure Data Factory stöder nu säkrare värdnyckelalgoritmer i SFTP-anslutningsappen. För de nyligen tillagda algoritmerna måste motsvarande fingeravtryck hämtas på SFTP-servern.

    De nyligen stödda algoritmerna är:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Rekommendation: Hämta ett giltigt fingeravtryck med värdnyckelnamnet i real finger-print från felmeddelandet på SFTP-servern. Du kan köra kommandot för att hämta fingeravtrycket på SFTP-servern. Till exempel: kör ssh-keygen -E md5 -lf <keyFilePath> i Linux-servern för att hämta fingeravtrycket. Kommandot kan variera mellan olika servertyper.

Felkod: Stöds inteCompressionTypeWhenDisableChunking

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

  • Orsak: Inaktivera segmentering är inte kompatibelt med ZipDeflate-dekomprimering .

  • Rekommendation: Läs in binära data till ett mellanlagringsområde (till exempel Azure Blob Storage) och dekomprimera dem i en annan kopieringsaktivitet.

HTTP

Felkod: HttpFileFailedToRead

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

  • Orsak: Det här felet uppstår när en datafabrik eller en Synapse-pipeline pratar med HTTP-servern, men HTTP-begärandeåtgärden misslyckas.

  • Rekommendation: Kontrollera HTTP-statuskoden i felmeddelandet och åtgärda problemet med fjärrservern.

Felkod: HttpSourceUnsupportedStatusCode

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

  • Orsak: Det här felet inträffar när Azure Data Factory begär HTTP-källa men får oväntad statuskod.

  • Rekommendation: Mer information om HTTP-statuskod finns i det här dokumentet.

Om du vill ha mer felsökningshjälp kan du prova dessa resurser: