Поделиться через


Привязки службы SignalR для службы "Функции Azure"

В этой серии статей описано, как выполнять аутентификацию и отправлять сообщения в реальном времени для клиентов, подключенных к Службе Azure SignalR, с использованием привязок Службы SignalR в Функциях Azure. Среда выполнения Функции Azure версии 2.x и более поздних поддерживает входные и выходные привязки для Службы SignalR.

Действие Тип
Обработка сообщений от Службы SignalR Привязка триггера
Возврат URL-адреса конечной точки службы и маркера доступа Входная привязка
Отправка Служба SignalR сообщений и управление группами Выходная привязка

Установка расширения

Устанавливаемый пакет расширения NuGet зависит от режима C#, который используется в приложении-функции:

Функции выполняются в изолированном рабочем процессе C#. Дополнительные сведения см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе.

Добавьте расширение в проект, установив данный пакет NuGet.

Установка пакета

Расширение "Служба SignalR" входит в пакет расширений, который указан в файле проекта 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>

Связи

Для подключения к Служба Azure SignalR можно использовать строка подключения или удостоверение Microsoft Entra.

Connection string

Инструкции по получению строка подключения для Служба Azure SignalR см. в разделе "Строки подключения" в Служба Azure SignalR

Этот строка подключения должен храниться в параметре приложения с именемAzureSignalRConnectionString. Имя параметра приложения можно настроить с помощью connectionStringSetting свойства конфигурации привязки.

Подключения на основе удостоверений

Если вы используете версию 1.7.0 или более позднюю, вместо использования строка подключения с секретом, вы можете использовать удостоверение Microsoft Entra.

Во-первых, необходимо убедиться, что удостоверение Microsoft Entra имеет роль Служба SignalR владельца.

Затем вы определите параметры с общим префиксом AzureSignalRConnectionString. Имя префикса можно настроить с connectionStringSetting помощью свойства конфигурации привязки.

В этом режиме параметры включают следующие элементы:

Свойство Шаблон переменной среды Description Обязательное поле Пример значения
URI службы AzureSignalRConnectionString__serviceUri Универсальный код ресурса (URI) конечной точки службы. При настройке только URI службы расширения попытаются использовать тип DefaultAzureCredential для проверки подлинности со службой. Да https://mysignalrsevice.service.signalr.net
Учетные данные маркера AzureSignalRConnectionString__credential Определяет, как должен быть получен маркер для соединения. Этот параметр следует задать, managedidentity если развернутая функция Azure намерена использовать проверку подлинности управляемого удостоверения. Это значение допустимо только в том случае, если управляемое удостоверение доступно в среде размещения. No управляемое удостоверение
Client ID AzureSignalRConnectionString__clientId Если credential задано значение managedidentity, это свойство можно задать, чтобы указать назначаемое пользователем удостоверение, которое будет использоваться при получении маркера. Свойство принимает идентификатор клиента, соответствующий назначаемому пользователем удостоверению, которое назначено приложению. Недопустимо указать идентификатор ресурса и идентификатор клиента. Если это не указано, используется удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, если credential не следует задавать. No 00000000-0000-0000-0000-000000000000
ИД ресурса AzureSignalRConnectionString__managedIdentityResourceId Если credential задано managedidentityзначение, это свойство можно задать, чтобы указать идентификатор ресурса, который будет использоваться при получении маркера. Свойство принимает идентификатор ресурса, соответствующий идентификатору ресурса определяемого пользователем управляемого удостоверения. Недопустимо указать идентификатор ресурса и идентификатор клиента. Если ни указано, используется удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, если credential не следует задавать. No /subscriptions/000000000-0000-0000-0000-000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

Примечание.

При использовании local.settings.json файла в локальном Конфигурация приложений Azure или Key Vault для предоставления параметров для подключений на основе удостоверений замените __ : на имя параметра, чтобы убедиться, что имена разрешаются правильно.

Например, AzureSignalRConnectionString:serviceUri.

Параметр нескольких конечных точек

Можно также настроить несколько конечных точек и указать параметры удостоверения для каждой конечной точки.

В этом случае префикс параметров с Azure__SignalR__Endpoints__{endpointName}помощью. Это {endpointName} произвольное имя, назначенное вами для связывания группы параметров с конечной точкой службы. Префикс Azure__SignalR__Endpoints__{endpointName} нельзя настроить по свойству connectionStringSetting .

Свойство Шаблон переменной среды Description Обязательное поле Пример значения
URI службы Azure__SignalR__Endpoints__{endpointName}__serviceUri Универсальный код ресурса (URI) конечной точки службы. При настройке только URI службы расширения попытаются использовать тип DefaultAzureCredential для проверки подлинности со службой. Да https://mysignalrsevice1.service.signalr.net
Тип конечной точки Azure__SignalR__Endpoints__{endpointName}__type Указывает, является ли конечная точка службы первичной или вторичной. Если это значение не указано, по умолчанию используется Primary. Допустимые значения: Primary без Secondaryучета регистра. No Secondary
Учетные данные маркера Azure__SignalR__Endpoints__{endpointName}__credential Определяет, как должен быть получен маркер для соединения. Этот параметр следует задать, managedidentity если развернутая функция Azure намерена использовать проверку подлинности управляемого удостоверения. Это значение допустимо только в том случае, если управляемое удостоверение доступно в среде размещения. No управляемое удостоверение
Client ID Azure__SignalR__Endpoints__{endpointName}__clientId Если credential задано значение managedidentity, это свойство можно задать, чтобы указать назначаемое пользователем удостоверение, которое будет использоваться при получении маркера. Свойство принимает идентификатор клиента, соответствующий назначаемому пользователем удостоверению, которое назначено приложению. Недопустимо указать идентификатор ресурса и идентификатор клиента. Если это не указано, используется удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, если credential не следует задавать. No 00000000-0000-0000-0000-000000000000
ИД ресурса Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId Если credential задано managedidentityзначение, это свойство можно задать, чтобы указать идентификатор ресурса, который будет использоваться при получении маркера. Свойство принимает идентификатор ресурса, соответствующий идентификатору ресурса определяемого пользователем управляемого удостоверения. Недопустимо указать идентификатор ресурса и идентификатор клиента. Если ни указано, используется удостоверение, назначаемое системой. Это свойство используется по-разному в локальных сценариях разработки, если credential не следует задавать. No /subscriptions/000000000-0000-0000-0000-0000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

Дополнительные сведения о нескольких конечных точках см. в статье "Масштабирование Служба SignalR с несколькими экземплярами"

Следующие шаги

Дополнительные сведения о настройке и использовании Службы SignalR и Функций Azure см. в статье Разработка и настройка Функций Azure с помощью Службы Azure SignalR.