مشاركة عبر


برنامج تعليمي: إنشاء الوصول إلى موقع خاص في Azure Functions

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

تُعد خاصية الوصول إلى موقع خاص مفيدة في السيناريوهات عندما يكون هناك حاجة إلى أن يقتصر الوصول إلى تطبيق الوظائف على شبكة ظاهرية معينة. فعلى سبيل المثال، قد يكون تطبيق الوظائف قابلاً للتطبيق على موظفي مؤسسة معينة فقط، أو على الخدمات الموجودة داخل الشبكة الظاهرية المعينة (مثل Azure Function أخرى، أو Azure Virtual Machine، أو مجموعة AKS).

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

يمكنك في هذا البرنامج التعليمي معرفة كيفية تكوين الوصول إلى موقع خاص لتطبيق الوظائف:

  • إنشاء جهاز ظاهري
  • إنشاء خدمة Azure Bastion
  • إنشاء تطبيق Azure Functions
  • تكوين نقطة نهاية خدمة الشبكة الظاهرية
  • إنشاء Azure Function وتوزيعه
  • استدعاء الوظائف من خارج الشبكة الظاهرية وداخلها

في حال لم يكن لديك اشتراك في Azure، يُمكنك إنشاء حساب مجاني قبل البدء.

Topology

يوضح الرسم التخطيطي التالي تصميم الحل الذي سيجري إنشاؤه:

رسم تخطيطي عالي المستوى لتصميم حل الوصول إلى الموقع الخاص

Prerequisites

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

تسجيل الدخول إلى مدخل Microsoft Azure

سجل الدخول إلى مدخل Azure.

إنشاء جهاز ظاهري

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

  1. حدد الزر Create a resource.

  2. في حقل البحث، اكتب Windows Server، وحدد Windows Server في نتائج البحث.

  3. حدد Windows Server 2019 Datacenter من قائمة خيارات Windows Server، واضغط على الزر إنشاء .

  4. في علامة التبويب الأساسيات ، استخدم إعدادات الجهاز الظاهري كما هو محدد في الجدول أسفل الصورة:

    علامة التبويب

    Setting القيمة المقترحة Description
    Subscription اشتراكك الاشتراك الذي يجري إنشاء الموارد بناءً عليه.
    مجموعة الموارد myResourceGroup اختر مجموعة الموارد لتحتوي على كافة الموارد لهذا البرنامج التعليمي. كما أن استخدام نفس مجموعة الموارد يجعل من السهل تنظيف الموارد عند الانتهاء من هذا البرنامج التعليمي.
    اسم الجهاز الظاهري myVM يلزم أن يكون اسم الجهاز الظاهري فريدًا في مجموعة الموارد
    Region (الولايات المتحدة) وسط شمال الولايات المتحدة اختر منطقة قريبة منك، أو بالقرب من الوظائف التي يلزم الوصول إليها.
    المنافذ الواردة العامة None حدد لا شيء للتأكد من عدم وجود اتصال وارد بالجهاز الظاهري من الإنترنت. وسيجري تكوين الوصول عن بُعد إلى الجهاز الظاهري عبر خدمة Azure Bastion.
  5. اختر علامة التبويب الشبكات وحدد إنشاء جديد لتكوين شبكة ظاهرية جديدة.

    لقطة شاشة تعرض علامة التبويب

  6. في إنشاء شبكة ظاهرية، استخدم الإعدادات الموجودة في الجدول أسفل الصورة:

    قم بإنشاء شبكة افتراضية جديدة لجهاز VM الجديد

    Setting القيمة المقترحة Description
    Name myResourceGroup-vnet يمكنك استخدام الاسم الافتراضي الذي جرى إنشاؤه للشبكة الظاهرية.
    نطاق العنوان 10.10.0.0/16 استخدم نطاق عنوان أحادي للشبكة الظاهرية.
    اسم الشبكة الفرعية Tutorial اسم الشبكة الفرعية.
    نطاق العناوين (الشبكة الفرعية) 10.10.1.0/24 يحدد حجم الشبكة الفرعية عدد الواجهات التي يمكن إضافتها إلى الشبكة الفرعية. ويستخدم الجهاز الظاهري تلك الشبكة الفرعية. وتوفر الشبكة الفرعية /24 عناوين لعدد 254 مضيف.
  7. حدد موافق لإنشاء الشبكة الظاهرية.

  8. مرة أخرى في علامة التبويب الشبكات ، تأكد من تحديد لا شيءلعنوان IP العام.

  9. اختر علامة التبويب إدارة ، ثم في حساب التخزين التشخيصي، اختر إنشاء جديد لإنشاء حساب تخزين جديد.

  10. اترك القيم الافتراضية لأقسام الهويةوإيقاف التشغيل التلقائيوالنسخ الاحتياطي .

  11. حدد "Review + create". وبعد اكتمال عملية التحقق، حدد Create. وتستغرق عملية إنشاء الجهاز الظاهري بضع دقائق.

تكوين Azure Bastion

Azure Bastion هي خدمة Azure مدارة بالكامل توفر وصولا آمنا إلى RDP وSSH إلى الأجهزة الظاهرية مباشرة من مدخل Microsoft Azure. ويؤدي استخدام خدمة Azure Bastion إلى انتفاء الحاجة إلى تكوين إعدادات الشبكة المتعلقة بالوصول إلى RDP.

  1. في المدخل، اختر إضافة في الجزء العلوي من طريقة عرض مجموعة الموارد.

  2. في حقل البحث، اكتب Bastion.

  3. حدد Bastion في نتائج البحث.

  4. حدد إنشاء لبدء عملية إنشاء مورد Azure Bastion جديد. ستلاحظ رسالة خطأ في قسم الشبكة الظاهرية حيث لا توجد شبكة فرعية AzureBastionSubnet بعد. ويجري إنشاء الشبكة الفرعية باتباع الخطوات التالية. استخدم الإعدادات الموجودة في الجدول أسفل الصورة:

    بدء إنشاء Azure Bastion

    Setting القيمة المقترحة Description
    Name myBastion اسم مورد Bastion الجديد
    Region وسط شمال الولايات المتحدة اختر منطقة قريبة منك أو بالقرب من الخدمات الأخرى التي تصل إليها وظائفك.
    الشبكة الظاهرية myResourceGroup-vnet الشبكة الظاهرية التي سيجري إنشاء مورد Bastion فيها
    Subnet AzureBastionSubnet الشبكة الفرعية في شبكتك الظاهرية التي سيجري توزيع مورد المضيف Bastion الجديد عليها. يجب عليك إنشاء شبكة فرعية باستخدام قيمة الاسم AzureBastionSubnet. وتسمح تلك القيمة إلى Azure بمعرفة الشبكة الفرعية لتوزيع موارد Bastion عليها. يجب عليك استخدام شبكة فرعية لا تقل عن /27 أو أكبر (/27 و/26 وما إلى ذلك).

    Note

    للحصول على دليل مفصل خطوة بخطوة لإنشاء مورد Azure Bastion، راجع البرنامج التعليمي إنشاء مضيف Azure Bastion.

  5. أنشئ شبكة فرعية يمكن من خلالها لـ Azure توفير مضيف Azure Bastion. يؤدي اختيار إدارة تكوين الشبكة الفرعية إلى فتح جزء جديد حيث يمكنك تعريف شبكة فرعية جديدة. اختر + شبكة فرعية لإنشاء شبكة فرعية جديدة.

  6. يجب أن تكون الشبكة الفرعية باسم AzureBastionSubnet ويجب أن تكون بادئة الشبكة الفرعية /27 على الأقل. حدد موافق لإنشاء الشبكة الفرعية.

    إنشاء شبكة فرعية لمضيف Azure Bastion

  7. في صفحة Create a Bastion، حدد AzureBastionSubnet التي تم إنشاؤها حديثا من قائمة الشبكات الفرعية المتوفرة.

    قم بإنشاء مضيف Azure Bastion بشبكة فرعية محددة

  8. حدد Review & Create. بمجرد اكتمال التحقق من الصحة، حدد إنشاء. ويستغرق إنشاء موارد Azure Bastion بضع دقائق.

إنشاء تطبيق Azure Functions

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

  1. في المدخل، اختر إضافة في الجزء العلوي من طريقة عرض مجموعة الموارد.

  2. حدد تطبيق> وظيفة الحساب

  3. في قسم الأساسيات ، استخدم إعدادات تطبيق الوظائف كما هو محدد في الجدول أدناه.

    Setting القيمة المقترحة Description
    مجموعة الموارد myResourceGroup اختر مجموعة الموارد لتحتوي على كافة الموارد لهذا البرنامج التعليمي. كما أن استخدام نفس مجموعة الموارد لتطبيق الوظائف والجهاز الظاهري يجعل من السهل تنظيف الموارد عند الانتهاء من هذا البرنامج التعليمي.
    اسم تطبيق الوظائف اسم فريد عالميًا الاسم الذي يحدد تطبيق الوظائف الجديد. والأحرف الصالحة هي a-z (غير حساسة لحالة الأحرف) و0-9 و-.
    Publish Code خيار نشر ملفات الرمز البرمجية أو حاوية «Docker».
    مكدس وقت التشغيل اللغة المفضلة اختر وقت تشغيل يدعم لغة برمجة الوظائف المفضلة لك.
    Region وسط شمال الولايات المتحدة اختر منطقة قريبة منك أو بالقرب من الخدمات الأخرى التي تصل إليها وظائفك.

    حدد التالي: زر Hosting >.

  4. بالنسبة لقسم الاستضافة ، حدد حساب التخزينونظام التشغيلوالخطة المناسبة كما هو موضح في الجدول التالي.

    Setting القيمة المقترحة Description
    حساب التخزين اسم فريد عالميًا أنشئ حساب تخزين يستخدمه تطبيق الوظائف لديك. يجب أن تكون أسماء حسابات التخزين بين 3 أحرف و24 حرفًا في الطول وقد تحتوي على أرقام وأحرف صغيرة فقط. كما يمكنك استخدام حساب موجود، والذي ينبغي أن يفي بمتطلبات حساب التخزين.
    نظام التشغيل نظام التشغيل المفضل يُحدد نظام التشغيل لك مسبقًا بالاستناد إلى تحديد مكدس وقت التشغيل، غير أنه يمكنك تغيير الإعداد إذا لزم الأمر.
    Plan Consumption تحدد خطة الاستضافة كيفية توسيع نطاق تطبيق الوظائف والموارد المتاحة لكل مثيل.
  5. حدد Review + Create لمراجعة تحديدات تكوين التطبيق.

  6. حدد إنشاء لتوفير تطبيق الوظائف ونشره.

تكوين قيود الوصول

الخطوة التالية هي تكوين قيود الوصول لضمان أن الموارد الموجودة على الشبكة الظاهرية فقط يمكنها استدعاء الوظيفة.

