نشر التطبيق في Azure App Service باستخدام FTP/S

توضح لك هذه المقالة كيفية استخدام FTP أو FTPS لتوزيع تطبيق الويب أو الواجهة الخلفية لتطبيق الأجهزة المحمولة أو تطبيق واجهة برمجة التطبيقات إلى "خدمة تطبيق Azure".

نقطة نهاية FTP/S لتطبيقك نشطة بالفعل. لا يلزم التكوين لتمكين توزيع FTP/S.

إشعار

عند تعطيل المصادقة الأساسية ل FTP، لا يعمل نشر FTP/S، ولا يمكنك عرض بيانات اعتماد FTP أو تكوينها في مركز النشر للتطبيق.

الحصول على بيانات اعتماد التوزيع

  1. اتبع الإرشادات الموجودة في تكوين بيانات اعتماد التوزيع لـ "خدمة تطبيق Azure" لنسخ بيانات اعتماد نطاق التطبيق أو تعيين بيانات اعتماد نطاق المستخدم. يمكنك الاتصال بنقطة نهاية FTP/S لتطبيقك باستخدام أي من بيانات الاعتماد.

  2. اكتب اسم مستخدم FTP بالتنسيق التالي اعتمادًا على اختيارك لنطاق بيانات الاعتماد:

    نطاق-التطبيق نطاق-المستخدم
    <app-name>\$<app-name> <app-name>\<deployment-user>

    في "خدمة التطبيق"، تُشارَك نقطة نهاية FTP/S بين التطبيقات. نظرًا لأن بيانات اعتماد نطاق-المستخدم غير مرتبطة بمورد معين، تحتاج إلى إلحاق اسم مستخدم نطاق-المستخدم باسم التطبيق كما موضح أعلاه.

الحصول على نقطة نهاية FTP/S

في نفس صفحة الإدارة لتطبيقك حيث نسخت بيانات اعتماد التوزيع (مركز التوزيع>بيانات اعتماد FTP)، انسخ نقطة نهاية FTPS.

توزيع الملفات إلى Azure

  1. من عميل FTP (على سبيل المثال، Visual Studio أو Cyberduck أو WinSCP)، استخدم معلومات الاتصال التي جمعتها للاتصال بتطبيقك.
  2. انسخ ملفاتك وبنية الدليل الخاصة بها إلى /site/wwwroot directory في Azure (أو الدليل /site/wwwroot/App_Data/Jobs/ لـ WebJobs).
  3. استعرض للوصول إلى عنوان URL للتطبيق للتحقق من أن التطبيق يعمل بشكل صحيح.

إشعار

على عكس عمليات التوزيع المستندة إلى Git وتوزيع Zip، توزيع FTP لا يدعم أتمتة الإنشاء مثل:

  • عمليات استعادة التبعية (مثل NuGet وNPM وPIP وأتمتة Composer)
  • تجميع ثنائيات Microsoft .NET
  • إنشاء web.config (فيما يلي مثال Node.js)

أنشئ هذه الملفات الضرورية يدويًا على جهازك المحلي ثم وزّعها مع تطبيقك.

فرض FTPS

لتحسين الأمان، يجب السماح بـ FTP عبر TLS/SSL فقط. يمكنك أيضًا تعطيل كل من FTP وFTPS إذا كنت لا تستخدم توزيع FTP.

  1. في صفحة موارد التطبيق في مدخل Microsoft Azure، حدد "تكوين>إعدادات عامة" من شريط التنقل الأيسر.

  2. لتعطيل FTP غير المُشفر، حدد "FTPS فقط" في "حالة FTP". لتعطيل كل من FTP وFTPS بالكامل، حدد "معطّل". عند الانتهاء، حدد حفظ. إذا كنت تستخدم FTPS فقط، فيجب عليك فرض TLS 1.2 أو أعلى عن طريق الانتقال إلى صفحة إعدادات TLS/SSL لتطبيق الويب الخاص بك. TLS 1.0 و1.1 غير مدعومين مع FTPS فقط.

    Disable FTP/S

ماذا يحدث لتطبيقي أثناء التوزيع؟

جميع أساليب التوزيع المعتمدة رسميًا تجري تغييرات على الملفات في المجلد /home/site/wwwroot من التطبيق الخاص بك. يتم استخدام هذه الملفات لتشغيل التطبيق الخاص بك. لذلك يمكن أن تفشل عملية التوزيع بسبب الملفات المؤمنة. قد يتصرف التطبيق أيضًا بشكل غير متوقع في أثناء التوزيع لأن الملفات لا تُحدث كلها في الوقت نفسه. هذا السلوك غير مرغوب فيه لتطبيق مواجه للعميل. هناك عدة طرق لتجنب المشكلات:

استكشاف أخطاء توزيع FTP وإصلاحها

كيف يمكنني استكشاف أخطاء توزيع FTP وإصلاحها؟

الخطوة الأولى لاستكشاف أخطاء توزيع FTP وإصلاحها هي عزل مشكلة التوزيع من مشكلة تطبيق وقت التشغيل.

عادة ما تؤدي مشكلة التوزيع إلى عدم توزيع أي ملف أو توزيع ملفات خاطئة في تطبيقك. يمكنك استكشاف الأخطاء وإصلاحها عن طريق التحقق من توزيع FTP أو تحديد مسار توزيع بديل (مثل التحكم بالمصادر).

تؤدي مشكلة تطبيق وقت التشغيل عادة إلى توزيع المجموعة الصحيحة من الملفات على تطبيقك ولكن سلوك التطبيق غير صحيح. يمكنك استكشاف الأخطاء وإصلاحها من خلال التركيز على سلوك التعليمات البرمجية في وقت التشغيل والتحقيق في مسارات فشل معينة.

لتحديد مشكلة التوزيع أو وقت التشغيل، راجع مشكلات التوزيع مقابل وقت التشغيل.

لست قادرًا على FTP وتوزيع التعليمات البرمجية. كيف يمكنني حل هذه المشكلة؟

تحقق من إدخال اسم المضيف الصحيح وبيانات الاعتماد. تحقق أيضا من أن منافذ FTP التالية على جهازك غير محظورة بواسطة جدار حماية:

  • منفذ اتصال تحكم FTP: 21، 990
  • منفذ اتصال بيانات FTP: 989، 10001-10300

كيف يمكنني الاتصال بـ FTP في "خدمة تطبيق Azure" عبر الوضع غير الفعال؟

تدعم "خدمة تطبيق Azure" الاتصال عبر كل من الوضع النشط وغير الفعال. يُفضَل الوضع غير الفعال لأن أجهزة التوزيع عادة ما تكون خلف جدار الحماية (في نظام التشغيل أو كجزء من شبكة منزلية أو تجارية). راجع مثال من وثائق WinSCP.

لماذا يفشل اتصالي عند محاولة الاتصال عبر FTPS باستخدام تشفير صريح؟

يسمح FTPS بإنشاء اتصال أمان TLS إما بطريقة صريحة أو ضمنية.

  • إذا قمت بالاتصال بالتشفير الضمني، يتم تأسيس الاتصال عبر المنفذ 990.
  • إذا قمت بالاتصال بتشفير صريح، يتم تأسيس الاتصال عبر المنفذ 21.

يمكن أن يؤثر تنسيق عنوان URL الذي تستخدمه على نجاح الاتصال، ويعتمد أيضا على تطبيق العميل الذي تستخدمه. يعرض المدخل عنوان URL ك ftps://، ولكن لاحظ:

  • إذا كان عنوان URL الذي تتصل به يبدأ ب ftp://، فيكون الاتصال ضمنيا على المنفذ 21.
  • إذا كان يبدأ ب ftps://، يتم تضمين الاتصال ليكون ضمنيا وعلى المنفذ 990.

تأكد من عدم خلط كليهما، مثل محاولة الاتصال ftps:// بالمنفذ 21 واستخدامه، لأنه سيفشل في الاتصال، حتى إذا كنت ترغب في إجراء تشفير صريح. ويرجع ذلك إلى اتصال صريح يبدأ كاتصال FTP عادي قبل أسلوب AUTH.

كيف يمكنني تحديد الأسلوب الذي تم استخدامه لنشر Azure App Service؟

يمكنك معرفة كيفية نشر تطبيق عن طريق التحقق من إعدادات التطبيق. إذا تم نشر التطبيق باستخدام عنوان URL لحزمة خارجية، يجب أن تشاهد WEBSITE_RUN_FROM_PACKAGE الإعداد في إعدادات التطبيق بقيمة عنوان URL. أو إذا تم نشره باستخدام توزيع zip، يجب أن تشاهد WEBSITE_RUN_FROM_PACKAGE الإعداد بقيمة 1. إذا تم نشر التطبيق باستخدام Azure DevOps، يجب أن تشاهد محفوظات النشر في مدخل Azure DevOps. إذا تم استخدام Azure Functions Core Tools، يجب أن تشاهد محفوظات التوزيع في مدخل Microsoft Azure.

المزيد من الموارد