روابط 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.