نشر Git المحلي في Azure App Service

يوضح لك هذا الدليل الإرشادي كيفية توزيع تطبيقك في Azure App Service من مستودع Git على الكمبيوتر المحلي.

إشعار

عند تعطيل مصادقة SCM الأساسية، لا يعمل نشر Git المحلي، ولا يمكنك تكوين نشر Local Git في مركز النشر للتطبيق.

المتطلبات الأساسية

لاتباع الخطوات الواردة في هذا الدليل الإرشادي:

  • إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

  • تثبيت Git.

  • أن يكون لديك مستودع 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.htmindex.htmldefault.aspiisstart.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 هذا على اسم مستخدم توزيع نطاق المستخدم. إذا أردت، يمكنك استخدام بيانات اعتماد نطاق التطبيق بدلاً من ذلك.

توزيع تطبيق الويب

  1. في النافذة الطرفية المحلية، قم بتغيير الدليل إلى جذر مستودع 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 البعيد لك.

  2. ادفع إلى Azure البعيد باستخدام git push azure master (راجع تغيير فرع التوزيع).

  3. في نافذة مدير بيانات اعتماد Git، أدخل بيانات اعتماد نطاق المستخدم أو نطاق التطبيق، وليس بيانات اعتماد تسجيل الدخول إلى Azure.

    إذا كان عنوان URL لـ Git البعيد يحتوي بالفعل على اسم المستخدم وكلمة المرور، فلن تتم مطالبتك بذلك.

  4. راجع الإخراج. قد ترى أتمتة خاصة بوقت التشغيل، مثل MSBuild ل ASP.NET، npm install Node.js وPython pip install .

  5. استعرض إلى تطبيقك في مدخل 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، عن طريق تحديد Configuration ضمن الإعدادات وإضافة إعداد تطبيق جديد باسم 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\

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