Привязки службы 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.