привязки Служба SignalR для Функции Azure

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

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

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

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

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

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

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

Чтобы использовать это расширение привязки в приложении, убедитесь, что файл host.json в корне проекта содержит следующую extensionBundle ссылку:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

В этом примере значение version указывает хосту функций использовать версию пакета, которая как минимум [4.0.0, 5.0.0), но меньше 4.0.0, охватывая все потенциальные версии 4.x. Эта нотация эффективно поддерживает ваше приложение в последней доступной дополнительной версии пакета расширений версии 4.x.

По возможности следует использовать последнюю версию пакета расширений и разрешить среде выполнения автоматически поддерживать последнюю дополнительную версию. Содержимое последнего пакета можно просмотреть на странице выпуска пакетов extension. Дополнительные сведения см. в пакетах расширений Функции Azure.

Добавить зависимость

Чтобы использовать заметки Служба 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) конечной точки службы. При настройке только 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/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 .

Свойство Шаблон переменной среды Описание Обязательное поле Пример значения
URI службы Azure__SignalR__Endpoints__{endpointName}__serviceUri Универсальный код ресурса (URI) конечной точки службы. При настройке только 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/000000000-0000-0000-0000-0000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

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

Чтобы узнать больше о соединениях связей, см. раздел «Управление соединением в Функции Azure».

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

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