إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية نشر التعليمات البرمجية الخاصة بك كحزمة ZIP أو WAR أو JAR أو EAR إلى Azure App Service. كما يوضح لك كيفية نشر الملفات الفردية إلى App Service، بشكل منفصل عن حزمة التطبيق.
المتطلبات الأساسية
لإكمال الخطوات الواردة في هذه المقالة، قم بإنشاء تطبيق App Service، أو استخدم تطبيقا قمت بإنشائه لبرنامج تعليمي آخر.
إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
إنشاء حزمة ZIP للمشروع
هام
عند إنشاء حزمة ZIP للنشر، لا تقم بتضمين الدليل الجذر. قم بتضمين الملفات والدلائل فقط في الدليل الجذر. إذا قمت بتنزيل مستودع GitHub كملف ZIP، فلا يمكنك نشر هذا الملف كما هو على App Service. يضيف GitHub دلائل متداخلة في المستوى الأعلى، والتي لا تعمل مع App Service.
في نافذة طرفية محلية، انتقل إلى الدليل الجذر لمشروع التطبيق الخاص بك.
يجب أن يحتوي هذا الدليل على ملف الإدخال إلى تطبيق الويب الخاص بك، مثل index.htmlو index.phpو.app.js يمكن أن يحتوي أيضا على ملفات إدارة الحزم مثل project.jsonوcomposer.jsonpackage.jsonbower.json.requirements.txt
إذا كنت لا تريد أن تقوم App Service بتشغيل أتمتة التوزيع نيابة عنك، فقم بتشغيل جميع مهام الإنشاء. على سبيل المثال: npmوbowergulpcomposerpip. تأكد من أن لديك جميع الملفات التي تحتاجها لتشغيل التطبيق. هذه الخطوة مطلوبة إذا كنت تريد تشغيل حزمتك مباشرة.
أنشئ أرشيف ZIP من كل شيء في المشروع الخاص بك. بالنسبة dotnet للمشاريع، أضف كل شيء في دليل dotnet publish الإخراج للأمر، باستثناء دليل الإخراج نفسه. على سبيل المثال، أدخل الأمر التالي في المحطة الطرفية لإنشاء حزمة ZIP تتضمن محتويات الدليل الحالي:
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
نشر حزمة ZIP
عند نشر حزمة ZIP، تقوم App Service بفك محتوياتها في المسار الافتراضي لتطبيقك: D:\home\site\wwwroot ل Windows وLinux /home/site/wwwroot .
يستخدم نشر حزمة ZIP هذه نفس خدمة Kudu التي تعمل على تشغيل عمليات النشر المستمرة المستندة إلى التكامل. يدعم Kudu الوظائف التالية لنشر حزمة ZIP:
- حذف الملفات المتبقية من عملية نشر سابقة
- خيار تشغيل عملية الإنشاء الافتراضية، والتي تتضمن استعادة الحزمة
- تخصيص التوزيع، بما في ذلك تشغيل البرامج النصية للتوزيع
- سجلات التوزيع
- حد حجم الحزمة 2048 ميغابايت
ملاحظة
يتم نسخ الملفات الموجودة في حزمة ZIP فقط إذا لم تتطابق الطوابع الزمنية الخاصة بها مع ما تم نشره بالفعل.
النشر باستخدام واجهة مستخدم نشر ZIP في Kudu
- افتح تطبيقك في مدخل Microsoft Azure وحدد أدوات التطوير الأدوات>المتقدمة، ثم حدد Go.
- في Kudu، حدد Tools>Zip Push Deploy.
- قم بتحميل حزمة ZIP التي أنشأتها في إنشاء حزمة ZIP لمشروع. اسحبه إلى منطقة مستكشف الملفات على صفحة الويب.
عندما يكون النشر قيد التقدم، تظهر لك أيقونة في الزاوية العلوية اليسرى النسبة المئوية للتقدم. تعرض الصفحة أيضا رسائل للعملية أسفل منطقة مستكشف الملفات . عند انتهاء النشر، يجب أن تقول الرسالة الأخيرة "Deployment successful".
لا تعمل نقطة النهاية هذه لخدمة التطبيقات على Linux في الوقت الحالي. ضع في اعتبارك استخدام FTP أو ZIP deploy API بدلا من ذلك.
نشر بدون واجهة مستخدم نشر ZIP في Kudu
-
Azure CLI - Azure PowerShell
- واجهة برمجة تطبيقات Kudu
- قالب ARM
نشر حزمة ZIP إلى تطبيق الويب الخاص بك باستخدام az webapp deploy الأمر . يستخدم أمر CLI Kudu publish API لنشر الملفات ويمكن تخصيصه بالكامل.
يدفع المثال التالي حزمة ZIP إلى موقعك. حدد المسار إلى حزمة ZIP المحلية ل --src-path.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
يعيد هذا الأمر تشغيل التطبيق بعد نشر حزمة ZIP.
تمكين أتمتة البناء لنشر ZIP
بشكل افتراضي، يفترض محرك التوزيع أن حزمة ZIP جاهزة للتشغيل as-is ولا تشغل أي أتمتة للبناء. لتمكين نفس أتمتة البناء المستخدمة في نشر Git، قم بتعيين SCM_DO_BUILD_DURING_DEPLOYMENT إعداد التطبيق. قم بتشغيل الأمر التالي في Azure Cloud Shell:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
لمزيد من المعلومات، راجع وثائق Kudu.
توزيع حزم WAR أو JAR أو EAR
يمكنك نشر حزمة WAR أو JAR أو EAR إلى App Service لتشغيل تطبيق Java على الويب باستخدام واجهة برمجة تطبيقات نشر Azure CLI أو PowerShell أو Kudu.
تضع عملية النشر الموضحة هنا الحزمة على مشاركة محتوى التطبيق مع اصطلاح التسمية الصحيح وبنية الدليل. لمزيد من المعلومات، راجع مرجع Kudu publish API. نوصي بهذا النهج. إذا قمت بنشر حزم WAR أو JAR أو EAR باستخدام FTP أو Web Deploy بدلا من ذلك، فقد ترى حالات فشل غير معروفة بسبب أخطاء في التسمية أو البنية.
-
Azure CLI - Azure PowerShell
- واجهة برمجة تطبيقات Kudu
- قالب ARM
نشر حزمة WAR إلى Tomcat أو JBoss EAP باستخدام az webapp deploy الأمر . حدد المسار إلى حزمة Java المحلية الخاصة بك ل --src-path.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
يستخدم أمر CLI Kudu publish API لنشر الحزمة ويمكن تخصيصه بالكامل.
نشر ملفات فردية
-
Azure CLI - Azure PowerShell
- واجهة برمجة تطبيقات Kudu
- قالب ARM
نشر برنامج نصي لبدء التشغيل ومكتبة وملف ثابت إلى تطبيق الويب الخاص بك باستخدام az webapp deploy الأمر مع المعلمة --type .
إذا قمت بنشر برنامج نصي لبدء التشغيل بهذه الطريقة، فإن App Service تستخدم البرنامج النصي تلقائيا لبدء تشغيل التطبيق.
يستخدم أمر CLI Kudu publish API لنشر الملفات. يمكن تخصيص الأمر بالكامل.
نشر برنامج نصي لبدء التشغيل
az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup
نشر ملف مكتبة
az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib
نشر ملف ثابت
az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static
النشر إلى التطبيقات المؤمنة بالشبكة
اعتمادا على تكوين شبكة تطبيق الويب الخاص بك، قد يتم حظر الوصول المباشر إلى التطبيق من بيئة التطوير الخاصة بك. (راجع النشر إلى المواقع المؤمنة بالشبكة والنشر إلى المواقع المؤمنة بالشبكة، الجزء 2.) بدلا من دفع الحزمة أو الملف إلى تطبيق الويب مباشرة، يمكنك نشره على نظام تخزين يمكن الوصول إليه من تطبيق الويب وتشغيل التطبيق لسحب ZIP من موقع التخزين.
يمكن أن يكون عنوان URL البعيد أي موقع يمكن الوصول إليه بشكل عام، ولكن من الأفضل استخدام حاوية تخزين كائن ثنائي كبير الحجم مع مفتاح توقيع وصول مشترك (SAS) لحمايتها.
-
Azure CLI - Azure PowerShell
- واجهة برمجة تطبيقات Kudu
- قالب ARM
az webapp deploy استخدم الأمر كما تفعل في الأقسام الأخرى، ولكن استخدم --src-url بدلا من --src-path. يستخدم المثال التالي المعلمة --src-url لتحديد عنوان URL لملف ZIP مستضاف في حساب Azure Storage.
az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip
مرجع Kudu publish API
publish تسمح لك Kudu API بتحديد نفس المعلمات من أمر CLI كمعلمات استعلام URL. للمصادقة باستخدام Kudu REST API، نوصي بمصادقة الرمز المميز، ولكن يمكنك أيضا استخدام المصادقة الأساسية مع بيانات اعتماد نشر التطبيق.
يعرض الجدول التالي معلمات الاستعلام المتوفرة وقيمها المسموح بها والأوصاف.
| المفتاح | القيم المسموح بها | الوصف | مطلوب | نوع |
|---|---|---|---|---|
type |
war|jar|ear|lib|startup|static|zip |
هذا هو نوع البيانات الاصطناعية التي يتم نشرها. يقوم بتعيين المسار الهدف الافتراضي وإعلام تطبيق الويب بكيفية التعامل مع التوزيع. type=zip: انشر حزمة ZIP عن طريق فك ضغط المحتوى إلى /home/site/wwwroot.
path المعلمة اختيارية. type=war: نشر حزمة WAR. بشكل افتراضي، يتم نشر حزمة WAR إلى /home/site/wwwroot/app.war. يمكن تحديد المسار الهدف باستخدام path. type=jar: انشر حزمة JAR إلى /home/site/wwwroot/app.jar.
path يتم تجاهل المعلمة. type=ear: انشر حزمة EAR إلى /home/site/wwwroot/app.ear.
path يتم تجاهل المعلمة. type=lib: نشر ملف مكتبة JAR. بشكل افتراضي، يتم نشر الملف إلى /home/site/libs. يمكن تحديد المسار الهدف باستخدام path. type=static: نشر ملف ثابت، مثل برنامج نصي. بشكل افتراضي، يتم نشر الملف إلى /home/site/wwwroot. type=startup: نشر برنامج نصي تستخدمه App Service تلقائيا كبرنامج نصي لبدء التشغيل لتطبيقك. بشكل افتراضي، يتم نشر البرنامج النصي إلى D:\home\site\scripts\<name-of-source> لنظامي التشغيل Windows وLinux home/site/wwwroot/startup.sh . يمكن تحديد المسار الهدف باستخدام path. |
نعم | السلسلة |
restart |
true|false |
بشكل افتراضي، تعيد واجهة برمجة التطبيقات تشغيل التطبيق بعد عملية التوزيع (restart=true). عند نشر بيانات اصطناعية متعددة، يمكنك منع إعادة التشغيل على الكل ما عدا التوزيع النهائي عن طريق تعيين restart=false. |
لا | قيمة منطقية |
clean |
true|false |
تحديد ما إذا كنت تريد تنظيف (حذف) التوزيع الهدف قبل نشر البيانات الاصطناعية هناك. | لا | قيمة منطقية |
ignorestack |
true|false |
تستخدم WEBSITE_STACK واجهة برمجة تطبيقات النشر متغير البيئة لاختيار الإعدادات الافتراضية الآمنة اعتمادا على مكدس لغة موقعك. يؤدي تعيين هذه المعلمة إلى false تعطيل أي إعدادات افتراضية خاصة باللغة. |
لا | قيمة منطقية |
path |
مسار مطلق | المسار المطلق لنشر البيانات الاصطناعية إليه. على سبيل المثال، /home/site/deployments/tools/driver.jar أو /home/site/scripts/helper.sh. |
لا | السلسلة |
المحتوى ذو الصلة
للحصول على سيناريوهات توزيع أكثر تقدما، حاول النشر إلى Azure باستخدام Git. يتيح النشر المستند إلى Git إلى Azure التحكم في الإصدار واستعادة الحزمة وMSBuild والمزيد.