Memecahkan masalah konektor FTP, SFTP, dan HTTP di Azure Data Factory dan Azure Synapse

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini berisi saran untuk memecahkan masalah umum terkait konektor FTP, SFTP, dan HTTP di Azure Data Factory dan Azure Synapse.

FTP

Kode kesalahan: FtpFailedToConnectToFtpServer

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

  • Penyebab: Jenis layanan tertaut yang salah dapat digunakan untuk server FTP, seperti menggunakan layanan tertaut FTP (SFTP) Aman untuk terhubung ke server FTP.

  • Rekomendasi: Periksa port server target. FTP menggunakan port 21.

Kode kesalahan: FtpFailedToReadFtpData

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

  • Penyebab: Rentang port antara 1024 hingga 65535 tidak terbuka untuk transfer data di bawah mode pasif yang didukung oleh alur pabrik data atau pipa Synapse.

  • Rekomendasi: Periksa pengaturan firewall dari server target. Buka port 1024-65535 atau port range yang ditentukan dalam server FTP ke alamat IP SHIR/Azure IR.

SFTP

Kode kesalahan: SftpOperationFail

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

  • Penyebab: Masalah dengan operasi SFTP.

  • Rekomendasi: Periksa detail kesalahan dari SFTP.

Kode kesalahan: SftpRenameOperationFail

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

  • Penyebab:Server SFTP Anda tidak mendukung penggantian nama file sementara.

  • Rekomendasi: Atur "useTempFileRename" sebagai false di wastafel salinan untuk menonaktifkan pengunggahan ke file temp.

Kode kesalahan: SftpInvalidSftpCredential

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

  • Penyebab: Konten kunci pribadi diambil dari Azure Key Vault atau SDK, tetapi tidak dikodekan dengan benar.

  • Rekomendasi:

    Jika konten kunci pribadi berasal dari vault kunci Anda, file kunci asli dapat berfungsi jika Anda mengunggahnya langsung ke layanan yang ditautkan SFTP.

    Untuk informasi selengkapnya, lihat Menyalin data dari dan ke server SFTP dengan menggunakan alur pabrik data atau Synapse . Konten kunci privat adalah konten kunci pribadi SSH yang dikodekan base64.

    Encode seluruh file kunci pribadi asli dengan pengkodean base64, dan simpan untai (karakter) yang dikodekan di vault kunci Anda. File kunci pribadi asli adalah file yang dapat bekerja pada layanan yang ditautkan SFTP jika Anda memilih Unggah dari file.

    Berikut adalah beberapa sampel yang dapat Anda gunakan untuk menghasilkan untai (karakter):

    • Gunakan kode C#:

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

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Gunakan alat konversi base64 pihak ketiga. Kami merekomendasikan Mengkodekan ke alat format Base64.

  • Penyebab: Format konten kunci yang salah dipilih.

  • Rekomendasi:

    Kunci pribadi SSH format PKCS#8 (mulai dengan "-----BEGIN ENCRYPTED PRIVATE KEY-----") saat ini tidak didukung untuk mengakses server SFTP.

    Untuk mengonversi kunci ke format kunci SSH tradisional, dimulai dengan "-----BEGIN RSA PRIVATE KEY-----", jalankan perintah berikut:

    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
    
  • Penyebab: Informasi masuk tidak valid atau konten kunci pribadi.

  • Rekomendasi: Untuk melihat apakah file kunci atau kata sandi Anda benar, periksa kembali dengan alat seperti WinSCP.

Aktivitas salin SFTP gagal

  • Gejala:

    • Kode kesalahan: UserErrorInvalidColumnMappingColumnNotFound
    • Pesan Kesalahan: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Penyebab: Sumber tidak menyertakan kolom bernama "AccMngr."

  • Resolusi: Untuk menentukan apakah kolom "AccMngr" ada, periksa kembali konfigurasi himpunan data Anda dengan memetakan kolom himpunan data tujuan.

Kode kesalahan: SftpFailedToConnectToSftpServer

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

  • Penyebab: Jika pesan kesalahan berisi untai (karakter) "Operasi baca soket telah kehabisan waktu setelah 30.000 milidetik", salah satu penyebab yang mungkin adalah bahwa jenis layanan yang ditautkan salah digunakan untuk server SFTP. Misalnya, Anda mungkin menggunakan layanan tertaut FTP untuk terhubung ke server SFTP.

  • Rekomendasi: Periksa port server target. Secara default, SFTP menggunakan port 22.

  • Penyebab: Jika pesan kesalahan berisi untai (karakter) "Respons server tidak berisi identifikasi protokol SSH", salah satu penyebab yang mungkin adalah bahwa server SFTP membatasi koneksi. Beberapa koneksi dibuat untuk diunduh dari server SFTP secara paralel, dan kadang-kadang akan mengalami pembatasan server SFTP. Biasanya, server yang berbeda mengembalikan kesalahan yang berbeda ketika mereka mengalami pembatasan.

  • Rekomendasi:

    Tentukan jumlah maksimum koneksi bersamaan dari himpunan data SFTP sebagai 1 dan jalankan ulang aktivitas salin. Jika aktivitas berhasil, Anda dapat yakin bahwa pembatasan adalah penyebabnya.

    Jika ingin mempromosikan throughput rendah, hubungi administrator SFTP Anda untuk menambah batas jumlah koneksi bersamaan, atau Anda bisa melakukan salah satu hal berikut ini:

    • Jika Anda menggunakan IR yang dihost sendiri, tambahkan IP mesin IR yang dihosting sendiri ke daftar izinkan.
    • Saat menggunakan Azure IR, tambahkan Alamat IP Azure Integration Runtime. Jika tidak ingin menambahkan rentang IP ke daftar izin server SFTP, gunakan IR yang dihosting sendiri sebagai gantinya.

Kode kesalahan: SftpPermissionDenied

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

  • Penyebab: Pengguna yang ditentukan tidak memiliki izin baca atau tulis ke folder atau file saat beroperasi.

  • Rekomendasi: Berikan izin kepada pengguna untuk membaca atau menulis ke folder atau file di server SFTP.

Kode kesalahan: SftpAuthenticationFailure

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

  • Penyebab: Kredensial yang ditentukan (kata sandi atau kunci pribadi Anda) tidak valid.

  • Rekomendasi: Periksa kredensial Anda.

  • Penyebab: Tipe autentikasi yang ditentukan tidak diperbolehkan atau tidak cukup untuk menyelesaikan autentikasi di server SFTP Anda.

  • Recommendation: Terapkan opsi berikut untuk menggunakan tipe autentikasi yang benar:

    • Jika server Anda memerlukan kata sandi, gunakan "Basic".
    • Jika server Anda memerlukan kunci pribadi, gunakan "autentikasi kunci publik SSH".
    • Jika server Anda memerlukan "kata sandi" dan "kunci pribadi", gunakan "Autentikasi faktor ganda".
  • Penyebab: Server SFTP Anda memerlukan "keyboard-interaktif" untuk autentikasi, tetapi Anda memberikan "kata sandi".

  • Rekomendasi:

    "keyboard-interaktif" adalah metode autentikasi khusus, yang berbeda dari "kata sandi". Ini berarti bahwa ketika masuk ke server, Anda harus memasukkan kata sandi secara manual, dan Anda tidak dapat menggunakan kata sandi yang disimpan sebelumnya. Tetapi Azure Data Factory (ADF) adalah layanan transfer data terjadwal, dan tidak ada kotak input pop-up yang memungkinkan Anda untuk memberikan kata sandi pada saat runtime.

    Sebagai kompromi, opsi disediakan untuk mensimulasikan input di latar belakang, bukan input manual nyata Anda, yang setara dengan mengubah "keyboard-interaktif" menjadi "kata sandi". Jika Anda dapat menerima masalah keamanan ini, ikuti langkah-langkah di bawah ini untuk mengaktifkannya:

    1. Pada portal ADF, arahkan kursor ke layanan terkait SFTP, dan buka muatannya dengan memilih tombol kode.
    2. Tambahkan "allowKeyboardInteractiveAuth": true di bagian "typeProperties".

Tidak dapat tersambung ke SFTP karena algoritme pertukaran kunci yang disediakan oleh SFTP tidak didukung di ADF

  • Gejala: Anda tidak dapat tersambung ke SFTP melalui ADF dan mendapatkan pesan kesalahan berikut: Failed to negotiate key exchange algorithm.

  • Penyebab: Algoritme pertukaran kunci yang disediakan oleh server SFTP tidak didukung di ADF. Algoritme pertukaran kunci yang didukung oleh ADF adalah:

    • 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

    Versi terbaru untuk mendukung algoritma pertukaran kunci di atas pada SHIR adalah versi 5.19.

Kode Galat: SftpInvalidHostKeyFingerprint

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

  • Penyebab: Azure Data Factory sekarang mendukung algoritma kunci host yang lebih aman di dalam konektor SFTP. Untuk algoritma yang baru saja ditambahkan, algoritma butuh untuk mendapatkan sidik jari yang sesuai di dalam server SFTP.

    Algoritma yang baru didukung adalah:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Rekomendasi: Dapatkan sidik jari yang valid menggunakan Nama Kunci Host dari pesan kesalahan real finger-print di dalam server SFTP. Anda dapat menjalankan perintah untuk mendapatkan sidik jari di server SFTP Anda. Misalnya: jalankan ssh-keygen -E md5 -lf <keyFilePath> di dalam server Linux untuk mendapatkan sidik jari. Perintah dapat bervariasi di antara jenis server yang berbeda.

Kode kesalahan: UnsupportedCompressionTypeWhenDisableChunking

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

  • Penyebab: Menonaktifkan penggugusan tidak kompatibel dengan dekompresi ZipDeflate .

  • Rekomendasi: Muat data biner ke area penahapan (misalnya: Azure Blob Storage) dan dekompresi dalam aktivitas salin lain.

HTTP

Kode kesalahan: HttpFileFailedToRead

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

  • Penyebab: Kesalahan ini terjadi ketika alur pabrik data dan Synapse berkomunikasi dengan server HTTP, tetapi operasi permintaan HTTP gagal.

  • Rekomendasi: Periksa kode status HTTP di pesan kesalahan, dan perbaiki masalah server jarak jauh.

Kode galat: HttpSourceUnsupportedStatusCode

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

  • Penyebab: Kesalahan ini terjadi ketika Azure Data Factory meminta sumber HTTP tetapi mendapatkan kode status yang tidak terduga.

  • Rekomendasi: Untuk informasi selengkapnya tentang kode status HTTP, lihat dokumen ini.

Untuk bantuan pemecahan masalah lainnya, coba sumber daya ini: