البرنامج التعليمي: دمج Azure Functions مع شبكة Azure ظاهرية باستخدام نقاط النهاية الخاصة
يوضح لك هذا البرنامج التعليمي كيفية استخدام Azure Functions للاتصال بالموارد في شبكة Azure الظاهرية باستخدام نقاط النهاية الخاصة. يمكنك إنشاء تطبيق وظائف جديد باستخدام حساب تخزين جديد مؤمن خلف شبكة ظاهرية عبر مدخل Microsoft Azure. تستخدم الشبكة الظاهرية مشغل قائمة انتظار ناقل خدمة Microsoft Azure.
في هذا البرنامج التعليمي، سوف تتعلّم:
- إنشاء تطبيق دالة في خطة Elastic Premium مع تكامل الشبكة الظاهرية ونقاط النهاية الخاصة.
- إنشاء موارد Azure، مثل ناقل خدمة Microsoft Azure
- تأمين ناقل خدمة Microsoft Azure خلف نقطة نهاية خاصة.
- نشر تطبيق الوظائف يستخدم مشغلات HTTP وناقل خدمة Azure.
- اختبر لمعرفة أن تطبيق الوظائف الخاص بك آمن داخل الشبكة الظاهرية.
- تنظيف الموارد
يمكنك إنشاء تطبيق وظائف C# في خطة Elastic Premium، والتي تدعم قدرات الشبكات مثل تكامل الشبكة الظاهرية عند الإنشاء جنبا إلى جنب مع مقياس بلا خادم. يستخدم هذا البرنامج التعليمي C# وWindows. يتم أيضا دعم اللغات الأخرى وLinux.
في قائمة مدخل Azure أو في صفحة Home، حدد Create a resource.
في صفحة New، قم باختيار Compute>Function App.
في صفحة Basics، استخدام الجدول التالي لتكوين إعدادات تطبيق الوظائف.
الإعدادات القيمة المقترحة الوصف الاشتراك اشتراكك الاشتراك الذي يتم بموجبه إنشاء هذا تطبيق الوظائف الجديد. مجموعة الموارد myResourceGroup اسم مجموعة الموارد الجديدة حيث تقوم بإنشاء تطبيق الوظائف الخاص بك. اسم تطبيق الوظائف اسم فريد عالميًا الاسم الذي يحدد تطبيق الوظائف الجديد. الأحرف الصالحة هي a-z
(غير حساسة لحالة الأحرف)، و0-9
، و-
.نشر رمز اختر نشر ملفات التعليمات البرمجية أو حاويات Docker. مكدس وقت التشغيل .NET يستخدم هذا البرنامج التعليمي .NET. الإصدار 6 (LTS) يستخدم هذا البرنامج التعليمي .NET 6.0 قيد التشغيل في نفس العملية مثل مضيف الوظائف. المنطقة المنطقة المفضلة اختر region قريبة منك، أو بالقرب من الخدمات التي تصل إليها الوظائف. نظام التشغيل Windows يستخدم هذا البرنامج التعليمي Windows ولكنه يعمل أيضا مع Linux. تخطيط Functions Premium خطة الاستضافة التي تُعرف كيفية تخصيص الموارد في تطبيق الوظيفة الخاص بك. بشكل افتراضي، عند تحديد Premium، يتم إنشاء خطة App Service جديدة. الإعداد الافتراضي لـSku and size هوEP1، حيث EP ترمز إلى premium مرن. لمزيدٍ من المعلومات، راجع قائمةPremium SKUs.
عند تشغيل وظائف JavaScript على خطة Premium، اختر مثيلًا يحتوي على وحدات vCPUs أقل. لمزيد من المعلومات، راجع اختيار خطط Premium أُحادية النواة.حدد Next: Storage. في صفحة التخزين ، أدخل الإعدادات التالية.
الإعدادات القيمة المقترحة الوصف حساب التخزين اسم فريد عالميًا أنشئ حساب تخزين يستخدمه تطبيق الوظائف لديك. يجب أن يتراوح طول أسماء حسابات التخزين بين 3 و24 حرفًا. قد تحتوي على أرقام وأحرف صغيرة فقط. يمكنك أيضا استخدام حساب موجود غير مقيد بقواعد جدار الحماية ويلبي متطلبات حساب التخزين. عند استخدام Functions مع حساب تخزين مؤمن، يلزم حساب تخزين v2. هذا هو إصدار التخزين الافتراضي الذي تم إنشاؤه عند إنشاء تطبيق دالة مع قدرات الشبكات من خلال شفرة الإنشاء. حدد Next: Networking. في صفحة Networking ، أدخل الإعدادات التالية.
ملاحظة
بعض هذه الإعدادات غير مرئية حتى يتم تحديد خيارات أخرى.
الإعدادات القيمة المقترحة الوصف تمكين الوصول العام إيقاف تشغيل سيؤدي رفض الوصول إلى الشبكة العامة إلى حظر جميع نسبة استخدام الشبكة الواردة باستثناء تلك التي تأتي من نقاط النهاية الخاصة. تمكين حقن الشبكة تشغيل تظهر القدرة على تكوين التطبيق الخاص بك مع تكامل VNet عند الإنشاء في نافذة المدخل بعد تبديل هذا الخيار إلى تشغيل. شبكة ظاهرية إنشاء جديد حدد الحقل Create New. في الشاشة المنبثقة، أدخل اسما لشبكتك الظاهرية وحدد موافق. يتم عرض خيارات تقييد الوصول الوارد والصادر إلى تطبيق الوظائف عند الإنشاء. يجب تمكين تكامل VNet بشكل صريح في جزء الوصول الصادر من النافذة لتقييد الوصول الصادر. أدخل الإعدادات التالية لقسم الوصول الوارد. تنشئ هذه الخطوة نقطة نهاية خاصة على تطبيق الوظائف.
تلميح
لمتابعة التفاعل مع تطبيق الوظائف من المدخل، ستحتاج إلى إضافة الكمبيوتر المحلي إلى الشبكة الظاهرية. إذا كنت لا ترغب في تقييد الوصول الوارد، فتخط هذه الخطوة.
الإعدادات القيمة المقترحة الوصف تمكين نقاط النهاية الخاصة تشغيل تظهر القدرة على تكوين التطبيق الخاص بك مع تكامل VNet عند الإنشاء في المدخل بعد تمكين هذا الخيار. اسم نقطة النهاية الخاصة myInboundPrivateEndpointName الاسم الذي يحدد نقطة النهاية الخاصة بتطبيق الوظائف الجديد. الشبكة الفرعية الواردة إنشاء جديد ينشئ هذا الخيار شبكة فرعية جديدة لنقطة النهاية الخاصة الواردة. يمكن إضافة نقاط نهاية خاصة متعددة إلى شبكة فرعية مفردة. قم بتوفير اسم شبكة فرعية. قد يتم ترك كتلة عنوان الشبكة الفرعية بالقيمة الافتراضية. حدد OK. لمعرفة المزيد حول تغيير حجم الشبكة الفرعية، راجع الشبكات الفرعية. DNS منطقة Azure Private DNS تشير هذه القيمة إلى خادم DNS الذي تستخدمه نقطة النهاية الخاصة بك. في معظم الحالات إذا كنت تعمل داخل Azure، فإن Azure Private DNS Zone هي منطقة DNS التي يجب استخدامها باستخدام Manual لمناطق DNS المخصصة زادت من التعقيد. أدخل الإعدادات التالية لقسم الوصول الصادر. تدمج هذه الخطوة تطبيق الوظائف الخاص بك مع شبكة ظاهرية عند الإنشاء. كما يعرض خيارات لإنشاء نقاط نهاية خاصة على حساب التخزين الخاص بك وتقييد حساب التخزين الخاص بك من الوصول إلى الشبكة عند الإنشاء. عندما يكون تطبيق الوظائف متكاملا مع vnet، فإن جميع نسبة استخدام الشبكة الصادرة بشكل افتراضي تمر عبر vnet..
الإعدادات القيمة المقترحة الوصف تمكين تكامل الشبكة الظاهرية تشغيل هذا يدمج تطبيق الوظائف الخاص بك مع VNet على إنشاء وتوجيه جميع نسبة استخدام الشبكة الصادرة من خلال VNet. الشبكة الفرعية الصادرة إنشاء و الجديدة في يؤدي هذا إلى إنشاء شبكة فرعية جديدة لتكامل VNet لتطبيق الوظائف. يمكن أن يكون تطبيق الوظائف VNet متكاملا فقط مع شبكة فرعية فارغة. قم بتوفير اسم شبكة فرعية. قد يتم ترك كتلة عنوان الشبكة الفرعية بالقيمة الافتراضية. إذا كنت ترغب في تكوينه، يرجى معرفة المزيد حول تغيير حجم الشبكة الفرعية هنا. حدد OK. يتم عرض خيار إنشاء نقاط النهاية الخاصة للتخزين . لاستخدام تطبيق الوظائف مع الشبكات الظاهرية، تحتاج إلى ضمّه إلى شبكة فرعية. أدخل الإعدادات التالية لقسم نقطة النهاية الخاصة للتخزين. تنشئ هذه الخطوة نقاط نهاية خاصة لنقاط نهاية كائن ثنائي كبير الحجم وقائمة الانتظار والملف والجدول على حساب التخزين الخاص بك عند الإنشاء. هذا يدمج بشكل فعال حساب التخزين الخاص بك مع VNet.
الإعدادات القيمة المقترحة الوصف إضافة نقطة نهاية خاصة للتخزين تشغيل يتم عرض القدرة على تكوين التطبيق الخاص بك مع تكامل VNet عند الإنشاء في المدخل بعد تمكين هذا الخيار. اسم نقطة النهاية الخاصة myInboundPrivateEndpointName الاسم الذي يحدد نقطة النهاية الخاصة بحساب التخزين الخاص بك. الشبكة الفرعية لنقطة النهاية الخاصة إنشاء جديد يؤدي هذا إلى إنشاء شبكة فرعية جديدة لنقطة النهاية الخاصة الواردة على حساب التخزين. يمكن إضافة نقاط نهاية خاصة متعددة إلى شبكة فرعية مفردة. قم بتوفير اسم شبكة فرعية. قد يتم ترك كتلة عنوان الشبكة الفرعية بالقيمة الافتراضية. إذا كنت ترغب في تكوينه، يرجى معرفة المزيد حول تغيير حجم الشبكة الفرعية هنا. حدد OK. DNS منطقة Azure Private DNS تشير هذه القيمة إلى خادم DNS الذي تستخدمه نقطة النهاية الخاصة بك. في معظم الحالات إذا كنت تعمل داخل Azure، فإن Azure Private DNS Zone هي منطقة DNS التي يجب استخدامها باستخدام Manual لمناطق DNS المخصصة ستزيد من التعقيد. قم باختيار Next: Monitoring. في صفحة Monitoring أدخل الإعدادات التالية.
الإعدادات القيمة المقترحة الوصف Application Insights الإعداد الافتراضي إنشاء مورد Application Insights بنفس اسم التطبيق في أقرب منطقة مدعومة. قم بتوسيع هذا الإعداد إذا كنت بحاجة إلى تغيير New resource name أو تخزين البيانات في Location آخر في Azure geography. حدد "تقييم + إنشاء"لتقييم اختيارات تكوين التطبيق.
في صفحة Review + create، راجع الإعدادات. ثم حدد Create لإنشاء تطبيق الوظائف ونشره.
قم باختيار رمز Notifications في الزاوية العلوية اليمنى من المدخل وستشاهد رسالة Deployment succeeded.
حدد الانتقال إلى المورد لعرض تطبيق الوظيفة الجديد. يمكنك أيضًا تحديدتثبيت في لوحة المعلومات. يُسهل التثبيت العودة إلى مورد تطبيق الوظيفة هذا من لوحة المعلومات الخاصة بك.
تهانينا! لقد نجحت في إنشاء تطبيق الوظائف المميز.
ملاحظة
قد تفشل بعض عمليات التوزيع أحيانا في إنشاء نقاط النهاية الخاصة في حساب التخزين مع ظهور الخطأ "StorageAccountOperationInProgress". يحدث هذا الفشل على الرغم من إنشاء تطبيق الوظائف نفسه بنجاح. عندما تواجه مثل هذا الخطأ، احذف تطبيق الوظائف وأعد محاولة العملية. يمكنك بدلا من ذلك إنشاء نقاط النهاية الخاصة على حساب التخزين يدويا.
بعد ذلك، يمكنك إنشاء مثيل ناقل خدمة Microsoft Azure الذي يستخدم لاختبار وظائف قدرات شبكة تطبيق الوظائف في هذا البرنامج التعليمي.
في قائمة مدخل Azure أو في صفحة Home، حدد Create a resource.
في الصفحة New، ابحث عن Service Bus. وبعد ذلك، حدد إنشاء.
في علامة تبويب Basics، استخدام الجدول التالي لتكوين إعدادات ناقل خدمة Azure. يمكن أن تستخدم كافة الإعدادات الأخرى القيم الافتراضية.
الإعدادات القيمة المقترحة الوصف الاشتراك اشتراكك الاشتراك الذي يتم إنشاء مواردك فيه. مجموعة الموارد myResourceGroup مجموعة الموارد التي أنشأتها باستخدام تطبيق الوظائف. اسم مساحة الاسم myServiceBus اسم مثيل ناقل خدمة Microsoft Azure الذي تم تمكين نقطة النهاية الخاصة له. Location myFunctionRegion المنطقة التي أنشأت فيها تطبيق الوظائف. مستوى الأسعار متميز اختر هذا المستوى لاستخدام نقاط النهاية الخاصة مع ناقل خدمة Azure. حدد "Review + create". بعد اكتمال عملية التحقق، حدد Create.
إنشاء نقطة النهاية الخاصة لتأمين ناقل خدمة Azure:
في ناقل خدمة Azure الجديد، في القائمة على اليسار، حدد Networking.
في علامة التبويب Private endpoint connections، حدد Private endpoint.
في علامة التبويب Basics، استخدم إعدادات نقطة النهاية الخاصة الموضحة في الجدول التالي.
الإعدادات القيمة المقترحة الوصف الاشتراك اشتراكك الاشتراك الذي يتم إنشاء مواردك فيه. مجموعة الموارد myResourceGroup مجموعة الموارد التي أنشأتها باستخدام تطبيق الوظائف. الاسم sb-endpoint اسم نقطة النهاية الخاصة لناقل الخدمة. المنطقة myFunctionRegion المنطقة التي أنشأت فيها حساب التخزين الخاص بك. في علامة التبويب Resource، استخدم إعدادات نقطة النهاية الخاصة الموضحة في الجدول التالي.
الإعدادات القيمة المقترحة الوصف الاشتراك اشتراكك الاشتراك الذي يجري إنشاء الموارد بناءً عليه. نوع المورد ناقل الخدمة/مساحة الاسم الخاصة بـ Microsoft. نوع المورد لناقل خدمة Azure. المورد myServiceBus ناقل خدمة Azure الذي قمت بإنشائه في وقت سابق في البرنامج التعليمي. مصدر الهدف الفرعي مساحة الاسم نقطة النهاية الخاصة المستخدمة لمساحة الاسم من ناقل خدمة Microsoft Azure. في علامة التبويب الشبكة الظاهرية، لإعداد الشبكة الفرعية، اختر افتراضي.
حدد "Review + create". بعد اكتمال عملية التحقق، حدد Create.
بعد إنشاء نقطة النهاية الخاصة، ارجع إلى قسم Networking في مساحة اسم ناقل خدمة Microsoft Azure وتحقق من علامة التبويب Public Access .
تأكد من تحديد Selected networks.
حدد + Add existing virtual network لإضافة الشبكة الظاهرية التي تم إنشاؤها مؤخرًا.
في علامة التبويب Add networks، استخدم إعدادات الشبكة من الجدول التالي:
الإعدادات القيمة المقترحة الوصف الاشتراك اشتراكك الاشتراك الذي يجري إنشاء الموارد بناءً عليه. الشبكات الظاهرية myVirtualNet اسم الشبكة الظاهرية التي يتصل بها تطبيق الوظائف. الشبكات الفرعية وظائف اسم الشبكة الفرعية التي يتصل بها تطبيق الوظائف. حدد Add your client IP address لمنح عنوان IP العميل الحالي حق الوصول إلى مساحة الاسم.
ملاحظة
يعد السماح لعنوان IP العميل أمرًا ضروريًّا لتمكين بوابة Azure مننشر الرسائل إلى قائمة الانتظار في وقت لاحق في هذا البرنامج التعليمي.
حدد Enable لتمكين نقطة تقديم الخدمة.
حدد Add لإضافة الشبكة الظاهرية المحددة والشبكة الفرعية إلى قواعد جدار الحماية الخاصة بخدمة ناقل خدمة Azure.
حدد Save لحفظ قواعد جدار الحماية المحدثة.
يمكن الآن للموارد في شبكة الاتصال الظاهرية الاتصال مع ناقل خدمة Azure باستخدام نقطة النهاية الخاصة.
إنشاء قائمة الانتظار حيث يحصل مشغل ناقل خدمة Azure Functions على الأحداث:
في ناقل خدمة Azure، في القائمة على اليسار، حدد Queues.
حدد Queue. لأغراض هذا البرنامج التعليمي، قم بتوفير اسم queue كاسم قائمة الانتظار الجديدة.
حدد إنشاء.
هام
يوضح لك هذا البرنامج التعليمي حاليا كيفية الاتصال بناقل خدمة Microsoft Azure باستخدام سلسلة الاتصال، ما يتطلب منك التعامل مع سر المشاركة. لتحسين الأمان، يجب عليك بدلا من ذلك استخدام الهويات المدارة عند الاتصال بناقل خدمة Microsoft Azure من تطبيقك. لمزيد من المعلومات، راجع الاتصالات المستندة إلى الهوية في مقالة مرجع ربط ناقل خدمة Microsoft Azure.
في ناقل خدمة Azure، في القائمة على اليسار، حدد Shared access policies.
حدد RootManageSharedAccessKey. نسخ Primary Connection Stringوحفظها. تحتاج إلى هذا سلسلة الاتصال عند تكوين إعدادات التطبيق.
في تطبيق الوظائف، في القائمة على اليسار، حدد Configuration.
لاستخدام تطبيق الوظائف مع الشبكات الظاهرية ونقل الخدمة، قم بتحديث إعدادات التطبيق الموضحة في الجدول التالي. لإضافة إعداد أو تحريره، حدد + New application setting أو رمز Edit في العمود أقصى اليمين من جدول إعدادات التطبيق. عندما تنتهي، حدد "Save".
الإعدادات القيمة المقترحة الوصف SERVICEBUS_CONNECTION myServiceBusConnectionString أنشئ إعداد التطبيق هذا لسلسلة الاتصال الخاصة بخدمة ناقل الخدمة. سلسلة اتصال لحساب التخزين هذه من قسمGet a Service Bus connection string. WEBSITE_CONTENTOVERVNET 1 أنشئ إعداد التطبيق هذا. تتيح القيمة 1 لتطبيق الوظائف تغيير الحجم عند تقييد حساب التخزين الخاص بك بشبكة افتراضية. نظرا لأنك تستخدم خطة استضافة Elastic Premium، في طريقة عرض التكوين ، حدد علامة التبويب Function runtime settings . قم بتعيين Runtime Scale Monitoring إلى On. ثم حدد حفظ. يسمح لك التحجيم الذي يعتمد على وقت التشغيل بتوصيل وظائف مشغلات بدون HTTP بالخدمات التي تعمل داخل الشبكة الظاهرية.
ملاحظة
لا يلزم تغيير حجم وقت التشغيل لتطبيقات الوظائف المستضافة في خطة خدمة التطبيقات المخصصة.
ملاحظة
يؤدي تمكين نقاط النهاية الخاصة على تطبيق الوظائف أيضا إلى جعل موقع إدارة التحكم بالمصادر (SCM) غير قابل للوصول بشكل عام. تعطي الإرشادات التالية توجيهات النشر باستخدام مركز النشر داخل تطبيق الوظائف. بدلًا من ذلك، استخدم التوزيع المضغوط أو العوامل المستضافة ذاتيًا التي يتم نشرها في شبكة فرعية على الشبكة الظاهرية.
في GitHub، انتقل إلى مستودع العينة التالي. يحتوي على تطبيق وظائف ووظيفتين، ومشغل HTTP، ومشغل قائمة انتظار ناقل خدمة Azure.
في أعلى الصفحة، حدد Fork لإنشاء نسخة مستودع لهذا المستودع في حساب GitHub الخاصة بك أو مؤسستك.
في تطبيق الوظائف، في القائمة على اليسار، حدد Deployment Center. ثم حدد Settings.
في علامة التبويب Settings، استخدم إعدادات النشر الموضحة في الجدول التالي.
الإعدادات القيمة المقترحة الوصف Source GitHub يجب أن يكون قد تم إنشاء مستودع GitHub للتعليمات البرمجية للنموذج في الخطوة 2. المنظمة myOrganization المؤسسة التي تم إيداع مستودعك بها. عادة ما يكون حسابك. المستودع functions-vnet-tutorial مستودع متشعب من https://github.com/Azure-Samples/functions-vnet-tutorial. الفرع أساسي الفرع الرئيسي للمستودع الذي أنشأته. مكدس وقت التشغيل .NET التعليمات البرمجية للنموذج في C#. الإصدار .NET Core 3.1 إصدار وقت التشغيل. حدد حفظ.
قد يستغرق النشر الأولي بضع دقائق. عند نشر التطبيق بنجاح، في علامة التبويب Logs، سترى رسالة الحالةSuccess (Active). عليك بتحديث الصفحة إذا لزم الأمر.
تهانينا! لقد نجحت في نشر تطبيق وظائف النموذج.
في تطبيق الوظائف، في القائمة على اليسار، حدد Functions.
حدد ServiceBusQueueTrigger.
في القائمة على اليسار، حدد Monitor.
ترى أنه لا يمكنك مراقبة تطبيقك. لا يستطيع المتصفح الوصول إلى الشبكة الافتراضية، لذا لا يمكنه الوصول مباشرة إلى الموارد الموجودة داخل الشبكة الظاهرية.
إليك طريقة بديلة لمراقبة الوظائف باستخدام Application Insights:
في تطبيق الوظائف، في القائمة على اليسار، حدد Application Insights. ثم حدد View Application Insights data.
في القائمة على اليسار، حدد Live metrics.
افتح علامة تبويب جديدة، في ناقل خدمة Azure، في القائمة على اليسار، حدد Queues.
حدد قائمة الانتظار الخاصة بك.
في القائمة على اليسار، حدد Service Bus Explorer. ضمن Send، بالنسبة لـContent Type، اختر Text/Plain. ثم أدخل رسالة.
حدد Send لإرسال الرسالة.
في علامة التبويب Live metrics، يجب أن ترى أن مشغل قائمة انتظار ناقل الخدمة قد تم تشغيله. إذا لم يكن كذلك، قم بإعادة إرسال الرسالة من Service Bus Explorer.
تهانينا! لقد اختبرت بنجاح إعداد تطبيق الوظائف باستخدام نقاط نهاية خاصة.
لقد استخدمت نقطة نهاية خاصة للاتصال بموارد Azure. أنت تتصل بعنوان IP خاص بدلًا من نقطة النهاية العامة. تم تكوين خدمات Azure الموجودة لاستخدام DNS موجود للاتصال بنقطة النهاية العامة. يجب منع تكوين DNS بالاتصال بنقطة النهاية الخاصة.
يتم إنشاء منطقة DNS خاصة لكل مورد Azure تم تكوينه باستخدام نقطة نهاية خاصة. يتم إنشاء سجل DNS لكل عنوان IP خاص مقترن بنقطة النهاية الخاصة.
تم إنشاء مناطق DNS التالية في هذا البرنامج التعليمي:
- privatelink.file.core.windows.net
- privatelink.blob.core.windows.net
- privatelink.servicebus.windows.net
- privatelink.azurewebsites.net
في الخطوات السابقة، أنشأت موارد Azure في إحدى مجموعات الموارد. إذا لم تكن تتوقع أن تحتاج إلى هذه الموارد في المستقبل، يمكنك حذفها عن طريق حذف مجموعة الموارد.
من قائمة مدخل Microsoft Azure أو من Home، حدد Resource groups. بعد ذلك، في صفحة مجموعات الموارد، حدد "myResourceGroup".
في صفحة myResourceGroup، تأكد من أن الموارد المدرجة هي التي تريد حذفها.
حدد حذف مجموعة الموارد واكتب myResourceGroup في مربع النص للتأكيد، ثم حدد حذف.
في هذا البرنامج التعليمي، قمت بإنشاء تطبيق وظائف Premium وحساب تخزين وخدمة ناقل. قمت بتأمين كافة هذه الموارد خلف نقاط النهاية الخاصة.
استخدم الارتباطات التالية لمعرفة المزيد حول خيارات شبكات Azure Functions ونقاط النهاية الخاصة: