Share via


Azure Data Factory ve Azure Synapse'te FTP, SFTP ve HTTP bağlayıcılarıyla ilgili sorunları giderme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

Bahşiş

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede, Azure Data Factory ve Azure Synapse'teki FTP, SFTP ve HTTP bağlayıcılarıyla ilgili yaygın sorunları gidermeye yönelik öneriler sağlanır.

FTP

Hata kodu: FtpFailedTo Bağlan ToFtpServer

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

  • Neden: FTP sunucusu için ftp sunucusuna bağlanmak için Güvenli FTP (SFTP) bağlı hizmeti kullanmak gibi yanlış bir bağlı hizmet türü kullanılabilir.

  • Öneri: Hedef sunucunun bağlantı noktasını denetleyin. FTP, 21 numaralı bağlantı noktasını kullanır.

Hata kodu: FtpFailedToReadFtpData

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

  • Neden: 1024 ile 65535 arasındaki bağlantı noktası aralığı, veri fabrikası veya Synapse işlem hattı tarafından desteklenen pasif mod altında veri aktarımı için açık değildir.

  • Öneri: Hedef sunucunun güvenlik duvarı ayarlarını denetleyin. FTP sunucusunda belirtilen 1024-65535 numaralı bağlantı noktasını veya bağlantı noktası aralığını SHIR/Azure IR IP adresine açın.

SFTP

Hata kodu: SftpOperationFail

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

  • Neden: SFTP işlemiyle ilgili bir sorun.

  • Öneri: SFTP'den hata ayrıntılarını denetleyin.

Hata kodu: SftpRenameOperationFail

  • İleti: 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.

  • Neden: SFTP sunucunuz geçici dosyanın yeniden adlandırılması için destek sağlamaz.

  • Öneri: Geçici dosyaya yüklemeyi devre dışı bırakmak için kopyalama havuzundaki "useTempFileRename" değerini false olarak ayarlayın.

Hata kodu: SftpInvalidSftpCredential

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

  • Neden: Özel anahtar içeriği Azure anahtar kasasından veya SDK'dan getirilir, ancak doğru kodlanmamıştır.

  • Öneri:

    Özel anahtar içeriği anahtar kasanızdan geliyorsa, doğrudan SFTP bağlı hizmetine yüklerseniz özgün anahtar dosyası çalışabilir.

    Daha fazla bilgi için bkz . Veri fabrikası veya Synapse işlem hatlarını kullanarak SFTP sunucusundan ve sunucusundan veri kopyalama. Özel anahtar içeriği base64 kodlanmış SSH özel anahtar içeriğidir.

    Özgün özel anahtar dosyasının tamamını base64 kodlamasıyla kodlayın ve kodlanmış dizeyi anahtar kasanızda depolayın. Özgün özel anahtar dosyası, dosyadan Karşıya Yükle'yi seçerseniz SFTP bağlı hizmetinde çalışabilen dosyadır.

    Dizeyi oluşturmak için kullanabileceğiniz bazı örnekler şunlardır:

    • C# kodunu kullanın:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Python kodunu kullanın:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Üçüncü taraf bir base64 dönüştürme aracı kullanın. Base64 biçiminde kodlama aracını öneririz.

  • Neden: Yanlış anahtar içerik biçimi seçildi.

  • Öneri:

    PKCS#8 biçimli SSH özel anahtarı ("-----BEGIN ENCRYPTED PRIVATE KEY----- ile başlayın") şu anda SFTP sunucusuna erişmek için desteklenmemektedir.

    "-----BEGIN RSA PRIVATE KEY-----" ile başlayarak anahtarı geleneksel SSH anahtar biçimine dönüştürmek için aşağıdaki komutları çalıştırın:

    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
    
  • Neden: Geçersiz kimlik bilgileri veya özel anahtar içeriği.

  • Öneri: Anahtar dosyanızın veya parolanızın doğru olup olmadığını görmek için WinSCP gibi araçlarla bir kez daha denetleyin.

SFTP kopyalama etkinliği başarısız oldu

  • Belirtiler:

    • Hata kodu: UserErrorInvalidColumnMappingColumnNotFound
    • Hata iletisi: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Neden: Kaynakta "AccMngr" adlı bir sütun yoktur.

  • Çözüm: "AccMngr" sütununun mevcut olup olmadığını belirlemek için hedef veri kümesi sütununu eşleyerek veri kümesi yapılandırmanızı iki kez denetleyin.

Hata kodu: SftpFailedTo Bağlan ToSftpServer

  • İleti: Failed to connect to SFTP server '%server;'.

  • Neden: Hata iletisi "Yuva okuma işlemi 30.000 milisaniyeden sonra zaman aşımına uğradı" dizesini içeriyorsa, olası nedenlerden biri SFTP sunucusu için yanlış bir bağlı hizmet türünün kullanılmasıdır. Örneğin, SFTP sunucusuna bağlanmak için FTP bağlı hizmetini kullanıyor olabilirsiniz.

  • Öneri: Hedef sunucunun bağlantı noktasını denetleyin. Varsayılan olarak, SFTP 22 numaralı bağlantı noktasını kullanır.

  • Neden: Hata iletisi "Sunucu yanıtı SSH protokolü tanımlaması içermiyor" dizesini içeriyorsa, olası nedenlerden biri SFTP sunucusunun bağlantıyı kısıtlamasıdır. SFTP sunucusundan paralel olarak indirmek için birden çok bağlantı oluşturulur ve bazen SFTP sunucusu azaltma ile karşılaşır. Normalde, farklı sunucular azaltmayla karşılaştıklarında farklı hatalar döndürür.

  • Öneri:

    SFTP veri kümesinin eş zamanlı bağlantı sayısı üst sınırını 1 olarak belirtin ve kopyalama etkinliğini yeniden çalıştırın. Etkinlik başarılı olursa, bunun nedeni azaltma olduğundan emin olabilirsiniz.

    Düşük aktarım hızını yükseltmek istiyorsanız eşzamanlı bağlantı sayısı sınırını artırmak için SFTP yöneticinize başvurun veya aşağıdakilerden birini yapabilirsiniz:

    • Şirket içinde barındırılan IR kullanıyorsanız, Şirket içinde barındırılan IR makinesinin IP'sini izin verilenler listesine ekleyin.
    • Azure IR kullanıyorsanız Azure Integration Runtime IP adreslerini ekleyin. SFTP sunucusu izin listesine bir ip aralığı eklemek istemiyorsanız, bunun yerine Şirket içinde barındırılan IR kullanın.

Hata kodu: SftpPermissionDenied

  • İleti: Permission denied to access '%path;'

  • Neden: Belirtilen kullanıcının çalışırken klasör veya dosyada okuma veya yazma izni yok.

  • Öneri: Kullanıcıya SFTP sunucusundaki klasör veya dosyaları okuma veya yazma izni verin.

Hata kodu: SftpAuthenticationFailure

  • İleti: 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.

  • Neden: Belirtilen kimlik bilgisi (parolanız veya özel anahtarınız) geçersiz.

  • Öneri: Kimlik bilgilerinizi denetleyin.

  • Neden: Belirtilen kimlik doğrulama türüne izin verilmiyor veya SFTP sunucunuzda kimlik doğrulamasını tamamlamak için yeterli değil.

  • Öneri: Doğru kimlik doğrulama türünü kullanmak için aşağıdaki seçenekleri uygulayın:

    • Sunucunuz bir parola gerektiriyorsa "Temel" kullanın.
    • Sunucunuz özel anahtar gerektiriyorsa "SSH ortak anahtar kimlik doğrulaması" kullanın.
    • Sunucunuz hem "parola" hem de "özel anahtar" gerektiriyorsa, "Birden çok faktörlü kimlik doğrulaması" kullanın.
  • Neden: SFTP sunucunuz kimlik doğrulaması için "klavye etkileşimli" gerektiriyor, ancak "parola" sağladınız.

  • Öneri:

    "klavye etkileşimli", "paroladan" farklı olan özel bir kimlik doğrulama yöntemidir. Bu, bir sunucuda oturum açarken parolayı el ile girmeniz gerektiği ve daha önce kaydedilmiş parolayı kullanamayacağınız anlamına gelir. Ancak Azure Data Factory (ADF) zamanlanmış bir veri aktarım hizmetidir ve çalışma zamanında parolayı sağlamanıza olanak sağlayan bir açılır giriş kutusu yoktur.

    Bir risk olarak, gerçek el ile girişiniz yerine arka planda girişin benzetimini yapmak için bir seçenek sağlanır ve bu seçenek "klavye etkileşimli"yi "parola" olarak değiştirmeye eşdeğerdir. Bu güvenlik endişesini kabul edebilirseniz etkinleştirmek için aşağıdaki adımları izleyin:

    1. ADF portalında SFTP bağlı hizmetinin üzerine gelin ve kod düğmesini seçerek yükünü açın.
    2. "typeProperties" bölümüne ekleyin "allowKeyboardInteractiveAuth": true .

SFTP tarafından sağlanan anahtar değişimi algoritmaları ADF'de desteklenmediğinden SFTP'ye bağlanılamıyor

  • Belirtiler: ADF aracılığıyla SFTP'ye bağlanamıyor ve aşağıdaki hata iletisini karşılayamıyorsunuz: Failed to negotiate key exchange algorithm.

  • Neden: SFTP sunucusu tarafından sağlanan anahtar değişimi algoritmaları ADF'de desteklenmez. ADF tarafından desteklenen anahtar değişimi algoritmaları şunlardır:

    • eğri25519-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'de yukarıdaki anahtar değişim algoritmalarını destekleyecek en son sürüm 5.19 sürümüdür.

Hata Kodu: SftpInvalidHostKeyFingerprint

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

  • Neden: Azure Data Factory artık SFTP bağlayıcısında daha güvenli konak anahtar algoritmalarını destekliyor. Yeni eklenen algoritmalar için SFTP sunucusunda ilgili parmak izini alması gerekir.

    Yeni desteklenen algoritmalar şunlardır:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Öneri: SFTP sunucusundaki hata iletisinden ana bilgisayar anahtarı adını real finger-print kullanarak geçerli bir parmak izi alın. SFTP sunucunuzda parmak izini almak için komutunu çalıştırabilirsiniz. Örneğin: Parmak izini almak için Linux sunucusunda komutunu çalıştırın ssh-keygen -E md5 -lf <keyFilePath> . Komut farklı sunucu türleri arasında farklılık gösterebilir.

Hata kodu: UnsupportedCompressionTypeWhenDisableChunking

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

  • Neden: Öbeklemesi devre dışı bırakma ZipDeflate sıkıştırma ile uyumlu değil.

  • Öneri: İkili verileri bir hazırlama alanına yükleyin (örneğin: Azure Blob Depolama) ve bunları başka bir kopyalama etkinliğinde açma.

HTTP

Hata kodu: HttpFileFailedToRead

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

  • Neden: Bir veri fabrikası veya Synapse işlem hattı HTTP sunucusuyla konuştuğunda ancak HTTP isteği işlemi başarısız olduğunda bu hata oluşur.

  • Öneri: Hata iletisindeki HTTP durum kodunu denetleyin ve uzak sunucu sorununu düzeltin.

Hata kodu: HttpSourceUnsupportedStatusCode

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

  • Neden: Azure Data Factory HTTP kaynağı istediğinde ancak beklenmeyen durum kodu aldığında bu hata oluşur.

  • Öneri: HTTP durum kodu hakkında daha fazla bilgi için bu belgeye bakın.

Daha fazla sorun giderme yardımı için şu kaynakları deneyin: