Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба "Сетка событий Azure" обеспечивает бесшовную архитектуру на основе событий путем маршрутизации событий из источников в обработчики. В этой статье вы узнаете, как настроить очереди и разделы служебной шины Azure в качестве обработчиков событий для событий Сетки событий. Это пошаговое руководство поможет вам настроить очереди и разделы служебной шины для обработки событий в корпоративных приложениях с помощью портала Azure, CLI, PowerShell и REST API.
Очереди служебной шины
События в сетке событий можно направлять непосредственно в очереди служебная шина для использования в буферизации или сценариях управления и команд в корпоративных приложениях.
Использование портала Azure
В портал Azure при создании подписки на события выберите служебная шина очередь в качестве типа конечной точки и выберите конечную точку, чтобы выбрать очередь служебная шина.
Примечание.
Если вы используете подписку на очередь или раздел сеанса в качестве назначения, необходимо задать свойство сеанса для события с помощью свойства доставки с именем заголовка SessionId.
Использование Azure CLI
Используйте команду с заданным az eventgrid event-subscription create--endpoint-type и servicebusqueue--endpoint заданным значением/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Приведем пример:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebusqueue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
Вы также можете использовать az eventgrid topic event-subscription команду для пользовательских тем, az eventgrid system-topic event-subscription команду для системных разделов и az eventgrid partner topic event-subscription create команду для разделов партнеров.
Использование Azure PowerShell
Используйте команду New-AzEventGridSubscription с -EndpointType заданным значением servicebusqueue и -Endpoint значением /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Приведем пример:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Вы также можете использовать New-AzEventGridSystemTopicEventSubscription команду для системных разделов и New-AzEventGridPartnerTopicEventSubscription команду для разделов партнеров.
Разделы служебной шины
События в службе "Сетка событий" можно направлять непосредственно в служебная шина разделы для сценариев обмена сообщениями команд и управления ими.
Использование портала Azure
В портал Azure при создании подписки на события выберите служебная шина Раздел в качестве типа конечной точки и выберите конечную точку, чтобы выбрать раздел служебная шина.
Использование Azure CLI
Используйте команду с заданным az eventgrid event-subscription create--endpoint-type и servicebustopic--endpoint заданным значением/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Приведем пример:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebustopic \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
Вы также можете использовать az eventgrid topic event-subscription команду для пользовательских тем, az eventgrid system-topic event-subscription команду для системных разделов и az eventgrid partner topic event-subscription create команду для разделов партнеров.
Использование Azure PowerShell
Используйте команду New-AzEventGridSubscription с -EndpointType заданным значением servicebustopic и -Endpoint значением /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Приведем пример:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Вы также можете использовать New-AzEventGridSystemTopicEventSubscription команду для системных разделов и New-AzEventGridPartnerTopicEventSubscription команду для разделов партнеров.
Заголовки сообщений
Ниже приведены свойства, которые предоставляются в заголовках сообщений.
| Имя свойства | Description |
|---|---|
| aeg-subscription-name | Имя подписки на события. |
| aeg-delivery-count | Число попыток, выполненных для события. |
| aeg-event-type | Тип события. Может иметь одно из следующих значений.
|
| aeg-metadata-version | Версия метаданных события. Для схемы событий Сетки событий это свойство представляет версию метаданных, а для схемы событий облака — версию спецификации. |
| aeg-data-version | Версия данных события. Для схемы событий Сетки событий это свойство представляет версию данных, а для схемы событий облака оно не используется. |
| aeg-output-event-id | Идентификатор события Сетки событий. |
При отправке события в очередь или раздел служебная шина в виде сообщения messageid с брокером это внутренний идентификатор системы.
Внутренний идентификатор системы для сообщения сохраняется в повторном развертывании события, чтобы избежать дублирования поставок, включив обнаружение повторяющихся данных в сущности служебной шины. Рекомендуется установить длительность поиска повторяющихся данных в сущности служебной шины равной сроку жизни события или максимальному периоду времени между повторами, в зависимости от того, какое из этих значений больше.
Свойства доставки
Подписки на события позволяют настраивать заголовки HTTP, которые включаются в доставляемые события. Эта возможность позволяет задать пользовательские заголовки, необходимые для назначения. Пользовательские заголовки можно задавать для событий, которые доставляются в очереди и разделы служебной шины Azure.
Служебная шина Azure поддерживает использование перечисленных ниже свойств сообщений при отправке отдельных сообщений.
| Имя заголовка | Тип заголовка |
|---|---|
MessageId |
Динамический |
PartitionKey |
Статическая или динамическая |
SessionId |
Статическая или динамическая |
CorrelationId |
Статическая или динамическая |
Label |
Статическая или динамическая |
ReplyTo |
Статическая или динамическая |
ReplyToSessionId |
Статическая или динамическая |
To |
Статическая или динамическая |
ViaPartitionKey |
Статическая или динамическая |
Примечание.
- Значение по умолчанию для параметра
MessageId— это внутренний идентификатор события Сетки событий. Его можно переопределить. Например,data.field. - Вы можете задать
SessionIdилиMessageId.
Дополнительные сведения см. в разделе Пользовательские свойства доставки.
Примеры REST (для PUT)
Очередь служебной шины
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Очередь служебной шины — доставка с использованием управляемого удостоверения
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Раздел служебной шины
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Раздел служебной шины — доставка с использованием управляемого удостоверения
{
"properties":
{
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Примечание.
Когда происходит отработка отказа для пространства имен служебная шина, включаемого геоизбыточное восстановление, дополнительное пространство имен не выдает события в сетку событий. Необходимо вручную добавить подписку Сетки событий для дополнительного пространства имен.
Следующие шаги
См. список поддерживаемых обработчиков событий в статье Обработчики событий.