مشاركة عبر


روابط SignalR Service لـAzure Functions

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

الإجراء نوع
معالجة الرسائل من خدمة SignalR ربط التشغيل
إرجاع عنوان URL لنقطة نهاية الخدمة ورمز الوصول ربط الإدخال
إرسال رسائل SignalR Service وإدارة المجموعات ربط الإخراج

تثبيت الملحق

تعتمد حزمة NuGet الملحق التي تقوم بتثبيتها على وضع C# الذي تستخدمه في تطبيق الوظائف:

يتم تنفيذ الوظائف في عملية عامل C# معزولة. لمعرفة المزيد، راجع دليل تشغيل وظائف C# Azure في عملية عامل معزولة.

أضف الملحق إلى مشروعك عن طريق تثبيت حزمة NuGet.

تثبيت الحزمة

يعد امتداد Kafka جزءاً منحزمة الملحقالتي تم تحديدها في ملف مشروع host.json الخاص بك. عند إنشاء مشروع يستهدف الإصدار 3.x أو أحدث، يجب أن تكون هذه المجموعة مثبّتة بالفعل. لمعرفة المزيد، راجع حزمة الإضافات.

أضف تبعية

لاستخدام التعليقات التوضيحية لخدمة SignalR في وظائف Java، تحتاج إلى إضافة تبعية إلى الأداة azure-functions-java-library-signalr (الإصدار 1.0 أو أعلى) إلى ملف pom.xml.

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-signalr</artifactId>
    <version>1.0.0</version>
</dependency>

الاتصالات

يمكنك استخدام هوية سلسلة الاتصال أو Microsoft Entra للاتصال بخدمة Azure SignalR.

سلسلة الاتصال

للحصول على إرشادات حول كيفية استرداد سلسلة الاتصال لخدمة Azure SignalR، راجع سلاسل الاتصال في خدمة Azure SignalR

يجب تخزين هذه سلسلة الاتصال في إعداد تطبيق باسم AzureSignalRConnectionString. يمكنك تخصيص اسم إعداد التطبيق باستخدام connectionStringSetting خاصية تكوين الربط.

الاتصالات القائمة على الهوية

إذا كنت تستخدم الإصدار 1.7.0 أو أحدث، فبدلا من استخدام سلسلة الاتصال مع سر، يمكنك أن يكون التطبيق يستخدم هوية Microsoft Entra.

أولا وقبل كل شيء، يجب عليك التأكد من أن هوية Microsoft Entra لها دور مالك خدمة SignalR.

ثم يمكنك تعريف الإعدادات ببادئة AzureSignalRConnectionStringشائعة . يمكنك تخصيص اسم البادئة بخاصية connectionStringSetting تكوين الربط.

في هذا الوضع، تتضمن الإعدادات العناصر التالية:

الخاصية قالب متغير البيئة ‏‏الوصف مطلوب مثال للقيمة
معرّف URI للخدمة AzureSignalRConnectionString__serviceUri URI لنقطة نهاية الخدمة. عند تكوين "Service URI" فقط، ستحاول الملحقات استخدام نوع DefaultAzureCredential للمصادقة مع الخدمة. ‏‏نعم‬ https://mysignalrsevice.service.signalr.net
بيانات اعتماد الرمز المميز AzureSignalRConnectionString__credential تحدد طريقة الحصول على الرمز المميز للاتصال. يجب تعيين هذا الإعداد إلى managedidentity إذا كانت دالة Azure المنشورة تنوي استخدام مصادقة الهوية المدارة. هذه القيمة صالحة فقط عندما تتوفر هوية مدارة في بيئة الاستضافة. لا الدقة المدارة
معرف العميل AzureSignalRConnectionString__clientId عند credential تعيين إلى managedidentity، يمكن تعيين هذه الخاصية لتحديد الهوية المعينة من قبل المستخدم لاستخدامها عند الحصول على رمز مميز. وتقبل هذه الخاصية معرف عميل يطابق إحدى الهويات المعينة من قبل المستخدم والمحددة للتطبيق. من غير الصالح تحديد كل من معرف المورد ومعرف العميل. إذا لم يتم تحديدها، يتم استخدام الهوية المعينة من قبل النظام. يتم استخدام هذه الخاصية بشكل مختلف في سيناريوهات التطوير المحلي، عندما credential لا ينبغي تعيينها. لا 00000000-0000-0000-0000-000000000000
معرف المورد AzureSignalRConnectionString__managedIdentityResourceId عند credential تعيين إلى managedidentity، يمكن تعيين هذه الخاصية لتحديد معرف المورد الذي سيتم استخدامه عند الحصول على رمز مميز. تقبل الخاصية معرف مورد يتوافق مع معرف المورد للهوية المدارة المعرفة من قبل المستخدم. من غير الصالح تحديد كل من معرف المورد ومعرف العميل. إذا لم يتم تحديد أي منهما، يتم استخدام الهوية المعينة من قبل النظام. يتم استخدام هذه الخاصية بشكل مختلف في سيناريوهات التطوير المحلي، عندما credential لا ينبغي تعيينها. لا /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

إشعار

عند استخدام local.settings.json ملف في محلي أو Azure App Configuration أو Key Vault لتوفير إعدادات للاتصالات المستندة إلى الهوية، استبدل __ باسم : الإعداد لضمان حل الأسماء بشكل صحيح.

على سبيل المثال، AzureSignalRConnectionString:serviceUri

إعداد نقاط نهاية متعددة

يمكنك أيضا تكوين نقاط نهاية متعددة وتحديد إعدادات الهوية لكل نقطة نهاية.

في هذه الحالة، قم ببادئة الإعدادات الخاصة بك ب Azure__SignalR__Endpoints__{endpointName}. {endpointName} هو اسم عشوائي تم تعيينه من قبلك لإقران مجموعة من الإعدادات بنقطة نهاية خدمة. لا يمكن تخصيص البادئة Azure__SignalR__Endpoints__{endpointName} حسب connectionStringSetting الخاصية.

الخاصية قالب متغير البيئة ‏‏الوصف مطلوب مثال للقيمة
معرّف URI للخدمة Azure__SignalR__Endpoints__{endpointName}__serviceUri عنوان URI لنقطة نهاية الخدمة. عند تكوين "Service URI" فقط، ستحاول الملحقات استخدام نوع DefaultAzureCredential للمصادقة مع الخدمة. ‏‏نعم‬ https://mysignalrsevice1.service.signalr.net
نوع نقطة النهاية Azure__SignalR__Endpoints__{endpointName}__type يشير إلى ما إذا كانت نقطة نهاية الخدمة أساسية أو ثانوية. إذا لم يتم تحديده، تعيينه افتراضيا إلى Primary. القيم الصالحة هي Primary و Secondary، غير حساسة لحالة الأحرف. لا Secondary
بيانات اعتماد الرمز المميز Azure__SignalR__Endpoints__{endpointName}__credential تحدد طريقة الحصول على الرمز المميز للاتصال. يجب تعيين هذا الإعداد إلى managedidentity إذا كانت دالة Azure المنشورة تنوي استخدام مصادقة الهوية المدارة. هذه القيمة صالحة فقط عندما تتوفر هوية مدارة في بيئة الاستضافة. لا الدقة المدارة
معرف العميل Azure__SignalR__Endpoints__{endpointName}__clientId عند credential تعيين إلى managedidentity، يمكن تعيين هذه الخاصية لتحديد الهوية المعينة من قبل المستخدم لاستخدامها عند الحصول على رمز مميز. وتقبل هذه الخاصية معرف عميل يطابق إحدى الهويات المعينة من قبل المستخدم والمحددة للتطبيق. من غير الصالح تحديد كل من معرف المورد ومعرف العميل. إذا لم يتم تحديدها، يتم استخدام الهوية المعينة من قبل النظام. يتم استخدام هذه الخاصية بشكل مختلف في سيناريوهات التطوير المحلي، عندما credential لا ينبغي تعيينها. لا 00000000-0000-0000-0000-000000000000
معرف المورد Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId عند credential تعيين إلى managedidentity، يمكن تعيين هذه الخاصية لتحديد معرف المورد الذي سيتم استخدامه عند الحصول على رمز مميز. تقبل الخاصية معرف مورد يتوافق مع معرف المورد للهوية المدارة المعرفة من قبل المستخدم. من غير الصالح تحديد كل من معرف المورد ومعرف العميل. إذا لم يتم تحديد أي منهما، يتم استخدام الهوية المعينة من قبل النظام. يتم استخدام هذه الخاصية بشكل مختلف في سيناريوهات التطوير المحلي، عندما credential لا ينبغي تعيينها. لا /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

لمزيد من المعلومات حول نقاط النهاية المتعددة، راجع Scale SignalR Service مع مثيلات متعددة

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

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

للحصول على تفاصيل حول كيفية تكوين واستخدام خدمة SignalR وAzure Functions معًا، راجع تطوير Azure Functions وتكوينها باستخدام خدمة Azure SignalR.