إنشاء تطبيق Node.js وتوزيعه في Azure Cloud Service (الكلاسيكية)

هام

تم الآن إهمال الخدمات السحابية (الكلاسيكية) لجميع العملاء اعتبارا من 1 سبتمبر 2024. سيتم إيقاف أي عمليات نشر قيد التشغيل الحالية وإيقاف تشغيلها بواسطة Microsoft وسيتم فقدان البيانات بشكل دائم بدءا من أكتوبر 2024. ينبغي أن تستخدم عمليات النشر الجديدة نموذج النشر الجديد القائم على Azure Resource Manager ‏‏Azure Cloud Services (الدعم الموسع).

يوضح هذا البرنامج التعليمي كيفية إنشاء تطبيق Node.js يعمل في Azure Cloud Service. الخدمات السحابية هي اللبنات الأساسية للتطبيقات السحابية القابلة للتطوير في Azure. إنها تسمح بالفصل والإدارة المستقلة والتحجيم التدريجي من المكونات الأمامية والخلفية من التطبيق الخاص بك. توفر الخدمات السحابية جهازاً افتراضياً قوياً مخصصاً لاستضافة كل دور بشكل موثوق.

تلميح

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

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

التطبيق هو تطبيق "hello world":

مستعرض ويب يعرض صفحة الويب Hello World

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

إشعار

يستخدم هذا البرنامج التعليمي Azure PowerShell، الأمر الذي يتطلب Windows.

  • تثبيت وتكوين Azure PowerShell.
  • اشرع في تنزيل [Azure SDK for .NET 2.7] وتثبيته. في إعداد التثبيت، حدد:
    • MicrosoftAzureAuthoringTools
    • MicrosoftAzureComputeEmulator

أنشئ مشروع الخدمة السحابية Azure

نفذ المهام التالية لإنشاء مشروع خدمة سحابية Azure جديد، إلى جانب التدعيم الأساسي لـ Node.js:

  1. تشغيل Windows PowerShell كمسؤول؛ من "قائمة البدء" أو "شاشة البدء"، ابحث عن Windows PowerShell.

  2. الاتصال بـ PowerShell في اشتراكك.

  3. أدخل PowerShell cmdlet التالي لإنشاء المشروع:

    New-AzureServiceProject helloworld
    

    نتيجة الأمر helloworld New-AzureService

    يُنشئ cmdlet New-AzureServiceProject بنية أساسية لنشر تطبيق Node.js إلى الخدمة السحابية. يحتوي على ملفات التكوين الضرورية للنشر إلى Azure. cmdlet أيضاً تغير دليل العمل إلى دليل الخدمة.

    يُنشئ cmdlet الملفات التالية:

    • ServiceConfiguration.Cloud.cscfg, ServiceConfiguration.Local.cscfg وServiceDefinition.csdef: ملفات Azure الخاصة اللازمة لنشر تطبيقك. لمزيد من المعلومات، راجع نظرة عامة حول إنشاء خدمة مستضافة لـ Azure.
    • deploymentSettings.json: يخزن الإعدادات المحلية التي يتم استخدامها من قبل cmdlets توزيع PowerShell Azure.
  4. أدخل الأمر التالي لإضافة دور ويب جديد:

    Add-AzureNodeWebRole
    

    مخرج أمر Add-AzureNodeWebRole

    ينشئ cmdlet Add-AzureNodeWebRole تطبيق Node.js أساسي. كما أنه يعدل ملفات .csfgو.csdef لإضافة إدخالات التكوين للدور الجديد.

    إشعار

    إذا لم تقم بتحديد اسم دور، يتم استخدام اسم افتراضي. يمكنك توفير اسم كمعلمة cmdlet الأولى: Add-AzureNodeWebRole MyRole

يتم تعريف التطبيق Node.js في الملف server.js، الموجود في الدليل لدور الويب(WebRole1 افتراضياً). وهنا التعليمة البرمجية:

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

هذه التعليمة البرمجية هي في الأساس نفس نموذج "Hello World" على موقع nodejs.org، باستثناء أنه يستخدم رقم المنفذ المعين من قبل البيئة السحابية.

نشر التطبيق على Azure

إشعار

لإكمال هذا البرنامج التعليمي، تحتاج إلى حساب Azure. يمكن تنشيط مزايا مشترك MSDN أو التسجيل للحصول على حساب مجاني.

تنزيل إعدادات نشر Azure

لنشر تطبيقك إلى Azure، يجب أولاً تنزيل إعدادات النشر لاشتراك Azure.

  1. شغل cmdlet PowerShell التالي:

    Get-AzurePublishSettingsFile
    

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

    احفظ ملف التعريف الذي تم تنزيله إلى موقع ملف يمكنك الوصول إليه بسهولة.

  2. تشغيل cmdlet التالي لاستيراد ملف تعريف النشر الذي قمت بتنزيله:

    Import-AzurePublishSettingsFile [path to file]
    

    إشعار

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

نشر التطبيق

للنشر، قم بتشغيل الأوامر التالية:

$ServiceName = "NodeHelloWorld" + $(Get-Date -Format ('ddhhmm'))
Publish-AzureServiceProject -ServiceName $ServiceName  -Location "East US" -Launch
  • -ServiceName تحديد اسم التوزيع. يجب أن تكون هذه القيمة اسما فريدا؛ وإلا، تفشل عملية النشر. الأمر Get-Date يعتمد على سلسلة التاريخ/الوقت التي يجب أن تجعل الاسم فريداً.
  • -يحدد الموقع مركز البيانات الذي يستضيف التطبيق. لمشاهدة قائمة مراكز البيانات المتوفرة، استخدم cmdlet Get-AzureLocation.
  • -يفتح Launch نافذة مستعرض وينتقل إلى الخدمة المستضافة بعد اكتمال النشر.

بعد نجاح النشر، سترى استجابة مشابهة للقطة الشاشة:

إخراج أمر Publish-AzureService

إشعار

قد يستغرق التطبيق عدة دقائق للتوزيع ويصبح متوفراً عند نشره لأول مرة.

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

تعرض نافذة المستعرض صفحة hello world؛ يشير عنوان URL إلى أن الصفحة مستضافة على Azure.

التطبيق الخاص بك قيد التشغيل الآن على Azure.

يؤدي cmdletPublish-AzureServiceProject الخطوات التالية:

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

إيقاف التطبيق وحذفه

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

  1. في إطار Windows PowerShell، أوقف نشر الخدمة التي تم إنشاؤها في المقطع السابق مع cmdlet التالية:

    Stop-AzureService
    

    قد يستغرق إيقاف الخدمة عدة دقائق. عند إيقاف الخدمة، تتلقى رسالة تشير إلى أنها توقفت.

    حالة الأمر Stop-AzureService

  2. لحذف الخدمة، استدعي cmdlet التالية:

    Remove-AzureService
    

    عند مطالبتك، أدخل Y لحذف الخدمة.

    قد يستغرق حذف الخدمة عدة دقائق. بعد حذف الخدمة، تتلقى رسالة تشير إلى أنه تم حذف الخدمة.

    حالة الأمر Remove-AzureService

    إشعار

    حذف الخدمة لا يؤدي إلى حذف حساب التخزين الذي تم إنشاؤه عند نشر الخدمة في البداية، وسوف تستمر محاسبتك نظير التخزين المستَخدم. إذا كان أي شيء آخر يستخدم التخزين، قد تحتاج إلى حذفه.

الخطوات التالية

لمزيد من المعلومات، راجع Node.js Developer Center.