يتم تمكين الوصول إلى الموقع الخاص عن طريق إنشاء نقطة نهاية خدمة شبكة Azure الظاهرية بين تطبيق الوظائف والشبكة الظاهرية المحددة. وتُطَبَّق قيود الوصول عبر نقاط نهاية الخدمة. وتضمن نقاط نهاية الخدمة إمكانية وصول نسبة استخدام الشبكة التي تنشأ من داخل الشبكة الظاهرية المعينة وحدها إلى المورد المعين. وفي هذه الحالة، يكون المورد المعين هو Azure Function.

  1. داخل تطبيق الوظائف، حدد ارتباط الشبكة ضمن رأس قسم الإعدادات .

  2. صفحة الشبكات هي نقطة البداية لتكوين Azure Front Door وAzure CDN وكذلك قيود الوصول.

  3. حدد تكوين قيود الوصول لتكوين الوصول إلى الموقع الخاص.

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

  5. في جزء إضافة تقييد الوصول، قم بتوفير الاسم والأولوية والوصف للقاعدة الجديدة.

  6. حدد الشبكة الظاهرية من المربع المنسدل النوع ، ثم حدد الشبكة الظاهرية التي تم إنشاؤها مسبقا، ثم حدد الشبكة الفرعية البرنامج التعليمي .

    Note

    قد يستغرق تمكين نقطة نهاية الخدمة عدة دقائق.

  7. تظهر صفحة قيود الوصول الآن وجود قيود جديدة. قد يستغرق الأمر بضع ثوان حتى تتغير حالة نقطة النهاية من معطل من خلال التوفير إلى ممكن.

    Important

    يحتوي كل تطبيق وظائف على موقع أداة متقدمة (Kudu) يستخدم لإدارة عمليات نشر تطبيق الوظائف. يتم الوصول إلى هذا الموقع من عنوان URL مثل: <FUNCTION_APP_NAME>.scm.azurewebsites.net. إن تمكين قيود الوصول على موقع Kudu يمنع توزيع التعليمات البرمجية للمشروع من محطة عمل مطور محلية، ومن ثم يلزم توفير عامل داخل الشبكة الظاهرية لتنفيذ التوزيع.

الوصول إلى تطبيق الوظائف

  1. يلزم العودة إلى تطبيق الوظائف الذي جرى إنشاؤه مسبقًا. في قسم نظرة عامة ، انسخ عنوان URL.

    احصل على عنوان URL لتطبيق الوظيفة

    إذا حاولت الوصول إلى تطبيق الوظائف الآن من جهاز الكمبيوتر خارج الشبكة الظاهرية، فستتلقى صفحة HTTP 403 تشير إلى حظر الوصول.

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

  3. حدد اتصال ، ثم اختر Bastion.

  4. يلزم توفير اسم المستخدم وكلمة المرور اللازمة لتسجيل الدخول إلى الجهاز الظاهري.

    Note

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

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

إنشاء وظيفة

الخطوة التالية في هذا البرنامج التعليمي تتمثل في إنشاء Azure Function التي جرى تشغيلها بمعرفة HTTP. ويمكن أن يؤدي استدعاء الوظيفة عبر HTTP GET، أو POST إلى ظهور الرد التالي: "Hello, {name}".

  1. اتبع أحد قوالب التشغيل السريع التالية لإنشاء تطبيقAzure Functions وتوزيعه.

  2. عند نشر مشروع Azure Functions، اختر مورد تطبيق الوظائف الذي أنشأته سابقًا في هذا البرنامج التعليمي.

  3. تحقق من توزيع الوظيفة.

    نشر وظيفة في قائمة الوظائف

استدعاء الوظيفة مباشرةً

  1. لتتمكن من اختبار الوصول إلى الوظيفة، فأنت بحاجة إلى نسخ عنوان URL الخاص بالوظيفة. حدد الدالة المنشورة، ثم حدد Get Function Url. ثم انقر فوق نسخ زر لنسخ عنوان URL إلى الحافظة الخاصة بك.

    انسخ عنوان URL الخاص بالوظيفة

  2. الصق عنوان URL في مستعرض ويب. وإذا حاولت الوصول إلى تطبيق الوظائف الآن من جهاز كمبيوتر خارج الشبكة الظاهرية، فستتلقى رد HTTP 403 يشير إلى حظر الوصول إلى التطبيق.

استدعاء الوظيفة من الشبكة الظاهرية

إن الوصول إلى وظيفة عبر مستعرض ويب (باستخدام خدمة Azure Bastion) على جهاز ظاهري مُكَوَّن على الشبكة الظاهرية يؤدي إلى النجاح!

قم بالوصول إلى وظيفة Azure عبر Azure Bastion

تنظيف الموارد

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

  1. من قائمة بوابة Azure أو الصفحة الرئيسية، اختر مجموعات> المواردmyResourceGroup.

  2. في لوحة myResourceGroup ، تأكد من أن الموارد المدرجة هي التي تريد حذفها.

  3. حدد Delete resource group. اكتب myResourceGroup في مربع النص للتأكيد، ثم اختر حذف.

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