استكشاف أخطاء موصلات 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) هي خدمة مجدولة لنقل البيانات، ولا يوجد مربع إدخال منبثق يسمح لك بتوفير كلمة المرور في وقت التشغيل.
كحل وسط، يتم توفير خيار لمحاكاة الإدخال في الخلفية بدلًا من الإدخال اليدوي الحقيقي، وهو ما يعادل تغيير "لوحة المفاتيح التفاعلية" إلى "كلمة المرور". إذا كان بإمكانك قبول هذه المشكلة الأمنية، فاتبع الخطوات أدناه لتمكينها:
- في بوابة ADF الإلكترونية، مرر مؤشر الماوس فوق الخدمة المرتبطة بـSFTP، وافتح حمولتها عن طريق تحديد زر الرمز.
- إضافة
"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، راجع هذا المستند.
المحتوى ذو الصلة
لمزيد من تعليمات استكشاف الأخطاء وإصلاحها، جرب هذه الموارد: