Поделиться через


Пользовательские свойства доставки

Подписки на события позволяют настраивать заголовки 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 дней. Также можно задать для события бессрочный период действия.

Свойства доставки — очередь хранилища

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

Дополнительные сведения о доставке событий см. в следующей статье: