Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция вышестоящих конечных точек позволяет Служба Azure SignalR отправлять сообщения и события подключения в набор конечных точек в бессерверном режиме. Вы можете использовать вышестоящие конечные точки для вызова методов концентратора клиентами в бессерверном режиме, чтобы уведомлять конечные точки о подключении или отключении клиентов.
Примечание.
Конечные точки upstream можно настроить только в бессерверном режиме.
Параметры вышестоящей конечной точки
Параметры вышестоящей конечной точки состоят из списка элементов с учетом порядка:
- Шаблон URL-адреса, указывающий, куда отправляются сообщения.
- Набор правил.
- Конфигурации проверки подлинности.
При срабатывании события правила элемента проверяются последовательно. Сообщения будут отправлены на URL-адрес вышестоящей конечной точки первого соответствующего элемента.
Параметры шаблона URL-адреса
Вы можете параметризировать URL-адрес конечной точки входящего трафика для поддержки различных шаблонов. Есть три предопределенных параметра:
| Предопределенный параметр | Описание |
|---|---|
| {центр} | Концентратор — это понятие Службы Azure SignalR. Концентратор — это единица изоляции. Область пользователей и доставки сообщений ограничена концентратором. |
| {category} | Категория может быть одной из следующих значений:
|
| {event} | Для категории messages событие является целью в сообщении о вызове, которое отправляют клиенты. Для категории connections используются только connected (подключено) и disconnected (отключено). |
Эти предопределенные параметры можно использовать в шаблоне URL-адреса. Параметры будут заменены указанным значением при оценке URL-адреса вышестоящей конечной точки. Например:
http://host.com/{hub}/api/{category}/{event}
При подключении клиента в концентраторе "chat" сообщение будет отправлено на этот URL-адрес:
http://host.com/chat/api/connections/connected
Когда клиент в концентраторе "chat" вызывает метод концентратора broadcast, сообщение будет отправлено на этот URL-адрес:
http://host.com/chat/api/messages/broadcast
Ссылка на секрет Azure Key Vault в параметрах шаблона URL-адреса
URL-адрес вышестоящей конечной точки не шифруется. Вы можете защитить конфиденциальные конечные точки вышестоящего потока с помощью Key Vault и получить к ним доступ с помощью управляемого удостоверения.
Чтобы включить управляемое удостоверение в экземпляре службы SignalR и предоставить ней доступ к Key Vault:
Добавьте удостоверение, назначенное системой, или удостоверение, назначенное пользователем. Узнайте, как добавить управляемое удостоверение в портал Azure.
Предоставьте разрешение на чтение секрета для управляемого удостоверения в политиках доступа хранилища ключей (Key Vault). См. статью Назначение политики доступа Key Vault с помощью портала Microsoft Azure
Замените конфиденциальный текст приведенным ниже синтаксисом в шаблоне URL-адреса вышестоящей конечной точки:
{@Microsoft.KeyVault(SecretUri=<secret-identity>)}<secret-identity>— полный URI плоскости данных секрета в Key Vault, при необходимости включая версию, напримерhttps://myvault.vault.azure.net/secrets/mysecret/илиhttps://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931Вот пример полной ссылки:
{@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}URL-адрес вышестоящей конечной точки функции Azure выглядит следующим образом:
https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
Примечание.
Каждые 30 минут или всякий раз, когда параметры вышестоящей конечной точки или управляемое удостоверение изменяются, служба перечитает содержимое секрета. Вы можете немедленно активировать обновление, изменив параметры вышестоящей конечной точки.
Параметры правила
Вы можете задать правила концентратора, правила категорий и правила событий отдельно. Правило сопоставления поддерживает три формата:
- Используйте звездочку (*) для сопоставления любого события.
- Для объединения нескольких событий используйте запятую (,). Например,
connected, disconnectedсопоставляет события подключения и отключения. - Используйте полное имя события, чтобы сопоставить это событие. Например,
connectedсоответствует подключенному событию.
Примечание.
Если вы используете Функции Azure с триггером SignalR, триггер SignalR будет предоставлять одну конечную точку в следующем формате: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>
Можно просто настроить параметры шаблона URL-адреса для этого URL-адреса и использовать Параметры правил по умолчанию. См.
Параметры проверки подлинности
Вы можете настроить проверку подлинности для каждого параметра вышестоящей конечной точки отдельно. При настройке проверки подлинности токен задается в заголовке Authentication входящего сообщения. В настоящее время Служба Azure SignalR поддерживает следующие типы проверки подлинности:
NoneManagedIdentity
При выборе ManagedIdentity необходимо сначала включить управляемое удостоверение в Службе Azure SignalR и при необходимости указать ресурс. Подробнее см. в разделе Управляемые удостоверения для Службы Azure SignalR.
Настройка параметров входящей конечной точки с помощью Портала Azure
Примечание.
Интеграция с App Service Environment в данный момент не поддерживается.
- Перейдите к Службе Azure SignalR.
- Выберите Параметры.
- Переключение режима службы на бессерверный.
- Добавьте URL-адреса в Шаблон URL-адреса вышестоящего ресурса.
- Выберите Правила концентратора, чтобы открыть Настройки вышестоящего подключения.
- Изменение правил концентратора, правил событий и правил категорий путем ввода значения правила в соответствующем поле.
- В разделе «Проверка подлинности на вышестоящем уровне» выберите
- Используйте управляемую идентичность. (Убедитесь, что вы включили управляемое удостоверение)
- Выберите все параметры в разделе "Аудитория" в выданном токене. Подробнее см. в разделе Управляемые удостоверения для Службы Azure SignalR.
Настройка параметров вышестоящей конечной точки с помощью шаблона Resource Manager
Чтобы настроить параметры входной конечной точки с помощью шаблона Azure Resource Manager, задайте свойство upstream в свойстве properties. В следующем фрагменте кода показано, как задать upstream свойство для создания и обновления параметров вышестоящей конечной точки.
{
"properties": {
"upstream": {
"templates": [
{
"UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
"EventPattern": "*",
"HubPattern": "*",
"CategoryPattern": "*",
"Auth": {
"Type": "ManagedIdentity",
"ManagedIdentity": {
"Resource": "<resource>"
}
}
}
]
}
}
}
Бессерверные протоколы
Служба Azure SignalR отправляет сообщения конечным точкам, которые поддерживают следующие протоколы. Вы можете использовать привязку триггера Службы SignalR с Function App, которая обрабатывает эти протоколы для вас.
Способ
ПОСТ
Заголовок запроса
| Имя | Описание |
|---|---|
| X-ASRS-Connection-Id | Идентификатор подключения для клиентского соединения. |
| X-ASRS-Hub | Концентратор, к которому подключено клиентское соединение. |
| X-ASRS-Category | Категория, к которой относится сообщение. |
| X-ASRS-Event | Событие, к которому относится сообщение. |
| X-ASRS-Signature | Код проверки подлинности сообщения на основе хэша (HMAC), используемый для валидации. Подробнее см. в разделе Сигнатура. |
| X-ASRS-User-Claims | Группа утверждений клиентского соединения. |
| X-ASRS-User-Id | Удостоверение пользователя клиента, который отправляет сообщение. |
| X-ASRS-Client-Query | Когда клиенты делают запрос, подключаясь к службе. |
| Проверка подлинности | Опциональный токен при использовании ManagedIdentity. |
Текст запроса
Подключено
Тип содержимого: application/json
Отключено
Тип содержимого: application/json
| Имя | Тип | Описание |
|---|---|---|
| Ошибка | строка | Сообщение об ошибке закрытого соединения. Пусто, если соединения завершаются без ошибок. |
Сообщение вызова
Content-Type: application/json или application/x-msgpack
| Имя | Тип | Описание |
|---|---|---|
| Идентификатор вызова | строка | Необязательная строка, представляющая сообщение вызова. Подробнее см. в разделе Вызовы. |
| Цель | строка | Аналогично событию и целевому объекту в сообщении вызова. |
| Аргументы | Массив объектов | Массив, содержащий аргументы, применяемые к методу, на который ссылается Target. |
Подпись
Служба вычислит код SHA256 для значения X-ASRS-Connection-Id, используя основной и вспомогательный ключи доступа в качестве ключа HMAC. Служба устанавливает ее в заголовке X-ASRS-Signature при выполнении HTTP-запросов к вышестоящей конечной точке:
Hex_encoded(HMAC_SHA256(accessKey, connection-id))
Следующие шаги
- Управляемые удостоверения для Службы Azure SignalR
- Azure Functions development and configuration with Azure SignalR Service (Разработка и настройка функций Azure с помощью Службы Azure SignalR)
- Обработка сообщений от Службы SignalR (привязка триггера)
- Пример привязки триггера Службы SignalR