Пользовательские свойства доставки
Подписки на события позволяют настраивать заголовки HTTP, которые включаются в доставляемые события. Благодаря этой возможности вы можете задавать пользовательские заголовки, требуемые местом назначения. При создании подписки на событие можно задать до 10 заголовков. Размер значения заголовка не должен превышать 4096 байт (4 КБ).
Пользовательские заголовки можно задавать для событий, которые доставляются следующим получателям:
- Веб-перехватчики
- Разделы и очереди служебной шины Azure;
- Центры событий Azure
- Функции Azure
- Гибридные подключения Azure Relay
При создании подписки на события на портале Azure вы можете настроить заголовки HTTP на вкладке Свойства доставки. На этой странице можно задавать фиксированные и динамические значения заголовков.
Настройка статического значения заголовка
Чтобы задать для заголовка фиксированное значение, укажите имя заголовка и его значение в соответствующих полях:
Возможно, вы хотите проверить секрет? Когда вы предоставляете конфиденциальные данные. Видимость конфиденциальных данных в портал Azure зависит от разрешения RBAC пользователя.
Настройка динамического значения заголовка
Вы можете задавать значения заголовков на основе свойства входящего события. С помощью синтаксиса JsonPath можно получить значение свойства входящего события, которое затем будет использоваться в качестве значения заголовка в исходящих запросах. Поддерживаются только значения JSON строк, чисел и логических значений. Например, чтобы задать значение заголовка Channel на основе свойства system входящего события, которое содержится в его данных, настройте подписку на события следующим образом:
Использование Azure CLI
При создании подписки с помощью команды az eventgrid event-subscription create
используйте параметр --delivery-attribute-mapping
. Приведем пример:
az eventgrid event-subscription create -n es1 \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1
--endpoint-type storagequeue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.Storage/storageAccounts/sa1/queueservices/default/queues/q1 \
--enable-advanced-filtering-on-arrays true
--delivery-attribute-mapping staticproperty1 static somestaticvalue2 true
--delivery-attribute-mapping staticproperty2 static somestaticvalue3 false
--delivery-attribute-mapping dynamicproperty1 dynamic data.key1
Примеры
В этом разделе приведены примеры использования свойств доставки.
Настройка заголовка авторизации с помощью токена носителя (ненормативный пример)
Вы можете задать для заголовка авторизации значение, идентифицирующее запрос к обработчику веб-перехватчика. Заголовок авторизации можно задать, если вы не защищаете веб-перехватчик с помощью идентификатора Microsoft Entra.
Имя заголовка | Тип заголовка | Значение заголовка |
---|---|---|
Authorization |
Статические | BEARER SlAV32hkKG... |
Теперь исходящие запросы должны содержать заголовок, заданный в подписке на событие:
POST /home.html HTTP/1.1
Host: acme.com
Authorization: BEARER SlAV32hkKG...
Примечание.
Заголовки авторизации — разумный вариант, если получателем является веб-перехватчик. Его не следует использовать для функций с подпиской по идентификатору ресурса, служебной шины, Центров событий и гибридных подключений, так как эти получатели поддерживают собственные схемы проверки подлинности при использовании сетки событий.
Пример для служебной шины
Служебная шина Azure поддерживает использование перечисленных ниже свойств сообщений при отправке отдельных сообщений.
Имя заголовка | Тип заголовка |
---|---|
MessageId |
Динамический |
PartitionKey |
Статическая или динамическая |
SessionId |
Статическая или динамическая |
CorrelationId |
Статическая или динамическая |
Label |
Статическая или динамическая |
ReplyTo |
Статическая или динамическая |
ReplyToSessionId |
Статическая или динамическая |
To |
Статическая или динамическая |
ViaPartitionKey |
Статическая или динамическая |
Примечание.
- Значение по умолчанию для параметра
MessageId
— это внутренний идентификатор события Сетки событий. Его можно переопределить. Например,data.field
. - Вы можете задать
SessionId
илиMessageId
.
При отправке сообщений в очереди или разделы Служебной шины можно также указать пользовательские свойства. Не используйте префикс aeg-
, так как он используется в заголовках сообщений системными свойствами. Список свойств заголовка сообщения приведен в разделе Служебная шина как обработчик событий
Пример для Центров событий
Если вам необходимо опубликовать события в определенной секции концентратора событий, задайте свойство PartitionKey
в подписке на событие, чтобы указать ключ целевой секции в концентраторе событий.
Имя заголовка | Тип заголовка |
---|---|
PartitionKey |
Статическая или динамическая |
При отправке сообщений в концентратор событий также можно указать пользовательские свойства. Не используйте префикс aeg-
в имени свойства, так как он используется в заголовках сообщений системными свойствами. Список свойств заголовка сообщения приведен в разделе Концентраторы событий в качестве обработчика событий
Настройка срока жизни исходящих событий в очередях службы хранилища Azure
Для очередей службы хранилища Azure в качестве получателя можно настроить только срок жизни исходящего сообщения после его доставки в очередь. Если время не указано, срок жизни сообщения по умолчанию составляет 7 дней. Также можно задать для события бессрочный период действия.
Следующие шаги
Дополнительные сведения о доставке событий см. в следующей статье: