البرنامج التعليمي: التحكم في دالا Azure IP الصادرة باستخدام بوابة NAT لشبكة Azure الافتراضية

تعمل ترجمة عناوين الشبكة الافتراضية (NAT) على تبسيط الاتصال بالإنترنت الصادر فقط للشبكات الظاهرية. عند تكوينه على شبكة فرعية، يستخدم كل الاتصالات الصادرة عناوين IP العامة الثابتة المحددة. يمكن أن تكون NAT مفيدة للتطبيقات التي تحتاج إلى استهلاك خدمة تابعة لجهة خارجية تستخدم قائمة السماح لعنوان IP كإجراء أمان. لمعرفة المزيد، راجع ما هي بوابة Azure NAT؟.

يوضح لك هذا البرنامج التعليمي كيفية استخدام بوابات NAT لتوجيه نسبة استخدام الشبكة الصادرة من وظيفة مشغلة HTTP. تتيح لك هذه الدالة التحقق من عنوان IP الصادر الخاص بها. في هذا البرنامج التعليمي، سوف تتعلم:

  • إنشاء شبكة ظاهرية
  • إنشاء تطبيق دالة خطة مميزة
  • بإنشاء عنوان IP عام
  • إنشاء بوابة NAT
  • تكوين تطبيق الدالة لتوجيه حركة المرور الصادرة من خلال بوابة NAT

المخطط

يوضح الرسم التخطيطي التالي بنية الحل الذي تقوم بإنشائه:

UI for NAT gateway integration

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

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

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

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

إذا كنت قد أكملت بالفعل دمج الدالات مع البرنامج التعليمي لشبكة Azure الافتراضية، يمكنك تخطي إنشاء دالة مشغل HTTP.

إنشاء شبكة ظاهرية

  1. من قائمة مدخل Azure، حدد إنشاء مورد. من سوق Azure، حدد Networking>Virtual network.

  2. في قم بإنشاء شبكة افتراضية، وأدخل أو حدد الإعدادات المحددة كما هو موضح في الجدول التالي:

    الإعداد القيمة‬
    الوصف حدد Subscription الخاص بك.
    مجموعة الموارد حدد "Create new"، أدخِل myResourceGroup، ثم حدد OK.
    الاسم أدخِل myResourceGroup-vnet.
    الموقع حدد East US.
  3. حدد التالي: عناوين IP، ول مساحة عنوان IPv4، أدخل 10.10.0.0/16.

  4. حدّد Add subnet، ثم أدخِل Tutorial-Net لاسم الشبكة الفرعية و10.10.1.0/24 لنطاق عناوين الشبكة الفرعية.

    IP Addresses tab for creating a vnet

  5. اختر Add، ثم قم باختيار Review + create. اترك بقية الإعدادات الافتراضية وحدد Create.

  6. في صفحة إنشاء شبكة افتراضية، حدد Create.

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

إنشاء تطبيق دالة في خطة مميزة

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

إشعار

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

  1. من قائمة مدخل Azure أو الصفحة الرئيسية، حدد Create a resource.

  2. في صفحة New، قم باختيار Compute>Function App.

  3. في صفحة Basics، استخدم إعدادات تطبيق الوظائف على النحو المحدد في الجدول التالي:

    الإعدادات القيمة المقترحة ‏‏الوصف
    الاشتراك اشتراكك الاشتراك الذي تم من خلاله إنشاء تطبيق الوظائف الجديد هذا.
    مجموعة الموارد myResourceGroup اسم مجموعة الموارد الجديدة التي يتم من خلالها إنشاء تطبيق الوظيفة.
    اسم تطبيق الوظائف اسم فريد عالميًا الاسم الذي يحدد تطبيق الوظائف الجديد. الأحرف الصالحة هي a-z (غير حساسة لحالة الأحرف)، و0-9، و-.
    نشر الرمز خيار نشر ملفات الرمز البرمجية أو حاوية «Docker».
    مكدس وقت التشغيل اللغة المفضلة اختر وقت تشغيل يدعم لغة برمجة الوظائف المفضلة لك. التحرير في المدخل غير مدعوم حاليًا للتطوير بلغة Python.
    المنطقة المنطقة المفضلة اختر منطقةقريبة منك، أو بالقرب من الخدمات التي تصل إليها الوظائف.
  4. حدد "Next: Hosting". في صفحة "Hosting" أدخل الإعدادات التالية:

    الإعدادات القيمة المقترحة ‏‏الوصف
    حساب التخزين اسم فريد عالميًا أنشئ حساب تخزين يستخدمه تطبيق الوظائف لديك. يجب أن تكون أسماء حسابات التخزين بين 3 أحرف و24 حرفًا في الطول وقد تحتوي على أرقام وأحرف صغيرة فقط. كما يمكنك استخدام حساب موجود، والذي ينبغي أن يفي بمتطلبات حساب التخزين.
    نظام التشغيل نظام التشغيل المفضل يُحدد نظام التشغيل لك مسبقًا بالاستناد إلى تحديد مكدس وقت التشغيل، غير أنه يمكنك تغيير الإعداد إذا لزم الأمر. نظام Linux لا يدعم سوى Python. يتم اعتماد التحرير في المدخل فقط على نظام Windows.
    تخطيط متميز خطة الاستضافة التي تُعرف كيفية تخصيص الموارد في تطبيق الوظيفة الخاص بك. حدد Premium. بشكل افتراضي، يتم إنشاء خطة App Service جديدة. SKU، والحجم الافتراضي هما EP1، حيث EP ترمز إلى premium مرن. لمعرفة المزيد، راجع قائمة وحدات Premium SKU.
    عند تشغيل وظائف JavaScript على خطة Premium، ينبغي عليك اختيار مثيل يحتوي على وحدات vCPUs أقل. لمزيد من المعلومات، راجع اختيار خطط Premium أُحادية النواة.
  5. قم باختيار Next: Monitoring. في صفحة "Monitoring" أدخل الإعدادات التالية:

    الإعدادات القيمة المقترحة ‏‏الوصف
    Application Insights الإعداد الافتراضي أنشئ "مورد Application Insights" بنفساسم التطبيقفي أقرب منطقة مدعومة. بتوسيع هذا الإعداد، يمكنك تغيير اسم المورد الجديد، أو اختيار موقع آخر في جغرافية Azure لتخزين بياناتك.
  6. حدد "تقييم + إنشاء"لتقييم اختيارات تكوين التطبيق.

  7. في صفحة Review + create راجع الإعدادات، ثم قم باختيار create لتوفير تطبيق الوظيفة ونشره.

  8. قم باختيار رمز Notifications في الزاوية العلوية اليمنى من المدخل وستشاهد رسالة نجح النشر.

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

    Deployment notification

قم بتوصيل تطبيق الدالة الخاصة بك إلى الشبكة الافتراضية

يمكنك الآن توصيل تطبيق الدالة الخاص بك بالشبكة الافتراضية.

  1. في تطبيق الدالة الخاص بك، حدد Networking في القائمة اليسرى، ثم ضمن VNET Integration، حدد Click here to configure.

    Choose networking in the function app

  2. في صفحة VNET Integration، حدد Add VNet.

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

    Define the function app virtual network

    الإعدادات القيمة المقترحة ‏‏الوصف
    شبكة ظاهرية MyResourceGroup-vnet هذه الشبكة الافتراضية هي التي قمت بإنشائها سابقا.
    الشبكه الفرعيه إنشاء شبكة فرعية جديدة إنشاء شبكة فرعية في الشبكة الافتراضية لتطبيق الدالة لاستخدامها. يجب تكوين تكامل VNet لاستخدام شبكة فرعية فارغة.
    اسم الشبكة الفرعية Function-Net اسم الشبكة الفرعية الجديدة.
    قالب عنوان الشبكة الافتراضية 10.10.0.0/16 يجب أن يكون لديك قالب عنوان واحدة فقط معرف.
    Subnet Address Block 10.10.2.0/24 يحد حجم الشبكة الفرعية من العدد الإجمالي للمثيلات التي يمكن لتطبيق دالة خطة مميزة أن يغير حجم نطاقها. يستخدم هذا المثال /24 شبكة فرعية مع عناوين المضيف 254 المتوفرة. هذه الشبكة الفرعية زائدة عن الحاجة، ولكن من السهل حسابها.
  4. حدد OK لإضافة الشبكة الفرعية. أغلق صفحات VNet IntegrationوNetwork Feature Status للعودة إلى صفحة تطبيق الدالة الخاص بك.

يمكن لتطبيق الدالة الآن الوصول إلى الشبكة الافتراضية. عند تمكين الاتصال، vnetrouteallenabled يتم تعيين إعداد الموقع إلى 1. يجب أن يكون لديك إعداد الموقع هذا أو إعداد التطبيق القديم WEBSITE_VNET_ROUTE_ALL معينا إلى 1.

بعد ذلك، ستضيف دالة مشغلة بواسطة HTTP إلى تطبيق الدالة.

إنشاء دالة مشغل HTTP

  1. من القائمة اليسرى من نافذة Functions، حدد Functions، ثم حدد Add من القائمة العلوية.

  2. من نافذة New Function، حدد Http trigger واقبل الاسم الافتراضي لـNew Function، أو أدخل اسما جديدا.

  3. في Code + Test، استبدل رمز emplate-generated C# script (.csx) بالرمز التالي:

    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        var client = new HttpClient();
        var response = await client.GetAsync(@"https://ifconfig.me");
        var responseMessage = await response.Content.ReadAsStringAsync();
    
        return new OkObjectResult(responseMessage);
    }
    

    يستدعي هذا الرمز موقع ويب خارجيًا يعرض عنوان IP الخاص بالمتصل، والذي يكون في هذه الحالة هذه الدالة. تتيح لك هذه الطريقة تحديد عنوان IP الصادر الذي يستخدمه تطبيق الوظائف الخاص بك بسهولة.

الآن أنت مستعد لتشغيل الدالة والتحقق من IPs الصادرة الحالية.

التحقق من IPs الصادرة الحالية

الآن، يمكنك تشغيل الدالة. ولكن أولا، تحقق من المدخل وانظر ما هي IPs الصادرة التي يتم استخدامها بواسطة تطبيق الدالة.

  1. في تطبيق الدالة الخاص بك، حدد Properties وراجع حقل Outbound IP Addresses.

    View function app outbound IP addresses

  2. الآن، ارجع إلى وظيفة مشغل HTTP الخاص بك، وحدد Code + Test ثم Test/Run.

    Test function

  3. حدد Run لتنفيذ الدالة، ثم قم بالتبديل إلى Output.

    Test function output

  4. تحقق من أن عنوان IP في نص استجابة HTTP هو أحد القيم من عناوين IP الصادرة التي قمت بعرضها مسبقا.

الآن، يمكنك إنشاء IP عام واستخدام بوابة NAT لتعديل عنوان IP الصادر هذا.

إنشاء عنوان IP عام

  1. من مجموعة الموارد الخاصة بك، حدد Add، وابحث في Azure Marketplace عن عنوان IP العام، وحدد Create. استخدم الإعدادات الموجودة في الجدول أسفل الصورة:

    Create Public IP Address

    الإعدادات القيمة المقترحة
    IP Version IPv4
    SKU قياسي
    المستوى الإقليمية
    الاسم Outbound-IP
    الاشتراك ضمان عرض اشتراكك
    مجموعة الموارد myResourceGroup (أو الاسم الذي قمت بتعيينه إلى مجموعة الموارد الخاصة بك)
    Location East US (أو الموقع الذي قمت بتعيينه للموارد الأخرى الخاصة بك)
    منطقة التوفر لا توجد منطقة
  2. حدد Create لإرسال النشر.

  3. بمجرد اكتمال النشر، انتقل إلى مورد عنوان IP العام الذي تم إنشاؤه حديثا واعرض عنوان IP في نظرة عامة.

    View Public IP Address

إنشاء بوابة NAT

الآن، دعونا إنشاء بوابة NAT. عند البدء مع البرنامج التعليمي للشبكات الافتراضية السابق، Function-Net كان اسم الشبكة الفرعية المقترحMyResourceGroup-vnet وكان اسم الشبكة الافتراضية المقترحة في هذا البرنامج التعليمي.

  1. من مجموعة الموارد الخاصة بك، حدد Add، وابحث في Azure Marketplace عن بوابة NAT، وحدد Create. استخدم الإعدادات الموجودة في الجدول أسفل الصورة لتعبئة علامة التبويب Basics:

    Create NAT gateway

    الإعدادات القيمة المقترحة
    الاشتراك اشتراكك
    مجموعة الموارد myResourceGroup (أو الاسم الذي قمت بتعيينه إلى مجموعة الموارد الخاصة بك)
    اسم بوابة NAT myNatGateway
    المنطقة East US (أو الموقع الذي قمت بتعيينه للموارد الأخرى الخاصة بك)
    منطقة التوفر بلا
  2. حدد التالي: Outbound IP. في الحقل عناوين IP العامة، حدد عنوان IP العام الذي تم إنشاؤه مسبقا. اترك Public IP Prefixes غير محددة.

  3. حدد Next: Subnet. حدد myResourceGroup-vnet في حقل الشبكة الافتراضيةوشبكة فرعيةFunction-Net.

    Select subnet

  4. حدد Review + Create ثم Create لإرسال النشر.

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

التحقق من IPs الصادرة الجديدة

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

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

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

  1. في بوابة Azure، اذهب إلى صفحة مجموعة الموارد.

    للوصول إلى تلك الصفحة من صفحة تطبيق الوظائف، حدد علامة التبويب Overview، ثم حدد الارتباط التشعبي ضمن مجموعة الموارد.

    Screenshot that shows select the resource group to delete from the function app page.

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

  2. في صفحة مجموعة الموارد، راجع قائمة الموارد المدرجة وتحقق من أنها هي التي تريد حذفها.

  3. حدد حذف مجموعة الموارد واتبع الإرشادات.

    قد يستغرق الحذف بضع دقائق. عند الانتهاء من ذلك، يظهر تنبيه لبضع ثوان. يمكنك أيضا تحديد رمز الجرس في أعلى الصفحة لعرض التنبيه.

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