Fronty a témata služby Service Bus jako obslužné rutiny událostí pro události Azure Event Gridu
Obslužná rutina události přijímá události ze zdroje událostí prostřednictvím event Gridu a zpracovává tyto události. Instance několika služeb Azure můžete použít ke zpracování událostí a Azure Service Bus je jedním z nich. V tomto článku se dozvíte, jak použít frontu nebo téma služby Service Bus jako obslužnou rutinu událostí z Event Gridu.
Fronty služby Service Bus
Události ve službě Event Grid můžete směrovat přímo do front Service Bus pro použití ve scénářích ukládání do vyrovnávací paměti nebo příkazů a řízení v podnikových aplikacích.
Použití webu Azure Portal
Na webu Azure Portal při vytváření odběru událostí vyberte frontu služby Service Bus jako typ koncového bodu a potom kliknutím vyberte koncový bod a zvolte frontu služby Service Bus.
Poznámka:
Pokud jako cíl používáte odběr fronty nebo tématu s povolenou relací, musíte vlastnost relace události nastavit pomocí vlastnosti doručení s názvem SessionId.
Použití Azure CLI
az eventgrid event-subscription create
Použijte příkaz s nastaveným --endpoint-type
servicebusqueue
a --endpoint
nastaveným na /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Tady je příklad:
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
Příkaz můžete použít az eventgrid topic event-subscription
také pro vlastní témata, az eventgrid system-topic event-subscription
příkaz pro systémová témata a az eventgrid partner topic event-subscription create
příkaz pro témata partnerů.
Použití Azure Powershell
Použijte příkaz New-AzEventGridSubscription s nastavenou servicebusqueue
-EndpointType
na a -Endpoint
nastavenou na /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>
. Tady je příklad:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
Příkaz můžete použít New-AzEventGridSystemTopicEventSubscription
také pro systémová témata a New-AzEventGridPartnerTopicEventSubscription
příkaz pro témata partnerů.
Témata služby Service Bus
Události ve službě Event Grid můžete směrovat přímo do témat služby Service Bus pro scénáře zasílání zpráv pomocí příkazů a řízení.
Použití webu Azure Portal
Na webu Azure Portal při vytváření odběru událostí vyberte jako typ koncového bodu téma služby Service Bus a pak kliknutím vyberte koncový bod a zvolte téma služby Service Bus.
Použití Azure CLI
az eventgrid event-subscription create
Použijte příkaz s nastaveným --endpoint-type
servicebustopic
a --endpoint
nastaveným na /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Tady je příklad:
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
Příkaz můžete použít az eventgrid topic event-subscription
také pro vlastní témata, az eventgrid system-topic event-subscription
příkaz pro systémová témata a az eventgrid partner topic event-subscription create
příkaz pro témata partnerů.
Použití Azure Powershell
Použijte příkaz New-AzEventGridSubscription s nastavenou servicebustopic
-EndpointType
na a -Endpoint
nastavenou na /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>
. Tady je příklad:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
Příkaz můžete použít New-AzEventGridSystemTopicEventSubscription
také pro systémová témata a New-AzEventGridPartnerTopicEventSubscription
příkaz pro témata partnerů.
Záhlaví zpráv
Toto jsou vlastnosti, které obdržíte v záhlaví zprávy:
Název vlastnosti | Popis |
---|---|
aeg-subscription-name | Název odběru události. |
aeg-delivery-count | Počet pokusů o událost |
aeg-event-type | Typ události Může to být jedna z následujících hodnot:
|
aeg-metadata-version | Verze metadat události Pro schéma událostí Event Gridu tato vlastnost představuje verzi metadat a pro schéma cloudové události představuje verzi specifikace. |
aeg-data-version | Datová verze události U schématu událostí Event Gridu tato vlastnost představuje datovou verzi a pro schéma cloudové události se nepoužije. |
aeg-output-event-id | ID události Event Gridu. |
Když odešlete událost do fronty nebo tématu služby Service Bus jako zprostředkovanou zprávu, messageid
zprostředkovaná zpráva je interní SYSTÉMOVÉ ID.
Interní SYSTÉMOVÉ ID zprávy se udržuje v rámci opětovného nasazení události, abyste se vyhnuli duplicitním dodávkám zapnutím detekce duplicit v entitě služby Service Bus. Doporučujeme povolit dobu trvání detekce duplicit u entity Service Bus tak, aby byla hodnota TTL (time-to-live) události nebo maximální doba opakování podle toho, která hodnota je delší.
Vlastnosti doručení
Odběry událostí umožňují nastavit hlavičky HTTP, které jsou součástí doručených událostí. Tato funkce umožňuje nastavit vlastní hlavičky, které cíl vyžaduje. Vlastní hlavičky můžete nastavit u událostí, které se doručují do front a témat služby Azure Service Bus.
Azure Service Bus podporuje použití následujících vlastností zpráv při odesílání jednotlivých zpráv.
Název hlavičky | Typ záhlaví |
---|---|
MessageId |
dynamicky, |
PartitionKey |
Statické nebo dynamické |
SessionId |
Statické nebo dynamické |
CorrelationId |
Statické nebo dynamické |
Label |
Statické nebo dynamické |
ReplyTo |
Statické nebo dynamické |
ReplyToSessionId |
Statické nebo dynamické |
To |
Statické nebo dynamické |
ViaPartitionKey |
Statické nebo dynamické |
Poznámka:
- Výchozí hodnota
MessageId
je interní ID události Event Gridu. Můžete ho přepsat. Napříkladdata.field
. - Můžete nastavit pouze jednu
SessionId
neboMessageId
.
Další informace naleznete v tématu Vlastní vlastnosti doručení.
Příklady REST (pro PUT)
Fronta služby Service Bus
{
"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"
}
}
Fronta služby Service Bus – doručování se spravovanou identitou
{
"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"
}
}
Téma služby Service Bus
{
"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"
}
}
Téma služby Service Bus – doručování se spravovanou identitou
{
"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"
}
}
Poznámka:
Pokud dojde k převzetí služeb při selhání pro obor názvů služby Service Bus, který je povolen geograficky zotavení po havárii , sekundární obor názvů negeneruje události do Event Gridu. Musíte ručně přidat odběr služby Event Grid pro sekundární obor názvů.
Další kroky
Seznam podporovaných obslužných rutin událostí najdete v článku Obslužné rutiny událostí.