مشاركة عبر


النشر إلى Azure App Service باستخدام Git المحلي

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

إشعار

يتطلب نشر Git المحلي مصادقة أساسية ل Source Control Manager (SCM)، وهي أقل أمانا من أساليب التوزيع الأخرى. إذا تم تعطيل المصادقة الأساسية، فلا يمكنك تكوين نشر Git المحلي في مركز النشر للتطبيق.

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

لإكمال الخطوات في هذه المقالة تحتاج إلى:

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

  • تم تثبيت Git ومستودع Git محلي يحتوي على التعليمات البرمجية للتطبيق لنشره.

    يمكنك استنساخ نموذج Node.js مستودع التطبيق عن طريق تشغيل الأمر التالي في نافذة Bash الطرفية المحلية:

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • إذا كنت ترغب في استخدام أوامر Azure CLI، فإن أحدث إصدار من Azure CLI مثبت على جهازك المحلي. سجل الدخول إلى Azure باستخدام az login.

  • إذا كنت ترغب في تشغيل أوامر Azure PowerShell، فإن أحدث إصدار من Azure PowerShell مثبت. سجل الدخول إلى Azure باستخدام Connect-AzAccount.

قم بإعداد المستودع الخاص بك

للحصول على إصدارات تلقائية من خادم إنشاء خدمة التطبيقات، تأكد من أن جذر المستودع الخاص بك يحتوي على الملفات الصحيحة في مشروعك.

وقت التشغيل ملفات الدليل الجذر
ASP.NET (Windows فحسب) *.slnأو *.csprojأو .default.aspx
ASP.NET Core *.sln أو *.csproj.
PHP Person.
Ruby (Linux فحسب) Person.
Node.js server.jsأو app.jsأو package.json باستخدام برنامج نصي للبدء.
بايثون *.pyأو requirements.txtأو .runtime.txt
HTML default.htmأو أو default.htmldefault.aspأو index.htmindex.htmliisstart.htm.
WebJobs <job_name>/run.<extension> ضمن App_Data/jobs/continuous ل WebJobs المستمر، أو App_Data/jobs/triggered ل WebJobs المشغلة. لمزيدٍ من المعلومات، راجع وثائق Kudu WebJobs.
الوظائف راجع التوزيع المستمر لوظائف Azure.

لتخصيص التوزيع الخاص بك، قم بتضمين .deployment ملف في جذر المستودع. لمزيدٍ من المعلومات، راجع تخصيص عمليات التوزيع والبرنامج النصي للتوزيع المخصص.

تلميح

يمكن ل Visual Studio إنشاء مستودع لك. باستخدام هذه الطريقة، يكون مشروعك جاهزا للتوزيع على الفور عبر Git.

بيانات اعتماد مستخدم النشر

تحتاج إلى بيانات اعتماد مستخدم النشر لمصادقة تطبيقك ونشره. تختلف هذه البيانات عن بيانات اعتماد اشتراك Azure، ويمكنك استخدام بيانات اعتماد نطاق المستخدم أو نطاق التطبيق .

يحتاج مستخدم نشر نطاق المستخدم لنشر Git المحلي فقط إلى اسم مستخدم، وليس كلمة مرور. يمكنك تعيين اسم المستخدم لنطاق المستخدم عن طريق تشغيل أمر az webapp deployment user set --user-name <username>Azure CLI ، أو ضمن نطاق المستخدم في علامة التبويب بيانات اعتماد Git/FTPS المحليةفي مركز النشر للتطبيق.

بمجرد إنشاء مستخدم نشر نطاق المستخدم الخاص بك، يمكنك استخدامه لجميع تطبيقات App Service التي يمكنك الوصول إليها. لمزيد من المعلومات، راجع تكوين بيانات اعتماد نطاق المستخدم.

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

إنشاء وتكوين تطبيق يدعم Git

يمكنك إنشاء وتكوين تطبيق يدعم Git، أو تكوين نشر Git المحلي لتطبيق موجود مسبقا، باستخدام Azure CLI أو Azure PowerShell أو مدخل Microsoft Azure.

  • لإنشاء تطبيق ويب جديد تم تكوينه لنشر Git المحلي، قم بتشغيل az webapp create باستخدام --deployment-local-git الخيار . على سبيل المثال:

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:24-lts" --deployment-local-git
    
  • لتكوين نشر Git المحلي لتطبيق موجود بالفعل، قم بتشغيل az webapp deployment source config-local-git. على سبيل المثال:

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

ينتج عن أي من الأمرين إخراج يتضمن عنوان URL، مثل:

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

يحتوي عنوان URL السابق على اسم contoso-user. إذا لم يكن لديك اسم مستخدم نشر نطاق المستخدم، فإن عنوان URL يستخدم اسم مستخدم نطاق التطبيق، على سبيل المثال https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

استخدم عنوان URL الخاص باستنساخ Git هذا لنشر تطبيقك في الخطوة التالية.

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

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

إنشاء الفرع البعيد

إذا استخدمت Azure PowerShell New-AzWebApp لإنشاء التطبيق من نموذج التعليمات البرمجية azure ، فقد تم إنشاء جهاز التحكم عن بعد بالفعل. وإلا، اتبع هذه الإرشادات لإنشاء جهاز التحكم عن بعد:

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

  2. أضف Git remote المسمى azure باستخدام عنوان URL الخاص باستنساخ Git. إذا كنت لا تعرف عنوان URL الخاص بنسخ Git، فاستخدم https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

دفع إلى الفرع الصحيح

تنشر مستودعات App Service الملفات إلى master الفرع بشكل افتراضي. إذا كانت ملفاتك المحلية الموجودة مسبقا في master فرع المستودع الخاص بك، يمكنك الآن نشر تطبيقك عن طريق تشغيل git push azure master.

ومع ذلك، العديد من مستودعات Git، بما في ذلك نموذج مستودع التعليمات البرمجية لهذه المقالة، استخدم main أو اسم فرع افتراضي آخر. للنشر إلى الفرع الصحيح، يجب إما النشر بشكل صريح إلى الفرع البعيد master ، أو تغيير فرع التوزيع إلى main أو اسم فرع آخر ونشره إلى هذا الفرع.

النشر بشكل صريح إلى master من الفرع الخاص بك main باستخدام الأمر التالي push :

git push azure main:master

أو قم بتغيير إعداد تطبيق التطبيق DEPLOYMENT_BRANCH إلى main ثم ادفع مباشرة إلى main، كما يلي:

  • Azure CLI:

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    
  • مدخل Microsoft Azure:

    1. في صفحة المدخل لتطبيقك، حدد متغيرات البيئة ضمن الإعدادات في قائمة التنقل اليسرى.
    2. حدد Add، وأضف إعداد تطبيق بالاسم DEPLOYMENT_BRANCHوالقيمة الرئيسية، وحدد Apply.
    3. في نافذة المحطة الطرفية، قم بتشغيل git push azure main.

إنهاء التوزيع والتحقق منه

إذا ظهر مربع الحوار Git Credential Manager بعد دفع التعليمات البرمجية الخاصة بك، أدخل اسم مستخدم نشر نطاق المستخدم أو اسم المستخدم وكلمة المرور لنطاق التطبيق. إذا كان عنوان URL البعيد ل Git يحتوي بالفعل على معلومات تسجيل الدخول، فلن تتم مطالبتك بإدخالها.

راجع الإخراج من push الأمر . قد ترى أتمتة خاصة بوقت التشغيل، مثل npm install Node.jsأو MSBuild ASP.NET أو pip install ل Python. إذا تلقيت أخطاء، فراجع استكشاف أخطاء التوزيع وإصلاحها.

انتقل إلى مدخل Microsoft Azure وتحقق من نشر التطبيق بنجاح عن طريق تحديد ارتباط المجال الافتراضي في صفحة نظرة عامة على التطبيق. يجب فتح التطبيق في علامة تبويب مستعرض وعرض Hello World!.

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

قد تحدث الأخطاء الشائعة التالية عند استخدام Git المحلي للنشر إلى تطبيق App Service في Azure:

رسالة السبب نوع الحل
Unable to access '[siteURL]': Failed to connect to [scmAddress] التطبيق لا يعمل. في مدخل Microsoft Azure، ابدأ تشغيل التطبيق. لا يتوفر توزيع Git عند إيقاف تطبيق الويب.
Couldn't resolve host 'hostname' معلومات العنوان لجهاز azure التحكم عن بعد غير صحيحة. git remote -v استخدم الأمر لسرد جميع أجهزة التحكم عن بعد وعناوين URL المقترنة بها. تحقق من صحة عنوان URL لجهاز azure التحكم عن بعد. إذا لزم الأمر، قم بإزالة عنوان URL غير الصحيح باستخدام git remote remove ثم أعد إنشاء جهاز التحكم عن بعد بعنوان 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 <branch>.
Error - Changes committed to remote repository but deployment to website failed. لقد دفعت فرعا محليا لا يتطابق مع فرع نشر التطبيق على azure. تحقق من أن الفرع الحالي هو master، أو قم بتغيير فرع التوزيع باتباع الإرشادات الموجودة في Push إلى الفرع الصحيح.
src refspec [branchname] does not match any. حاولت الدفع إلى فرع آخر غير main على azure جهاز التحكم عن بعد. قم بتشغيل git push مرة أخرى، وحدد main الفرع باستخدام 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\