نشر Git المحلي في Azure App Service
يوضح لك هذا الدليل الإرشادي كيفية توزيع تطبيقك في Azure App Service من مستودع Git على الكمبيوتر المحلي.
إشعار
عند تعطيل مصادقة SCM الأساسية، لا يعمل نشر Git المحلي، ولا يمكنك تكوين نشر Local Git في مركز النشر للتطبيق.
المتطلبات الأساسية
لاتباع الخطوات الواردة في هذا الدليل الإرشادي:
-
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
أن يكون لديك مستودع Git محلي مع التعليمات البرمجية التي تريد توزيعها. لتنزيل نموذج مستودع، قم بتشغيل الأمر التالي في النافذة الطرفية المحلية:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
قم بإعداد المستودع الخاص بك
للحصول على تصميمات مؤتمتة من خادم إنشاء Azure App Service، تأكد من أن جذر المستودع الخاص بك يحتوي على الملفات الصحيحة في مشروعك.
وقت التشغيل | ملفات الدليل الجذر |
---|---|
ASP.NET (Windows فحسب) | *.sln و *.csproj , أو default.aspx |
ASP.NET Core | *.sln أو *.csproj |
PHP | index.php |
Ruby (Linux فحسب) | Gemfile |
Node.js | server.js أو app.js أو package.json باستخدام برنامج نصي للبدء |
Python | *.py و requirements.txt , أو runtime.txt |
HTML | default.htm أو أو default.html أو index.htm index.html default.asp iisstart.htm |
WebJobs | <job_name>/run.<extension> ضمن App_Data/jobs/continuous ل WebJobs المستمر، أو App_Data/jobs/triggered ل WebJobs المشغلة. لمزيدٍ من المعلومات، راجع وثائق Kudu WebJobs. |
الوظائف | راجع التوزيع المستمر لوظائف Azure. |
لتخصيص التوزيع، قم بتضمين ملف .deployment في جذر المستودع. لمزيدٍ من المعلومات، راجع تخصيص عمليات التوزيع والبرنامج النصي للتوزيع المخصص.
إشعار
إذا كنت تستخدم Visual Studio، فدع Visual Studio ينشئ مستودعًا لك. سيكون مشروعك جاهزًا على الفور للتوزيع عبر Git.
تكوين مستخدم توزيع
راجع تكوين بيانات اعتماد التوزيع لـ Azure App Service. يمكنك استخدام بيانات اعتماد نطاق المستخدم أو بيانات اعتماد نطاق التطبيق.
إنشاء تطبيق ممكّن عليه Git
إذا كان لديك بالفعل تطبيق App Service وتريد تكوين توزيع Git محلي له، فراجع تكوين تطبيق موجود بدلاً من ذلك.
شغّل az webapp create
مع الخيار --deployment-local-git
. على سبيل المثال:
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
يحتوي الإخراج على عنوان URL مثل: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. استخدم عنوان URL هذا لتوزيع تطبيقك في الخطوة التالية.
تكوين تطبيق موجود
إذا لم يكن لديك تطبيق حتى الآن، فشاهد إنشاء تطبيق ممكن ل Git بدلا من ذلك.
شغّل az webapp deployment source config-local-git
. على سبيل المثال:
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
يحتوي الإخراج على عنوان URL مثل: https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. استخدم عنوان URL هذا لتوزيع تطبيقك في الخطوة التالية.
تلميح
يحتوي عنوان URL هذا على اسم مستخدم توزيع نطاق المستخدم. إذا أردت، يمكنك استخدام بيانات اعتماد نطاق التطبيق بدلاً من ذلك.
توزيع تطبيق الويب
في النافذة الطرفية المحلية، قم بتغيير الدليل إلى جذر مستودع Git، وأضف Git البعيد باستخدام عنوان URL الذي حصلت عليه من تطبيقك. إذا لم يمنحك الأسلوب الذي اخترته عنوان URL، فاستخدم
https://<app-name>.scm.azurewebsites.net/<app-name>.git
مع اسم التطبيق في<app-name>
.git remote add azure <url>
إشعار
إذا أنشأت تطبيق ممكّن عليه Git في PowerShell باستخدام New-AzWebApp، يتم بالفعل إنشاء Git البعيد لك.
ادفع إلى Azure البعيد باستخدام
git push azure master
(راجع تغيير فرع التوزيع).في نافذة مدير بيانات اعتماد Git، أدخل بيانات اعتماد نطاق المستخدم أو نطاق التطبيق، وليس بيانات اعتماد تسجيل الدخول إلى Azure.
إذا كان عنوان URL لـ Git البعيد يحتوي بالفعل على اسم المستخدم وكلمة المرور، فلن تتم مطالبتك بذلك.
راجع الإخراج. قد ترى أتمتة خاصة بوقت التشغيل، مثل MSBuild ل ASP.NET،
npm install
Node.js وPythonpip install
.استعرض إلى تطبيقك في مدخل Azure للتحقق من توزيع المحتوى.
تغيير فرع التوزيع
عند دفع التثبيتات إلى مستودع App Service، تقوم App Service بتوزيع الملفات في فرع master
بشكل افتراضي. نظرًا لأن العديد من مستودعات Git تنتقل بعيدًا من master
إلى main
، تحتاج إلى التأكد من دفعك إلى الفرع الصحيح في مستودع App Service بإحدى طريقتين:
التوزيع إلى
master
بشكل صريح باستخدام أمر مثل:git push azure main:master
قم بتغيير فرع التوزيع عن طريق تعيين إعداد تطبيق
DEPLOYMENT_BRANCH
، ثم دفع التثبيتات إلى الفرع المخصص. للقيام بذلك باستخدام Azure CLI:az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
يمكنك أيضا تغيير
DEPLOYMENT_BRANCH
إعداد التطبيق في مدخل Microsoft Azure، عن طريق تحديد متغيرات البيئة ضمن الإعدادات وإضافة إعداد تطبيق جديد باسمDEPLOYMENT_BRANCH
وقيمةmain
.
استكشاف أخطاء التوزيع وإصلاحها
قد ترى رسائل الخطأ الشائعة التالية عند استخدام Git للنشر إلى تطبيق App Service في Azure:
رسالة | السبب | نوع الحل |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
التطبيق لا يعمل. | ابدأ تشغيل التطبيق في مدخل Azure. لا يتوفر توزيع Git عند إيقاف تطبيق الويب. |
Couldn't resolve host 'hostname' |
معلومات العنوان لجهاز azure التحكم عن بعد غير صحيحة. |
استخدم الأمر git remote -v لسرد جميع أجهزة التحكم عن بعد، جنبًا إلى جنب مع عنوان URL المقترن. تحقق من صحة عنوان URL لجهاز azure التحكم عن بعد. إذا لزم الأمر، قم بإزالة هذا البعيد وإعادة إنشائه باستخدام عنوان URL الصحيح. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
لم تحدد فرعًا أثناء git push ، أو لم تقم بتعيين القيمة push.default في .gitconfig . |
قم بتشغيل git push مرة أخرى، مع تحديد الفرع الرئيسي: git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
لقد دفعت فرعا محليا لا يتطابق مع فرع نشر التطبيق على azure . |
تحقق من أن الفرع الحالي هو master . لتغيير الفرع الافتراضي، استخدم إعداد التطبيق DEPLOYMENT_BRANCH (راجع تغيير فرع التوزيع). |
src refspec [branchname] does not match any. |
حاولت الدفع إلى فرع آخر غير الفرع الرئيسي على azure جهاز التحكم عن بعد. |
قم بتشغيل git push مرة أخرى، مع تحديد الفرع الرئيسي: git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
يمكن أن يحدث هذا الخطأ إذا حاولت دفع مستودع git كبير عبر HTTPS. | قم بتغيير تكوين git على الجهاز المحلي لجعل postBuffer أكبر. على سبيل المثال: git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
قمت بتوزيع تطبيق Node.js مع ملف package.json الذي يحدد وحدات إضافية مطلوبة. | راجع رسائل الخطأ npm ERR! قبل هذا الخطأ لمزيد من السياق حول الفشل. فيما يلي الأسباب المعروفة لهذا الخطأ، ورسائل npm ERR! المقابلة:ملف package.json تم تكوينه بشكل غير صحيح: npm ERR! Couldn't read dependencies. لا تحتوي الوحدة الأصلية على توزيع ثنائي لنظام التشغيل Windows: npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 أو npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |