Очереди и разделы служебной шины в качестве обработчиков событий для событий службы "Сетка событий Azure"
Обработчик событий получает события из источника событий через сетку событий и обрабатывает эти события. Для обработки событий и Служебная шина Azure можно использовать экземпляры нескольких служб Azure. В этой статье показано, как использовать очередь или раздел служебная шина в качестве обработчика событий из сетки событий.
Очереди служебной шины
События в сетке событий можно направлять непосредственно в очереди служебная шина для использования в буферизации или сценариях управления и команд в корпоративных приложениях.
Использование портала Azure
В портал Azure при создании подписки на события выберите служебная шина очередь в качестве типа конечной точки и выберите конечную точку, чтобы выбрать очередь служебная шина.
Примечание.
Если вы используете подписку на очередь или раздел сеанса в качестве назначения, необходимо задать свойство сеанса для события с помощью свойства доставки с именем заголовка SessionId.
Использование Azure CLI
Используйте команду с заданным az eventgrid event-subscription create
--endpoint-type
и --endpoint
servicebusqueue
заданным значением/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
и --endpoint
servicebustopic
заданным значением/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"
}
}
Примечание.
Когда происходит отработка отказа для пространства имен служебная шина, включаемого геоизбыточное восстановление, дополнительное пространство имен не выдает события в сетку событий. Необходимо вручную добавить подписку Сетки событий для дополнительного пространства имен.
Следующие шаги
См. список поддерживаемых обработчиков событий в статье Обработчики событий.