Конечные точки вышестоящего потока
Функция конечных точек вышестоящий позволяет Служба Azure SignalR отправлять сообщения и события подключения в набор конечных точек в бессерверном режиме. Можно использовать вышестоящий конечных точек для вызова метода концентратора от клиентов в бессерверном режиме для уведомления конечных точек о подключении клиента или отключении.
Примечание.
Конечные точки upstream можно настроить только в бессерверном режиме.
Параметры вышестоящей конечной точки
Параметры конечной точки вышестоящий состоят из списка элементов с учетом порядка:
- Шаблон URL-адреса, указывающий, куда отправляются сообщения.
- Набор правил.
- Конфигурации проверки подлинности.
При срабатывании события правила элемента проверка по одному. Сообщения будут отправлены на URL-адрес вышестоящий конечной точки первого соответствующего элемента.
Параметры шаблона URL-адреса
Вы можете параметризировать URL-адрес конечной точки вышестоящий для поддержки различных шаблонов. Есть три предопределенных параметра:
Предопределенный параметр | Description |
---|---|
{hub} | Концентратор — это концепция Службы 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-адреса и использовать Параметры правил по умолчанию. Подробнее о том, как найти <Function_App_URL>
и <API_KEY>
, см. в разделе Интеграция Службы Azure SignalR.
Параметры проверки подлинности
Вы можете настроить проверку подлинности для каждого параметра конечной точки вышестоящий отдельно. При настройке проверки подлинности маркер безопасности задается в заголовке Authentication
сообщения для вышестоящего ресурса. В настоящее время Служба Azure SignalR поддерживает следующие типы проверки подлинности:
None
ManagedIdentity
При выборе ManagedIdentity
необходимо сначала включить управляемое удостоверение в Служба Azure SignalR и при необходимости указать ресурс. Подробнее см. в разделе Управляемые удостоверения для Службы Azure SignalR.
Настройка параметров конечной точки вышестоящий с помощью портал Azure
Примечание.
Интеграция с Среда службы приложений в настоящее время не поддерживается.
- Перейдите к Службе 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 отправляет сообщения конечным точкам, которые поддерживают следующие протоколы. Вы можете использовать привязку триггера Службы Azure SignalR к приложению-функции, которая обрабатывает эти протоколы.
Способ
POST
Заголовок запроса
Имя | Описание |
---|---|
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 . |
Текст запроса
Connected
Content-Type: application/json
Отключено
Content-Type: application/json
Имя. | Тип | Описание |
---|---|---|
Ошибка | строка | Сообщение об ошибке закрытого соединения. Пусто, если соединения завершаются без ошибок. |
Сообщение вызова
Content-Type: application/json
или application/x-msgpack
Имя. | Тип | Описание |
---|---|---|
InvocationId | строка | Необязательная строка, представляющая сообщение вызова. Подробнее см. в разделе Вызовы. |
Назначение | строка | Аналогично событию и целевому объекту в сообщении вызова. |
Аргументы | Массив объекта | Массив, содержащий аргументы, применяемые к методу, на который ссылается 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)
- Обработка сообщений от Службы Azure SignalR (привязка триггера)
- Пример привязки триггера Службы SignalR