في هذا البرنامج التعليمي، ستقوم بنشر نموذج Express.js التطبيق باستخدام قاعدة بيانات MongoDB إلى Azure. سيتم استضافة تطبيق Express.js في Azure App Service، الذي يدعم استضافة تطبيقات Node.js في كل من بيئات خوادم Linux (إصدارات Node 12 و14 و16) و Windows (الإصداران 12 و14). سيتم استضافة قاعدة بيانات MongoDB في Azure Cosmos DB ، وهي قاعدة بيانات سحابية أصلية تقدم واجهة برمجة تطبيقات متوافقة مع MongoDB بنسبة 100٪.
تفترض هذه المقالة أنك على دراية بالفعل بالتطويرNode.js ولديك Node و MongoDB مثبتة محليا. ستحتاج أيضا إلى حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، فيمكنك إنشاء حساب مجانا.
سجل الدخول إلى مدخل Azure واتبع الخطوات التالية لإنشاء موارد خدمة تطبيقات Azure .
الإرشادات
لقطة شاشة
في مدخل Microsoft Azure:
أدخل "خدمات التطبيقات" في شريط البحث أعلى مدخل Azure.
حدد العنصر المسمى خدمات التطبيقات ضمن العنوان خدمات ضمن الخدمات في القائمة التي تظهر أسفل شريط البحث.
في صفحة خدمات التطبيقات ، حدد + إنشاء
في الصفحة إنشاء تطبيق ويب ، املأ النموذج كما يلي.
مجموعة الموارد → حدد إنشاء جديد واستخدم اسما ل msdocs-expressjs-mongodb-tutorial.
الاسم → msdocs-expressjs-mongodb-XYZ حيث XYZ هو أي ثلاثة أحرف عشوائية. يجب أن يكون هذا الاسم فريدًا عبر Azure.
نشررمز →.
مكدس وقت التشغيل → Node 14 LTS.
نظام التشغيل → لينكس.
المنطقة → أي منطقة Azure بالقرب منك.
خطة Linux → حدد إنشاء جديد واستخدم اسما ل msdocs-expressjs-mongodb-plan.
Sku والحجم → حدد تغيير الحجم لتحديد خطة خدمة تطبيق مختلفة.
تتحكم خطة خدمة التطبيق في عدد الموارد (وحدة المعالجة المركزية/الذاكرة) المتوفرة لتطبيقك وتكلفة هذه الموارد. يمكنك معرفة المزيد حول اختيار خطة خدمة التطبيقات في المقالة نظرة عامة على خطة خدمة التطبيق. للحصول على قائمة كاملة بخطط خدمة التطبيقات، راجع صفحة تسعير خدمة التطبيقات .
في هذا المثال، حدد Dev/Test في أعلى الشاشة وحدد خطة B1 (الأساسية). ستتحمل خطة B1 Basic رسوما صغيرة على حساب Azure الخاص بك ولكنها توفر أداء أفضل من خطة F1 (المجانية).
عند الانتهاء، حدد تطبيق لتطبيق التغييرات.
في صفحة إنشاء تطبيق ويب الرئيسية، حدد الزر *مراجعة + إنشاء في أسفل الشاشة.
سينقلك هذا إلى صفحة المراجعة . حدد إنشاء لإنشاء خدمة التطبيق.
لإنشاء موارد Azure في VS Code، يجب أن يكون لديك حزمة ملحق Azure Tools مثبتة وأن يتم تسجيل الدخول إلى Azure من VS Code.
حدد موقع أيقونة Azure في شريط الأدوات الأيمن وحددها لإظهار ملحق Azure Tools for VS Code.
في ملحق أدوات Azure ل VS Code:
حدد موقع قسم خدمة التطبيق في ملحق أدوات Azure
انقر بزر الماوس الأيمن فوق اشتراك Azure الذي تريد إنشاء تطبيق الويب فيه.
حدد إنشاء تطبيق ويب جديد... (متقدم) من قائمة السياق. تأكد من تحديد الخيار خيارات متقدمة .
أدخل اسما للتطبيق في مربع الحوار. على سبيل المثال، امنح تطبيق الويب الخاص بك اسما لمكان msdocs-expressjs-mongodb-XYZ XYZ الذي يتكون فيه من أي ثلاثة أحرف عشوائية. يجب أن يكون هذا الاسم فريدًا عبر Azure.
سيكون اسم النطاق المؤهل بالكامل لتطبيقك هو https://<app name>.azurewebsites.net.
حدد + إنشاء مجموعة موارد جديدة لإنشاء مجموعة موارد جديدة.
أدخل اسما ل msdocs-expressjs-mongodb-tutorial لمجموعة الموارد.
سيعرض مربع الحوار الآن قائمة بأوقات التشغيل المتاحة لتطبيق الويب الخاص بك. حدد الخيار Node 14 LTS لهذا المثال.
حدد نظام تشغيل لاستخدامه لبيئة استضافة الويب. على سبيل المثال، حدد Linux.
حدد موقعا قريبا منك حيث سيتم تشغيل تطبيق الويب الخاص بك.
حدد + إنشاء خطة خدمة تطبيق جديدة.
أدخل اسما لخطة msdocs-expressjs-mongodb لاسم خطة خدمة التطبيق.
يوصى بتحديد طبقة التسعير الأساسية (B1) لهذا المثال.
ستتحمل الطبقة الأساسية (B1) رسوما صغيرة على حساب Azure الخاص بك ولكنها توفر أداء أفضل من طبقة التسعير المجانية (F1 ).
حدد تخطي في الوقت الحالي عند مطالبتك بتحديد تطبيق جديد Insights المورد.
# Use 'az account list-locations --output table' to list locations
LOCATION='eastus'
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'
az group create \
--location $LOCATION \
--name $RESOURCE_GROUP_NAME
# Use 'az account list-locations --output table' to list locations
$location='eastus'
$resourceGroupName='msdocs-expressjs-mongodb-tutorial'
# Create a resource group
az group create `
--location $location `
--name $resourceGroupName
--sku تحدد المعلمة الحجم (وحدة المعالجة المركزية والذاكرة) وتكلفة خطة خدمة التطبيق. يستخدم هذا المثال خطة خدمة F1 (مجانية). للحصول على قائمة كاملة بخطط خدمة التطبيقات، راجع صفحة تسعير خدمة التطبيقات .
تحدد --is-linux العلامة Linux كنظام التشغيل المضيف. لاستخدام Windows، قم بإزالة هذه العلامة من الأمر.
APP_SERVICE_PLAN_NAME='msdocs-expressjs-mongodb-plan'
az appservice plan create \
--name $APP_SERVICE_PLAN_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--sku B1 \
--is-linux
$appServicePlanName='msdocs-expressjs-mongodb-plan'
az appservice plan create `
--name $appServicePlanName `
--resource-group $resourceGroupName `
--sku B1 `
--is-linux
أخيرا ، قم بإنشاء تطبيق ويب App Service باستخدام الأمر إنشاء تطبيق ويب az .
يتم استخدام اسم خدمة التطبيق كاسم المورد في Azure ولتشكيل اسم المجال المؤهل بالكامل لتطبيقك في شكل https://<app service name>.azurewebsites.com.
يحدد وقت التشغيل إصدار العقدة الذي يقوم تطبيقك بتشغيله. يستخدم هذا المثال العقدة 14 LTS. لسرد جميع أوقات التشغيل المتاحة، استخدم الأمر az webapp list-runtimes --os linux --output table لنظام التشغيل Linux ولل az webapp list-runtimes --os windows --output table Windows.
# Change 123 to any three characters to form a unique name across Azure
APP_SERVICE_NAME='msdocs-expressjs-mongodb-123'
az webapp create \
--name $APP_SERVICE_NAME \
--runtime 'NODE|14-lts' \
--plan $APP_SERVICE_PLAN_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--query 'defaultHostName' \
--output table
# Change 123 to any three characters to form a unique name across Azure
$appServiceName='msdocs-expressjs-mongodb-123'
az webapp create `
--name $appServiceName `
--runtime 'NODE:14-lts' `
--plan $appServicePlanName `
--resource-group $resourceGroupName `
--query 'defaultHostName' `
--output table
2 - إنشاء قاعدة بيانات Azure Cosmos في وضع توافق MongoDB
Azure Cosmos DB هي قاعدة بيانات NoSQL تدار بشكل كامل لتطوير التطبيقات الحديثة. من بين ميزاته واجهة برمجة تطبيقات متوافقة مع MongoDB بنسبة 100٪ تسمح لك باستخدام أدوات وحزم وتطبيقات MongoDB الحالية مع Cosmos DB.
يجب عليك تسجيل الدخول إلى مدخل Azure لإنهاء هذه الخطوات لإنشاء قاعدة بيانات Cosmos.
الإرشادات
لقطة شاشة
في مدخل Microsoft Azure:
في شريط البحث أعلى مدخل Azure، أدخل "Cosmos DB".
في القائمة التي تظهر أسفل شريط البحث، ضمن Services، حدد العنصر المسمى Azure Cosmos DB.
في صفحة قاعدة بيانات Azure Cosmos ، حدد + إنشاء
ستظهر صفحة تطلب منك تحديد خيار واجهة برمجة التطبيقات لقاعدة بيانات Cosmos DB. اختر Azure Cosmos DB API for MongoDB.
في الصفحة إنشاء حساب Azure Cosmos DB ، املأ النموذج كما يلي.
بالنسبة إلى مجموعة الموارد، اختر مجموعة الموارد نفسها من القائمة المنسدلة التي استخدمتها لتطبيق الويب الخاص بك في App Service (msdocs-expressjs-mongodb-quickstart). هذا منطقيا يجمع معا جميع المكونات اللازمة لهذا التطبيق معا في نفس مجموعة الموارد لتسهيل الاكتشاف والإدارة.
أدخل اسم حسابmsdocs-expressjs-mongodb-database-XYZ لاسم مثيل Azure CosmosDb حيث XYZ هو أي ثلاثة أحرف فريدة. يجب أن تكون أسماء حسابات قاعدة بيانات Cosmos فريدة عبر Azure. يجب أن يتراوح طول الاسم بين 3 و 44 حرفا وأن يحتوي فقط على أحرف صغيرة وأرقام ورمز الواصلة (-).
بالنسبة إلى الموقع، حدد نفس موقع Azure الذي استخدمته لتطبيق ويب خدمة التطبيق. من المهم استضافة التطبيق وقاعدة البيانات في نفس موقع Azure لتقليل زمن انتقال الشبكة بين المكونات المختلفة للحل.
إذا كان خصم الطبقة المجانية متاحا لحسابك، فيمكنك تطبيقه.
حدد مراجعة + إنشاء للانتقال إلى صفحة التأكيد، ثم حدد إنشاء لإنشاء قاعدة البيانات.
عادة ما يستغرق إنشاء Azure CosmosDB جديد حوالي 5 دقائق.
الإرشادات
لقطة شاشة
حدد موقع قسم قواعد البيانات وحدده في ملحق أدوات Azure ل VS Code. حدد علامة الجمع (+) لإنشاء قاعدة بيانات جديدة.
في الجزء العلوي من نافذة رمز VS ، سيظهر مربع حوار. حدد اشتراك Azure حيث سيتم إنشاء قاعدة البيانات. يجب أن يكون هذا هو نفس الاشتراك الذي استخدمته عند إنشاء خدمة التطبيق.
حدد Azure Cosmos DB لواجهة برمجة تطبيقات MongoDB كنوع قاعدة البيانات التي تريد إنشاؤها من مربع الحوار.
أدخل اسما لقاعدة البيانات في مربع الحوار. على سبيل المثال، قم بإعطاء قاعدة البيانات الخاصة بك اسما لمكان msdocs-expressjs-mongodb-XYZ XYZ أي ثلاثة أحرف عشوائية. يجب أن تكون أسماء حسابات قاعدة بيانات Cosmos فريدة عبر Azure ويجب أن يتراوح طول الاسم بين 3 و44 حرفا وأن يحتوي فقط على أحرف صغيرة وأرقام ورمز الواصلة (-).
حدد Throughouput المتوفر لمربع حوار الإنتاجية.
حدد مجموعة الموارد لإنشاء قاعدة بيانات Cosmos الخاصة بك. يجب أن تكون مجموعة الموارد هي نفسها "خدمة التطبيقات" كما هو معتاد لتجميع جميع موارد Azure اللازمة لتطبيق واحد معا في مجموعة موارد واحدة لتسهيل الإدارة.
حدد موقع المكان الذي سيتم فيه إنشاء قاعدة بيانات Cosmos الخاصة بك. يجب أن يكون هذا هو نفس موقع خدمة التطبيق الخاصة بك حيث تريد دائما تشغيل التطبيق وقاعدة البيانات في نفس الموقع.
يجب أن يكون اسم حساب Cosmos DB فريدا عبر Azure. يمكن أن يحتوي الاسم فقط على أحرف صغيرة وأرقام وحرف الواصلة (-) ويجب أن يتراوح طوله بين 3 و 50 حرفا.
--kind MongoDB تخبر العلامة Azure بإنشاء قاعدة بيانات Cosmos متوافقة مع واجهة برمجة تطبيقات MongoDB. يجب تضمين هذه العلامة حتى يعمل قاعدة بيانات Cosmos الخاصة بك كقاعدة بيانات MongoDB.
# Replace 123 with any three characters to form a unique name
COSMOS_DB_NAME='msdocs-expressjs-mongodb-database-123'
az cosmosdb create \
--name $COSMOS_DB_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--kind MongoDB
# Replace 123 with any three characters to form a unique name
$cosmosDbName='msdocs-expressjs-mongodb-database-123'
az cosmosdb create `
--name $cosmosDbName `
--resource-group $resourceGroupName `
--kind MongoDB
عادة ما يستغرق إنشاء قاعدة بيانات Azure Cosmos جديدة حوالي 5 دقائق.
3 - الاتصال خدمة التطبيق الخاصة بك إلى قاعدة بيانات Cosmos الخاصة بك
للاتصال بقاعدة بيانات Cosmos DB، تحتاج إلى توفير سلسلة الاتصال الخاصة بقاعدة البيانات بالتطبيق الخاص بك. يتم ذلك في تطبيق العينة عن طريق قراءة DATABASE_URL متغير البيئة. عند تشغيله محليا، يستخدم التطبيق النموذجي حزمة dotenv لقراءة قيمة سلسلة الاتصال من .env الملف.
عند التشغيل في Azure، يمكن تخزين قيم التكوين مثل سلاسل الاتصال في إعدادات التطبيق الخاصة بخدمة التطبيقات التي تستضيف تطبيق الويب. ثم يتم توفير هذه القيم للتطبيق الخاص بك كمتغيرات البيئة أثناء وقت التشغيل. وبهذه الطريقة، يستخدم التطبيق سلسلة الاتصال من process.env نفس الطريقة سواء تم تشغيلها محليا أو في Azure. علاوة على ذلك ، فإنه يلغي الحاجة إلى إدارة ونشر ملفات التكوين الخاصة بالبيئة مع التطبيق الخاص بك.
انتقل إلى حساب قاعدة بيانات Cosmos الخاص بك. إذا كنت قد أنشأت للتو حساب Cosmos DB الخاص بك ، فيمكنك تحديد الزر " الانتقال إلى المورد" ليتم نقله مباشرة إلى الحساب. أو يمكنك استخدام مربع البحث في الجزء العلوي من الشاشة للبحث عن قاعدة بيانات Cosmos DB والانتقال إليها.
في الصفحة الخاصة بقاعدة بيانات Cosmos، تأكد من تحديد عنصر البدء السريع في القائمة اليمنى. سترى مربع نص يسمى سلسلة الاتصال الأساسية. على الرغم من وجود علامات تبويب للغات مختلفة ، إلا أن سلسلة الاتصال هي نفسها بغض النظر عن اللغة.
انسخ قيمة سلسلة الاتصال إلى المخزن المؤقت للحافظة.
انتقل مرة أخرى إلى مثيل خدمة التطبيق لتعيين سلسلة الاتصال لتطبيق الويب الخاص بك.
في مربع البحث أعلى الشاشة، اكتب اسم خدمة التطبيق (msdocs-expressjs-mongodb-XYZ).
حدد خدمة التطبيق عند ظهورها ضمن قسم الموارد في مربع الحوار للانتقال إلى خدمة التطبيقات.
في صفحة خدمة التطبيقات:
حدد عنصر التكوين ضمن الإعدادات.
في قسم إعدادات التطبيق (وليس قسم سلاسل الاتصال)، حدد عنصر القائمة + إعداد تطبيق جديد لإضافة إعداد .
في مربع الحوار إضافة/تحرير إعداد التطبيق ، قم بتعيين اسم الإعداد إلى DATABASE_URL لمطابقة الاسم المستخدم في التعليمات البرمجية للتطبيق. ثم الصق قيمة سلسلة الاتصال لقاعدة البيانات الخاصة بك في حقل القيمة . حدد موافق لحفظ هذا الإعداد.
الإرشادات
لقطة شاشة
في قسم قواعد البيانات من ملحق أدوات Azure ل VS Code:
حدد موقع قاعدة البيانات للتطبيق الخاص بك وانقر بزر الماوس الأيمن فوق قاعدة البيانات الخاصة بك.
حدد نسخ سلسلة الاتصال من قائمة السياق لنسخ سلسلة الاتصال إلى الحافظة.
حدد موقع قسم خدمة التطبيقات في ملحق أدوات Azure ل VS Code.
ابحث عن التطبيق الخاص بك وحدد رمز علامة الإقحام (>) لتوسيع خصائص التطبيق.
انقر بزر الماوس الأيمن فوق عنصر الإعدادات التطبيق وحدد إضافة إعداد جديد ... من قائمة السياق.
أدخل اسم DATABASE_URL في مربع الحوار الذي يظهر أعلى نافذة محرر VS Code.
يجب أن يكون هذا الاسم هو نفسه اسم متغير البيئة المستخدم لقراءة الإعداد في التعليمات البرمجية.
أدخل القيمة (لصق من الحافظة) لسلسلة الاتصال في مربع الحوار التالي الذي يظهر.
يتم الآن حفظ إعداد التطبيق في Azure App Service.
لعرض هذا التطبيق أو أي إعدادات تطبيق أخرى للتطبيق، قم بتوسيع عقدة الإعدادات التطبيق أسفل التطبيق في ملحق Azure Tools وحدد أيقونة مقلة العين. يسمح لك النقر بزر الماوس الأيمن على أحد الإعدادات بتعديل إعداد أو حذفه.
للحصول على سلسلة الاتصال لقاعدة بيانات Cosmos DB، استخدم الأمر az cosmos keys list .
يتم استخدام الأمر az webapp config appsettings لتعيين قيم إعداد التطبيق لتطبيق ويب App Service. يتم تعيين زوج واحد أو أكثر من أزواج القيم الرئيسية باستخدام المعلمة --settings . لتعيين DATABASE_URL القيمة إلى سلسلة الاتصال لتطبيق الويب، استخدم الأمر التالي.
az webapp config appsettings set \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--settings DATABASE_URL=$COSMOS_DB_CONNECTION_STRING
az webapp config appsettings set `
--name $appServiceName `
--resource-group $resourceGroupName `
--settings DATABASE_URL=$cosmosDbConnectionString
4 - نشر التعليمات البرمجية للتطبيق إلى Azure
تدعم خدمة Azure App طرقا متعددة لنشر التعليمات البرمجية للتطبيق على Azure بما في ذلك دعم إجراءات GitHub وجميع أدوات CI/CD الرئيسية. تركز هذه المقالة على كيفية نشر التعليمات البرمجية من محطة العمل المحلية إلى Azure.
حدد موقع أيقونة Azure في شريط الأدوات الأيمن وحددها لإظهار ملحق Azure Tools for VS Code.
ابحث عن قسم خدمة التطبيقات في ملحق أدوات Azure ثم حدد موقع تطبيق الويب الخاص بك ضمن الاشتراك الصحيح. انقر بزر الماوس الأيمن فوق تطبيق الويب ثم حدد نشر إلى تطبيق الويب ... من القائمة.
سيظهر مربع حوار في أعلى النافذة لاختيار الدليل المراد النشر منه. اختر الدليل الجذر لمكان وجود التعليمات البرمجية المصدر للتطبيق الخاص بك.
سيطالبك مربع حوار بتشغيل أوامر الإنشاء على الخادم الهدف. ستؤدي الإجابة بنعم على هذا السؤال إلى تحسين الأداء لعمليات النشر المستقبلية.
سيظهر إشعار في الزاوية السفلية اليسرى من VS Code لإبلاغك بأن النشر جار. عند اكتمال النشر، سيتم استبدال هذا الإعلام بمربع حوار يسمح لك بالاستعراض إلى موقع ويب.
يمكنك نشر التعليمات البرمجية للتطبيق من مستودع Git محلي إلى Azure عن طريق تكوين جهاز تحكم عن بعد Git في الريبو المحلي الخاص بك مشيرا إلى Azure لدفع التعليمات البرمجية إلى. يمكن استرداد عنوان URL للمستودع البعيد وبيانات اعتماد Git اللازمة للتكوين باستخدام مدخل Azure أو Azure CLI.
ستظهر خدمة التطبيق تحت عنوان الموارد . حدد خدمة التطبيق للانتقال إليها.
في صفحة خدمة التطبيقات:
حدد مركز النشر من القائمة الموجودة على الجانب الأيمن من الشاشة.
في القائمة المنسدلة المسماة مصدر، حدد بوابة محلية.
حدد Save من شريط القوائم العلوي.
بعد الحفظ ، سيتم تحديث الصفحة وعرض عنوان مستودع Git البعيد.
انسخ قيمة Git Clone Uri حيث سيتم استخدام هذه القيمة لإعداد جهاز تحكم عن بعد Git في خطوة لاحقة.
في صفحة "مركز النشر"
انتقل إلى علامة التبويب بيانات اعتماد Git/FTPS المحلية .
حدد موقع اسم المستخدم وكلمة المرور ضمن بيانات اعتماد نطاق التطبيق .
أبق هذه الشاشة مفتوحة حتى تتمكن من استخدام بيانات الاعتماد هذه للحظات عند نشر التعليمات البرمجية الخاصة بك إلى المستودع البعيد.
عند دفع التعليمات البرمجية إلى مستودع Git البعيد لأول مرة، تكون هناك حاجة إلى بيانات الاعتماد هذه للمصادقة إلى المستودع البعيد.
أولا، قم بتكوين مصدر النشر لتطبيق الويب الخاص بك ليكون Git محليا باستخدام أمر نشر az webapp .
استرداد بيانات اعتماد النشر للتطبيق الخاص بك. ستكون هناك حاجة إلى هذه الأشياء حتى تتمكن Git من المصادقة على Azure عند دفع التعليمات البرمجية إلى Azure في خطوة لاحقة.
بعد ذلك، دعنا نضيف أصل Azure إلى ريبو Git المحلي باستخدام عنوان URL لنشر App Service Git من الخطوة التي أنشأنا فيها خدمة التطبيقات. تأكد من استبدال اسم تطبيقك في عنوان URL أدناه. يمكنك أيضا الحصول على عنوان URL المكتمل هذا من علامة التبويب بيانات اعتماد Git/FTPS المحلية لمدخل Azure.
يمكنك الآن دفع التعليمات البرمجية من مستودع Git المحلي إلى Azure باستخدام جهاز تحكم Git عن بعد الذي قمت بتكوينه للتو.
## Master is the default deployment branch for App Service - this will ensure our local main branch works for the deployment
git push azure main:master
في المرة الأولى التي تدفع فيها التعليمات البرمجية إلى Azure، سيطالبك Git ببيانات اعتماد نشر Azure التي حصلت عليها في خطوة سابقة. سيقوم Git بعد ذلك بتخزين بيانات الاعتماد هذه مؤقتا حتى لا تضطر إلى إعادة إدخالها في عمليات النشر اللاحقة.
يمكن نشر التطبيقات إلى Azure عن طريق إنشاء ملف ZIP لأدوات التطبيق وتحميل ملف ZIP إلى Azure. يمكن تحميل ملفات ZIP إلى Azure باستخدام Azure CLI أو عميل HTTP مثل Postman أو cURL.
هناك طريقتان لنشر ملف ZIP إلى Azure:
نشر ملف ZIP يحتوي على كافة القطع الأثرية (مثل node_modules) اللازمة للتطبيق.
نشر ملف ZIP يحتوي فقط على التعليمات البرمجية المصدر للتطبيق والاستفادة من أتمتة إنشاء Azure.
في هذا البرنامج التعليمي، ستقوم بتمكين أتمتة الإنشاء في Azure App Service. من خلال تمكين أتمتة الإنشاء ، ستقوم App Service بتشغيل مهام إنشاء مثل npm لك بحيث تحتاج فقط إلى تضمين شفرة مصدر التطبيق في ملفك المضغوط.
تمكين أتمتة الإنشاء
لتمكين أتمتة الإنشاء، قم بتعيين SCM_DO_BUILD_DURING_DEPLOYMENT إعداد التطبيق إما في مدخل Azure أو Azure CLI.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'
APP_SERVICE_NAME='msdocs-expressjs-mongodb-123'
az webapp config appsettings set \
--resource-group $RESOURCE_GROUP_NAME \
--name $APP_SERVICE_NAME \
--settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
# Change these values to the ones used to create the App Service.
$resourceGroupName='msdocs-expressjs-mongodb-tutorial'
$appServiceName='msdocs-expressjs-mongodb-123'
az webapp config appsettings set `
--resource-group $resourceGroupName `
--name $appServiceName `
--settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
إنشاء ملف ZIP من التطبيق الخاص بك
إنشاء ملف ZIP من التطبيق الخاص بك. تحتاج فقط إلى تضمين التعليمات البرمجية المصدر للتطبيق ويجب ألا تتضمن أي ملفات أو أدلة تبدأ بنقطة (.) مثل .env، .gitignore، ، .githubأو .vscode. يجب عليك أيضا عدم تضمين node_modules الدليل نظرا لأنك قمت بتمكين أتمتة الإنشاء في الخطوة الأخيرة.
# Change these values to the ones used to create the App Service.
RESOURCE_GROUP_NAME='msdocs-python-webapp-quickstart'
APP_SERVICE_NAME='msdocs-python-webapp-quickstart-123'
az webapp deploy \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--src-path <zip-file-path>
# Change these values to the ones used to create the App Service.
$resourceGroupName='msdocs-python-webapp-quickstart'
$appServiceName='msdocs-python-webapp-quickstart-123'
az webapp deploy `
--name $appServiceName `
--resource-group $resourceGroupName `
--src-path <zip-file-path>
لاستخدام ساعي البريد لتحميل ملف ZIP إلى Azure، ستحتاج إلى اسم مستخدم النشر وكلمة المرور لخدمة التطبيق الخاصة بك. يمكن الحصول على بيانات الاعتماد هذه من مدخل Azure.
في صفحة تطبيق الويب، حدد مركز النشر من القائمة الموجودة على الجانب الأيمن من الصفحة.
حدد علامة التبويب بيانات اعتماد FTPS .
يتم عرض اسم المستخدموكلمة المرور تحت عنوان نطاق التطبيق . لعمليات نشر الملفات المضغوطة، استخدم فقط جزء اسم المستخدم بعد الحرف الذي \ يبدأ ب $، على سبيل المثال $msdocs-python-webapp-quickstart-123. ستكون هناك حاجة إلى بيانات الاعتماد هذه عند تحميل ملفك المضغوط باستخدام ساعي البريد.
في ساعي البريد، قم بتحميل ملفك باستخدام الخطوات التالية.
الإرشادات
لقطة شاشة
انقر على أيقونة علامة الجمع (+) لإنشاء طلب جديد.
حدد POST لنوع الطلب.
أدخل عنوان URL https://\<app-name\>.scm.azurewebsites.net/api/zipdeploy حيث <يكون اسم التطبيق هو اسم> تطبيق الويب. عنوان URL هذا هو نقطة النهاية المستخدمة لنشر ملف ZIP إلى خدمة Azure الخاصة بك.
في علامة التبويب "تفويض ":
اضبط النوع إلى أساسي.
أدخل اسم مستخدم النشر وكلمة المرور اللذين تم الحصول عليهما من مدخل Azure أعلاه. تأكد من استخدام جزء اسم المستخدم فقط بعد الحرف الذي \ يبدأ ب $.
في علامة التبويب النص الأساسي :
حدد ثنائي كنوع المحتوى.
حدد الزر تحديد ملف لتحديد الملف المضغوط.
سيتم عرض اسم الملف المراد تحميله في قسم النص.
حدد الزر إرسال لتحميل الملف المضغوط إلى Azure.
استنادا إلى النطاق الترددي للشبكة، تستغرق الملفات عادة ما بين 10 و30 ثانية لتحميلها إلى Azure.
استنادا إلى النطاق الترددي للشبكة، تستغرق الملفات عادة ما بين 10 و30 ثانية لتحميلها إلى Azure.
لاستخدام cURL لتحميل ملف ZIP إلى Azure، ستحتاج إلى اسم مستخدم النشر وكلمة المرور لخدمة التطبيق. يمكن الحصول على بيانات الاعتماد هذه من مدخل Azure.
في صفحة تطبيق الويب، حدد مركز النشر من القائمة الموجودة على الجانب الأيمن من الصفحة.
حدد علامة التبويب بيانات اعتماد FTPS .
يتم عرض اسم المستخدموكلمة المرور تحت عنوان نطاق التطبيق . لعمليات نشر الملفات المضغوطة، استخدم فقط جزء اسم المستخدم بعد الحرف الذي \ يبدأ ب $، على سبيل المثال $msdocs-python-webapp-quickstart-123. ستكون هناك حاجة إلى بيانات الاعتماد هذه في الأمر cURL.
قم بتشغيل الأمر التالي curl لتحميل الملف المضغوط إلى Azure ونشر التطبيق الخاص بك.
استنادا إلى النطاق الترددي للشبكة، تستغرق الملفات عادة ما بين 10 و30 ثانية لتحميلها إلى Azure.
5 - تصفح التطبيق
سيكون للتطبيق عنوان URL للنموذج https://<app name>.azurewebsites.net. استعرض للوصول إلى عنوان URL هذا لعرض التطبيق.
استخدم عناصر النموذج في التطبيق لإضافة المهام وإكمالها.
6 - تكوين وعرض سجلات التطبيق
تلتقط Azure App Service جميع الرسائل المسجلة إلى وحدة التحكم لمساعدتك في تشخيص المشكلات المتعلقة بتطبيقك. يقوم نموذج التطبيق بإخراج رسائل سجل وحدة التحكم في كل نقطة من نقاط النهاية الخاصة به لإظهار هذه القدرة. على سبيل المثال، get تقوم نقطة النهاية بإخراج رسالة حول عدد المهام التي تم استردادها من قاعدة البيانات وتظهر رسالة خطأ إذا حدث خطأ ما.
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
az webapp log tail `
--name $appServiceName `
--resource-group $resourceGroupName
قم بتحديث الصفحة الرئيسية في التطبيق أو حاول تقديم طلبات أخرى لإنشاء بعض رسائل السجل. يجب أن يبدو الإخراج مشابهًا لما يلي.
2021-10-26T20:12:01.825485319Z npm start
2021-10-26T20:12:04.478474807Z npm info it worked if it ends with ok
2021-10-26T20:12:04.496736134Z npm info using npm@6.14.10
2021-10-26T20:12:04.497958909Z npm info using node@v14.15.1
2021-10-26T20:12:05.874225522Z npm info lifecycle todolist@0.0.0~prestart: todolist@0.0.0
2021-10-26T20:12:05.891572192Z npm info lifecycle todolist@0.0.0~start: todolist@0.0.0
2021-10-26T20:12:05.941127150Z
2021-10-26T20:12:05.941161452Z > todolist@0.0.0 start /home/site/wwwroot
2021-10-26T20:12:05.941168852Z > node ./bin/www
2021-10-26T20:12:05.941173652Z
2021-10-26T20:12:16.234642191Z Mongoose connection open to database
2021-10-26T20:12:19.360371481Z GET /robots933456.txt 404 2144.146 ms - 1497
2021-10-26T20:12:38.419182028Z Total tasks: 6 Current tasks: 3 Completed tasks: 3
2021-10-26T20:12:38.799957538Z GET / 304 500.485 ms - -
2021-10-26T20:12:38.900597945Z GET /stylesheets/style.css 304 2.574 ms - -
2021-10-26T20:12:38.900637447Z GET /css/bootstrap.css 304 12.300 ms - -
2021-10-26T20:12:38.903103684Z GET /images/Azure-A-48px-product.svg 304 8.896 ms - -
2021-10-26T20:12:38.904441659Z GET /js/bootstrap.min.js 304 9.372 ms - -
7 - فحص الملفات المنشورة باستخدام كودو
توفر Azure App Service وحدة تحكم تشخيصية مستندة إلى الويب تسمى Kudu تتيح لك فحص بيئة استضافة الخادم لتطبيق الويب الخاص بك. باستخدام Kudu ، يمكنك عرض الملفات التي تم نشرها على Azure ، ومراجعة محفوظات نشر التطبيق ، وحتى فتح جلسة SSH في بيئة الاستضافة.
للوصول إلى Kudu، انتقل إلى أحد عناوين URL التالية. ستحتاج إلى تسجيل الدخول إلى موقع Kudu باستخدام بيانات اعتماد Azure الخاصة بك.
بالنسبة للتطبيقات التي يتم نشرها في خطط خدمة التطبيقات المجانية والمشتركة والأساسية والقياسية Premium - https://<app-name>.scm.azurewebsites.net.
بالنسبة للتطبيقات التي تم نشرها في خطط الخدمة المعزولة - https://<app-name>.scm.<ase-name>.p.azurewebsites.net.
من الصفحة الرئيسية في Kudu ، يمكنك الوصول إلى معلومات حول بيئة استضافة التطبيقات وإعدادات التطبيق وعمليات النشر وتصفح الملفات في دليل wwwroot.
سيؤدي تحديد رابط عمليات النشر أسفل رأس واجهة برمجة تطبيقات REST إلى عرض محفوظات عمليات نشر تطبيق الويب الخاص بك.
يتيح لك تحديد الارتباط wwwroot للموقع ضمن عنوان استعراض الدليل استعراض الملفات وعرضها على خادم الويب.
تنظيف الموارد
عند الانتهاء، يمكنك حذف كافة الموارد من Azure عن طريق حذف مجموعة الموارد للتطبيق.
RESOURCE_GROUP_NAME='msdocs-expressjs-mongodb-tutorial'
# Removing a resource group will delete all Azure resources inside the resource group!
az group delete \
--name $RESOURCE_GROUP_NAME
$resourceGroupName='msdocs-expressjs-mongodb-tutorial'
# Removing a resource group will delete all Azure resources inside the resource group!
az group delete `
--name $resourceGroupName