استكشاف أخطاء موصلات FTP وSFTP وHTTP وإصلاحها في Azure Data Factory وAzure Synapse

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

تقدم هذه المقالة اقتراحات لاستكشاف المشكلات الشائعة المتعلقة بموصلات FTP وSFTP وHTTP في Azure Data Factory و Azure Synapse وإصلاحها.

FTP

رمز الخطأ: FtpFailedToConnectToFtpServer

  • الرسالة: Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.

  • السبب : قد يتم استخدام نوع خدمة مرتبطة غير صحيحة لخادم FTP، مثل استخدام خدمة بروتوكول نقل الملفات الآمن (SFTP) المرتبطة للاتصال بخادم بروتوكول نقل الملفات.

  • توصية : تحقق من منفذ الملقم الهدف. يستخدم FTP المنفذ 21.

رمز الخطأ: FtpFailedToReadFtpData

  • الرسالة: Failed to read data from ftp: The remote server returned an error: 227 Entering Passive Mode (*,*,*,*,*,*).

  • السبب : نطاق المنفذ بين 1024 إلى 65535 ليس مفتوحًا لنقل البيانات في ظل الوضع الخامل الذي يدعمه مصنع البيانات أو خط أنابيب المشبك.

  • توصية: تحقق من إعدادات جدار الحماية لملقم الهدف. افتح المنفذ 1024-65535 أو نطاق المنفذ المحدد في خادم FTP لعنوان SHIR / Azure IR IP.

SFTP

رمز الخطأ: SftpOperationFail

  • الرسالة: Failed to '%operation;'. Check detailed error from SFTP.

  • السبب : مشكلة في عملية SFTP.

  • توصية : تحقق من التفاصيل الخاطئة من SFTP.

رمز الخطأ: SftpRenameOperationFail

  • الرسالة: 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.

  • السبب : خادم SFTP لا يدعم إعادة تسمية الملف المؤقت.

  • توصية: عيّن «useTempFileRename» باعتباره خطأ في مخزن النسخ لتعطيل التحميل إلى الملف المؤقت.

رمز الخطأ: SftpInvalidSftpCredential

  • الرسالة: Invalid SFTP credential provided for '%type;' authentication type.

  • السبب : يتم جلب محتوى المفتاح الخاص من مخزن مفاتيح Azure أو SDK، ولكن لم يتم ترميزه بشكل صحيح.

  • التوصية:

    إذا كان محتوى المفتاح الخاص من خزينة المفاتيح، يمكن أن يعمل ملف المفتاح الأصلي إذا قمت بتحميله مباشرةً إلى خدمة SFTP المرتبطة.

    لمزيد من المعلومات، راجع نسخ البيانات من وإلى خادم SFTP باستخدام مصنع البيانات أو مسارات Synapse . محتوى المفتاح الخاص عبارة عن محتوى مفتاح خاص لـSSH بترميز base64.

    قم بتشفير ملف المفتاح الخاص الأصلي بالكامل باستخدام تشفير base64، وتخزين السلسلة المشفرة في خزينة المفاتيح. ملف المفتاح الخاص الأصلي هو الملف الذي يمكنه العمل على خدمة SFTP المرتبطة إذا حددت تحميل من الملف.

    فيما يلي بعض العينات التي يمكنك استخدامها لإنشاء السلسلة:

    • استخدم كود C #:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • استخدم كود Python :

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • استخدم أداة تحويل base64 لجهة خارجية. نوصي باستخدام أداة التشفير بتنسيق Base64 .

  • السبب : تم اختيار تنسيق محتوى مفتاح خاطئ.

  • التوصية:

    تنسيق PKCS # 8 للمفتاح الخاص لـ SSH (يبدأ بـ "----- BEGIN ENCRYPTED PRIVATE KEY -----") غير مدعوم حاليًا للوصول إلى خادم SFTP.

    لتحويل المفتاح إلى تنسيق مفتاح SSH التقليدي، بدءًا من "----- 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
    
  • السبب : بيانات الاعتماد أو محتوى المفتاح الخاص غير صالح.

  • توصية : لمعرفة ما إذا كان ملف المفتاح أو كلمة المرور صحيحين، تحقق جيدا باستخدام أدوات مثل WinSCP.

فشل نشاط نسخ SFTP

  • الأعراض:

    • رمز الخطأ: UserErrorInvalidColumnMappingColumnNotFound
    • رسالة الخطأ: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • السبب : لا يتضمن المصدر عمودًا يسمى "AccMngr."

  • الحل : لتحديد ما إذا كان عمود "AccMngr" موجودًا، تحقق جيدًا من تكوين مجموعة البيانات عن طريق تعيين عمود مجموعة البيانات الوجهة.

رمز الخطأ: SftpFailedToConnectToSftpServer

  • الرسالة: Failed to connect to SFTP server '%server;'.

  • السبب : إذا كانت رسالة الخطأ تحتوي على السلسلة "انتهت مهلة عملية قراءة المقبس بعد 30000 مللي ثانية"، فإن أحد الأسباب المحتملة هو استخدام نوع خدمة مرتبط غير صحيح لخادم SFTP. على سبيل المثال، ربما تستخدم خدمة FTP المرتبطة للاتصال بخادم SFTP.

  • توصية : تحقق من منفذ الملقم الهدف. افتراضيًا، يستخدم SFTP المنفذ 22.

  • السبب : إذا كانت رسالة الخطأ تحتوي على السلسلة "استجابة الخادم لا تحتوي على تعريف بروتوكول SSH"، فإن أحد الأسباب المحتملة هو أن خادم SFTP قد خنق الاتصال. يتم إنشاء اتصالات متعددة للتنزيل من خادم SFTP بالتوازي، وفي بعض الأحيان سيواجه اختناق خادم SFTP. عادة، تقوم الخوادم المختلفة بإرجاع أخطاء مختلفة عند مواجهة الاختناق.

  • التوصية:

    حدد الحد الأقصى لعدد الاتصالات المتزامنة لمجموعة بيانات SFTP على أنه 1 وأعد تشغيل نشاط النسخ. إذا نجح النشاط، يمكنك التأكد من أن التقييد هو السبب.

    إذا كنت ترغب في ترقية معدل النقل المنخفض، فاتصل بمسؤول SFTP لزيادة حد الاتصال المتزامن أو يمكنك القيام بأحد الإجراءات التالية:

    • إذا كنت تستخدم IR مستضاف ذاتيًا، فأضف عنوان IP لجهاز IR المستضاف ذاتيًا إلى قائمة السماح.
    • إذا كنت تستخدم Azure IR، فأضف عناوين IP الخاصة بوقت تشغيل Azure Integration . إذا كنت لا تريد إضافة نطاق من عناوين IP إلى قائمة السماح لخادم SFTP، فاستخدم IR المستضاف ذاتيًا بدلًا من ذلك.

رمز الخطأ: SftpPermissionDenied

  • الرسالة: Permission denied to access '%path;'

  • السبب : المستخدم المحدد ليس لديه إذن قراءة أو كتابة للمجلد أو الملف أثناء التشغيل.

  • توصية : امنح المستخدم إذنا بالقراءة أو الكتابة إلى المجلد أو الملفات على خادم SFTP.

رمز الخطأ: SftpAuthenticationFailure

  • الرسالة: 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.

  • السبب : بيانات الاعتماد المحددة (كلمة المرور أو المفتاح الخاص) غير صالحة.

  • توصية : تحقق من بيانات الاعتماد الخاصة بك.

  • السبب : نوع المصادقة المحدد غير مسموح به أو غير كافٍ لإكمال المصادقة في خادم SFTP.

  • توصية : طبق الخيارات التالية لاستخدام نوع المصادقة الصحيح:

    • إذا كان الخادم الخاص بك يتطلب كلمة مرور، فاستخدم "أساسي".
    • إذا كان الخادم الخاص بك يتطلب مفتاحًا خاصًا، فاستخدم "مصادقة المفتاح العام SSH".
    • إذا كان الخادم الخاص بك يتطلب كلًا من "كلمة المرور" و "المفتاح الخاص"، فاستخدم "المصادقة متعددة العوامل".
  • السبب : يتطلب خادم SFTP "لوحة مفاتيح تفاعلية" للمصادقة، ولكنك قدمت "كلمة مرور".

  • التوصية:

    "لوحة المفاتيح التفاعلية" هي طريقة مصادقة خاصة تختلف عن "كلمة المرور". هذا يعني أنه عند تسجيل الدخول إلى خادم ما، فيجب عليك إدخال كلمة المرور يدويًا، ولا يمكنك استخدام كلمة المرور المحفوظة مسبقًا. لكن Azure Data Factory (ADF) هي خدمة مجدولة لنقل البيانات، ولا يوجد مربع إدخال منبثق يسمح لك بتوفير كلمة المرور في وقت التشغيل.

    كحل وسط، يتم توفير خيار لمحاكاة الإدخال في الخلفية بدلًا من الإدخال اليدوي الحقيقي، وهو ما يعادل تغيير "لوحة المفاتيح التفاعلية" إلى "كلمة المرور". إذا كان بإمكانك قبول هذه المشكلة الأمنية، فاتبع الخطوات أدناه لتمكينها:

    1. في بوابة ADF الإلكترونية، مرر مؤشر الماوس فوق الخدمة المرتبطة بـSFTP، وافتح حمولتها عن طريق تحديد زر الرمز.
    2. إضافة "allowKeyboardInteractiveAuth": true في قسم "typeProperties".

يتعذر الاتصال ب SFTP بسبب خوارزميات التبادل الرئيسية التي يوفرها SFTP غير مدعومة في ADF

  • الأعراض: لا يمكنك الاتصال ب SFTP عبر ADF وتلبية رسالة الخطأ التالية: Failed to negotiate key exchange algorithm.

  • السبب: خوارزميات التبادل الرئيسية التي يوفرها خادم SFTP غير مدعومة في ADF. خوارزميات التبادل الأساسية التي يدعمها ADF هي:

    • 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

    أحدث إصدار لدعم خوارزميات تبادل المفاتيح أعلاه على SHIR هو الإصدار 5.19.

رمز الخطأ: SftpInvalidHostKeyFingerprint

  • الرسالة: Host key finger-print validation failed. Expected fingerprint is '<value in linked service>', real finger-print is '<server real value>'

  • السبب: يدعم Azure Data Factory الآن خوارزميات مفتاح المضيف الأكثر أمانًا في موصل SFTP. بالنسبة للخوارزميات المضافة حديثًا، يتطلب الأمر الحصول على البصمة المقابلة في خادم SFTP.

    الخوارزميات المدعومة حديثًا هي:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • التوصية: احصل على بصمة صالحة باستخدام اسم مفتاح المضيف في real finger-print من رسالة الخطأ في خادم SFTP. يمكنك تشغيل الأمر للحصول على البصمة على خادم SFTP. على سبيل المثال: شغل ssh-keygen -E md5 -lf <keyFilePath> في خادم Linux للحصول على البصمة. قد يختلف الأمر بين أنواع الخوادم المختلفة.

رمز الخطأ: UnsupportedCompressionTypeWhenDisableChunking

  • الرسالة: "Disable chunking" is not compatible with "ZipDeflate" decompression.

  • السبب: تعطيل التقسيم غير متوافق مع ضغط ZipDeflate .

  • التوصية: تحميل البيانات الثنائية إلى منطقة التقسيم المرحلي (على سبيل المثال: Azure Blob Storage) وفك ضغطها في نشاط نسخ آخر.

HTTP

رمز الخطأ: HttpFileFailedToRead

  • الرسالة: Failed to read data from http server. Check the error from http server:%message;

  • السبب : يحدث هذا الخطأ عندما يتحدث مصنع بيانات أو خط أنابيب Synapse إلى خادم HTTP، ولكن تفشل عملية طلب HTTP.

  • توصية : التحقق من رمز حالة HTTP في الرسالة الخاطئة، وأصلح مشكلة الخادم البعيد.

رمز الخطأ: HttpSourceUnsupportedStatusCode

  • الرسالة: Http source doesn't support HTTP Status Code '%code;'.

  • السبب: يحدث هذا الخطأ عندما يطلب Azure Data Factory مصدر HTTP ولكنه يحصل على رمز حالة غير متوقع.

  • التوصية: لمزيد من المعلومات حول رمز حالة HTTP، راجع هذا المستند.

لمزيد من تعليمات استكشاف الأخطاء وإصلاحها، جرب هذه الموارد: