Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure Event Grid ondersteunt event-gedreven architecturen door gebeurtenissen van bronnen naar handlers te routeren. Dit artikel laat zien hoe je Azure Service Bus-wachtrijen en onderwerpen configureert als event handlers voor Event Grid-gebeurtenissen. Je configureert de wachtrij of het onderwerp om gebeurtenissen te verwerken in bedrijfsapplicaties door gebruik te maken van het Azure-portaal, Azure CLI, Azure PowerShell of REST API.
Prerequisites
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een Event Grid-onderwerp, systeemonderwerp, aangepast onderwerp of partneronderwerp om je op te abonneren. Voor meer informatie, zie het onderwerp 'Create a Event Grid' of een domein.
- Een Service Bus-naamruimte met een wachtrij of onderwerp om de gebeurtenissen te ontvangen. Raadpleeg voor meer informatie Een Service Bus-naamruimte en een wachtrij maken met Azure Portal.
- Toestemming om een gebeurtenisabonnement aan te maken op het brononderwerp en berichten te sturen naar de doel-Service Bus-wachtrij of -onderwerp.
Service Bus-wachtrijen
Routeer gebeurtenissen in Event Grid direct naar Service Bus-wachtrijen voor buffering of command-and-control-scenario's in bedrijfsapplicaties.
Configureer een Service Bus-wachtrij met behulp van het Azure-portaal
Selecteer in het Azure-portaal bij het maken van een gebeurtenisabonnement Service Bus Queue als eindpunttype en selecteer vervolgens Een eindpunt selecteren om een Service Bus-wachtrij te kiezen.
Notitie
Als u een wachtrij of topicabonnement waarvoor sessies zijn ingeschakeld als bestemming gebruikt, stelt u de sessie-eigenschap voor de gebeurtenis in met behulp van een leveringseigenschap met als headernaam SessionId.
Configureer een Service Bus queue door gebruik te maken van de Azure CLI
Gebruik de az eventgrid event-subscription create opdracht met --endpoint-type ingesteld op servicebusqueue en --endpoint ingesteld op /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Hier volgt een voorbeeld:
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
U kunt ook de az eventgrid topic event-subscription opdracht gebruiken voor aangepaste onderwerpen, de az eventgrid system-topic event-subscription opdracht voor systeemonderwerpen en de az eventgrid partner topic event-subscription create opdracht voor partneronderwerpen.
Configureer een Service Bus queue door Azure PowerShell te gebruiken
Gebruik de opdracht New-AzEventGridSubscription met -EndpointType ingesteld op servicebusqueue en -Endpoint ingesteld op /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Hier volgt een voorbeeld:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
U kunt ook de New-AzEventGridSystemTopicEventSubscription opdracht voor systeemonderwerpen en de New-AzEventGridPartnerTopicEventSubscription opdracht voor partneronderwerpen gebruiken.
Service Bus-onderwerpen
Routeer gebeurtenissen in Event Grid direct naar Service Bus-onderwerpen voor commando- en controleberichten.
Configureer een Service Bus-onderwerp door gebruik te maken van het Azure-portaal
In het Azure-portaal, terwijl je een event-abonnement aanmaakt, selecteer je Service Bus Topic als endpoint type, en selecteer vervolgens Select an endpoint om een Service Bus topic te kiezen.
Configureer een Service Bus-topic door gebruik te maken van de Azure CLI
Gebruik de az eventgrid event-subscription create opdracht met --endpoint-type ingesteld op servicebustopic en --endpoint ingesteld op /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Hier volgt een voorbeeld:
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
U kunt ook de az eventgrid topic event-subscription opdracht gebruiken voor aangepaste onderwerpen, de az eventgrid system-topic event-subscription opdracht voor systeemonderwerpen en de az eventgrid partner topic event-subscription create opdracht voor partneronderwerpen.
Configureer een Service Bus topic door gebruik te maken van Azure PowerShell
Gebruik de opdracht New-AzEventGridSubscription met -EndpointType ingesteld op servicebustopic en -Endpoint ingesteld op /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Hier volgt een voorbeeld:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
U kunt ook de New-AzEventGridSystemTopicEventSubscription opdracht voor systeemonderwerpen en de New-AzEventGridPartnerTopicEventSubscription opdracht voor partneronderwerpen gebruiken.
Berichtkopteksten
Dit zijn de eigenschappen die u ontvangt in de berichtkoppen:
| Eigenschapsnaam | Beschrijving |
|---|---|
| aeg-subscription-name | Naam van het gebeurtenisabonnement. |
| aeg-delivery-count | Aantal pogingen gedaan voor de gebeurtenis. |
| aeg-event-type | Type van de gebeurtenis. Dit kan een van de volgende waarden zijn:
|
| aeg-metadata-version | Metagegevensversie van de gebeurtenis. Voor event grid-gebeurtenisschema vertegenwoordigt deze eigenschap de metagegevensversie en voor het cloud-gebeurtenisschema, het vertegenwoordigt de specificatieversie. |
| aeg-data-version | Gegevensversie van de gebeurtenis. Voor Event Grid-gebeurtenisschema vertegenwoordigt deze eigenschap de gegevensversie en voor het cloud-gebeurtenisschema is deze niet van toepassing. |
| aeg-output-event-id | Id van de Event Grid-gebeurtenis. |
Wanneer u een gebeurtenis als brokered message naar een Service Bus-queue of -topic verzendt, is de messageid van het brokered message een interne systeem-ID.
De interne systeem-ID van het bericht blijft bestaan tijdens de heraflevering van het evenement, zodat je dubbele leveringen kunt voorkomen door duplicatiedetectie in te schakelen op de Service Bus-entiteit. Stel de duur van de duplicaatdetectie op de Service Bus-entiteit in op ofwel de time-to-live (TTL) van het evenement of de maximale herpogingsduur, afhankelijk van wat langer is.
Leveringseigenschappen
Wanneer je event-abonnementen gebruikt, kun je HTTP-headers instellen om in geleverde events op te nemen. Deze mogelijkheid ondersteunt het instellen van aangepaste headers die de bestemming vereist. Je kunt aangepaste headers instellen op de gebeurtenissen die aan Azure Service Bus-wachtrijen en topics worden geleverd.
Azure Service Bus ondersteunt de volgende berichteigenschappen wanneer je losse berichten verzendt.
| Headernaam | Kopteksttype |
|---|---|
MessageId |
Dynamisch |
PartitionKey |
Statisch of dynamisch |
SessionId |
Statisch of dynamisch |
CorrelationId |
Statisch of dynamisch |
Label |
Statisch of dynamisch |
ReplyTo |
Statisch of dynamisch |
ReplyToSessionId |
Statisch of dynamisch |
To |
Statisch of dynamisch |
ViaPartitionKey |
Statisch of dynamisch |
Notitie
- De standaardwaarde is
MessageIdde interne id van de Event Grid-gebeurtenis. U kunt dit negeren. Gebruik bijvoorbeelddata.field. - U kunt alleen ofwel
SessionIdofMessageIdinstellen.
Zie Aangepaste leveringseigenschappen voor meer informatie.
REST-voorbeelden (voor PUT)
Service Bus-wachtrij
{
"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"
}
}
Service Bus-wachtrij - levering met beheerde identiteit
{
"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"
}
}
Service Bus-onderwerp
{
"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"
}
}
Service Bus-onderwerp - levering met beheerde identiteit
{
"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"
}
}
Notitie
Wanneer een failover plaatsvindt voor een Service Bus-naamruimte waarvoor Geo-Disaster Recovery is ingeschakeld, verzendt de secundaire naamruimte geen gebeurtenissen naar Event Grid. Je moet handmatig het Event Grid-abonnement toevoegen voor de secundaire naamruimte.
Verwante onderwerpen
Voor een lijst van ondersteunde event handlers, zie het artikel Event handlers .