مشاركة عبر


البرنامج التعليمي: استخدام الاتصالات المستندة إلى الهوية بدلاً من البيانات السرية مع المشغلات والروابط

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

بينما تعمل الإجراءات الموضحة بشكل عام مع جميع اللغات، يدعم هذا البرنامج التعليمي حاليًا وظائف مكتبة فئة C# على نظام التشغيل Windows تحديدًا.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء مساحة اسم وقائمة انتظار لـService Bus.
  • قم بتكوين تطبيق الوظائف الخاص بك بهوية مدارة.
  • إنشاء تعيين دور يمنح إذن الهوية هذا للقراءة من قائمة انتظار ناقل خدمة Microsoft Azure.
  • إنشاء تطبيق وظائف ونشره باستخدام مشغل ناقل الخدمة.
  • تحقق من الاتصال المستند إلى الهوية بناقل خدمة Microsoft Azure.

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

إنشاء مساحة اسم وقائمة انتظار ناقل خدمة Microsoft Azure

  1. حدد Create a resource (+) في مدخل Azure.

  2. في صفحة Create a resource، ابحث عن Service Bus وحدده، ثم حدد Create.

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

    خيار القيمة المقترحة ‏‏الوصف
    الاشتراك اشتراكك الاشتراك الذي يجري إنشاء الموارد بناءً عليه.
    مجموعة الموارد myResourceGroup مجموعة الموارد التي أنشأتها باستخدام تطبيق الوظائف.
    اسم مساحة الاسم اسم فريد عالميًا مساحة الاسم للمثيل الذي يتم من خلاله تشغيل وظيفتك. نظرًا لأنه يمكن الوصول إلى مساحة الاسم بشكل عام، يجب استخدام اسم مميز عالميًا عبر Azure. يجب أن يتراوح طول الاسم أيضًا بين 6 و50 حرفًا، وأن يحتوي فقط على أحرف أبجدية رقمية وشرطات، ولا يمكن أن يبدأ برقم.
    Location myFunctionRegion المنطقة التي أنشأت فيها تطبيق الوظائف.
    مستوى الأسعار أساسي مستوى ناقل الخدمة الأساسي.
  4. حدد "Review + create". بعد اكتمال عملية التحقق، حدد Create.

  5. بعد اكتمال التوزيع، حدد «Go to resource».

  6. في مساحة اسم ناقل الخدمة الجديد، حدد + Queue لإضافة قائمة انتظار.

  7. أدخل myinputqueue كاسم قائمة انتظار جديدة وحدد Create.

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

تكوين مشغل ناقل الخدمة باستخدام هوية مُدارة

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

إشعار

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

  1. في مساحة اسم ناقل خدمة Microsoft Azure التي قمت بإنشائها، حدد Access control (IAM). هذه الصفحة هي المكان الذي يمكنك فيه عرض وتكوين من لديه حق الوصول إلى المورد.

  2. حدد + إضافة وحدد إضافة تعيين دور.

  3. ابحث عن ناقل خدمة Azure Data Receiver، وحدده، ثم حدد Next.

  4. في علامة التبويب Members، ضمن Assign access to، اختر Managed Identity

  5. حدد Select members لفتح لوحة Select managed identities .

  6. تأكد من أن الاشتراك هو الاشتراك الذي أنشأت فيه الموارد مسبقًا.

  7. في محدد Managed identity، اختر Function App من فئة System-assigned managed identity. قد يكون لتسمية Function App رقم بين أقواس بجانبه، يشير إلى عدد التطبيقات في الاشتراك مع الهويات المعينة من قبل النظام.

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

  9. حدد طلبك. يجب الانتقال إلى أسفل إلى قسم Selected members. حدد تحديد.

  10. مرة أخرى على شاشة إضافة تعيين دور، حدد مراجعة + تعيين. راجع التكوين، ثم حدد Review + assign.

لقد منحت تطبيق الوظائف حق الوصول إلى مساحة اسم ناقل خدمة Microsoft Azure باستخدام الهويات المدارة.

الاتصال بناقل خدمة Microsoft Azure في تطبيق الوظائف

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

  2. في تطبيق الوظائف، قم بتوسيع الإعدادات، ثم حدد متغيرات البيئة.

  3. في علامة التبويب إعدادات التطبيق، حدد + إضافة لإنشاء إعداد. استخدم المعلومات الموجودة في الجدول التالي لإدخال الاسم والقيمة للإعداد الجديد:

    الاسم قيمة ‏‏الوصف
    ServiceBusConnection__fullyQualifiedNamespace <SERVICE_BUS_NAMESPACE.servicebus.windows.net> يربط هذا الإعداد تطبيق الوظائف بناقل خدمة Microsoft Azure باستخدام اتصال قائم على الهوية بدلا من الأسرار.
  4. حدد تطبيق، ثم حدد تطبيق وتأكيدلحفظ التغييرات وإعادة تشغيل وظيفة التطبيق.

إشعار

عند استخدام تكوين تطبيق Azure أو Key Vault لتوفير إعدادات اتصالات الهوية المدارة، يجب أن تستخدم أسماء الإعدادات فاصل مفاتيح صالحا، مثل : أو /، بدلا من __ لضمان حل الأسماء بشكل صحيح.

على سبيل المثال، ServiceBusConnection:fullyQualifiedNamespace

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

إضافة وظيفة مشغل ناقل خدمة

  1. func init قم بتشغيل الأمر، كما يلي، لإنشاء مشروع دوال في مجلد يسمى LocalFunctionProj مع وقت التشغيل المحدد:

    func init LocalFunctionProj --dotnet
    
  2. انتقل إلى مجلد المشروع:

    cd LocalFunctionProj
    
  3. في مجلد المشروع الجذر، قم بتشغيل الأمر التالي:

    dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 5.2.0
    

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

  4. شغّل الأمر التالي لإضافة وظيفة مشغل ناقل الخدمة إلى المشروع:

    func new --name ServiceBusTrigger --template ServiceBusQueueTrigger 
    

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

  5. افتح ملف مشروع ServiceBusTrigger.cs الجديد واستبدل ServiceBusTrigger الفئة بالتعليمات البرمجية التالية:

    public static class ServiceBusTrigger
    {
        [FunctionName("ServiceBusTrigger")]
        public static void Run([ServiceBusTrigger("myinputqueue", 
            Connection = "ServiceBusConnection")]string myQueueItem, ILogger log)
        {
            log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
        }
    }
    

    يعمل نموذج التعليمات البرمجية هذا على تحديث اسم قائمة الانتظار إلى myinputqueue، وهو نفس اسم قائمة الانتظار التي أنشأتها مسبقًا. كما يعمل على تعيين اسم اتصال نقل الخدمة إلى ServiceBusConnection. هذا الاسم هو مساحة اسم ناقل خدمة Microsoft Azure المستخدمة بواسطة الاتصال ServiceBusConnection__fullyQualifiedNamespace المستند إلى الهوية الذي قمت بتكوينه في المدخل.

إشعار

إذا حاولت تشغيل الدالات الخاصة بك الآن باستخدام func start، فستتلقى خطأ. ويرجع ذلك إلى عدم وجود اتصال يستند إلى الهوية معرَّف محليًا. إذا كنت تريد تشغيل الدالة محليا، فقم بتعيين إعداد ServiceBusConnection__fullyQualifiedNamespacelocal.settings.json التطبيق كما فعلت في [القسم السابق](#connect إلى service-bus-in-your-function-app). بالإضافة إلى ذلك، تحتاج إلى تعيين الدور إلى هوية المطور. لمزيد من المعلومات، راجع التطوير المحلي مع الاتصالات المستندة إلى الهوية.

إشعار

عند استخدام Azure App Configuration أو Key Vault لتوفير إعدادات لاتصالات الهوية المُدارة، يجب أن تستخدم أسماء الإعداد فاصل مفاتيح صالح مثل : أو / بدلاً من __ لضمان حل الأسماء بشكل صحيح.

على سبيل المثال، ServiceBusConnection:fullyQualifiedNamespace

نشر المشروع المحدّث

  1. شغّل الأمر التالي لإنشاء الملفات المطلوبة لحزمة النشر محليًا:

    dotnet publish --configuration Release
    
  2. تصفح للوصول إلى المجلد الفرعي \bin\Release\netcoreapp3.1\publish وأنشئ ملف .zip من محتوياته.

  3. انشر ملف .zip عن طريق تشغيل الأمر التالي، استبدال المعلمات FUNCTION_APP_NAME وRESOURCE_GROUP_NAME وPATH_TO_ZIP حسب الاقتضاء:

    az functionapp deploy -n FUNCTION_APP_NAME -g RESOURCE_GROUP_NAME --src-path PATH_TO_ZIP
    

الآن بعد أن قمت بتحديث تطبيق الوظائف بالمشغل الجديد، يمكنك التحقق من أنه يعمل باستخدام الهوية.

التحقق من صحة التغييرات

  1. في المدخل، ابحث عن Application Insights ثم حدد Application Insights ضمن Services.

  2. في Application Insights، تصفح أو ابحث عن مثيل المسمى.

  3. في المثيل، حدد Live Metrics ضمن Investigate.

  4. احتفظ بعلامة التبويب السابقة مفتوحة، وافتح مدخل Microsoft Azure في علامة تبويب جديدة. في علامة التبويب الجديدة، انتقل إلى مساحة اسم ناقل خدمة Microsoft Azure، وحدد قوائم الانتظار من القائمة اليسرى.

  5. حدد قائمة الانتظار المسماة myinputqueue.

  6. حدد Service Bus Explorer من القائمة اليسرى.

  7. أرسل رسالة اختبار.

  8. حدد علامة التبويب المفتوحة Live Metrics ثم راجع تنفيذ قائمة انتظار ناقل الخدمة.

تهانينا! لقد قمت بإعداد مشغل قائمة انتظار ناقل خدمة Microsoft Azure بنجاح بهوية مدارة.

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

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

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

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

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

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

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

تقدم إلى المقالة التالية لمعرفة كيفية إدارة الهوية.