Skip to content

Commit ec811bf

Browse files
committed
Service Bus handler - review & update
1 parent 5375066 commit ec811bf

File tree

4 files changed

+74
-39
lines changed

4 files changed

+74
-39
lines changed

articles/event-grid/handler-service-bus.md

Lines changed: 73 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@
22
title: Service Bus queues and topics as event handlers for Azure Event Grid events
33
description: Describes how you can use Service Bus queues and topics as event handlers for Azure Event Grid events.
44
ms.topic: conceptual
5-
ms.date: 09/30/2021
5+
ms.date: 11/17/2022
66
---
77

88
# Service Bus queues and topics as event handlers for Azure Event Grid events
9-
An event handler is the place where the event is sent. The handler takes some further action to process the event. Several Azure services are automatically configured to handle events and **Azure Service Bus** is one of them.
10-
11-
You can use a Service queue or topic as a handler for events from Event Grid.
9+
An event handler receives events from an event source via Event Grid, and processes those events. You can use instances of a few Azure services to handle events and **Azure Service Bus** is one of them. This article shows you how to use a Service Bus queue or topic as a handler for events from Event Grid.
1210

1311
## Service Bus queues
1412

15-
> [!NOTE]
16-
> Session enabled queues are not supported as event handlers for Azure Event Grid events
17-
18-
You can route events in Event Grid directly to Service Bus queues for use in buffering or command & control scenarios in enterprise applications.
13+
You can route events in Event Grid directly to Service Bus queues for use in buffering or command and control scenarios in enterprise applications.
1914

20-
In the Azure portal, while creating an event subscription, select **Service Bus Queue** as endpoint type and then click **select an endpoint** to choose a Service Bus queue.
15+
### Use Azure portal
16+
In the Azure portal, while creating an event subscription, select **Service Bus Queue** as the endpoint type and then click **select an endpoint** to choose a Service Bus queue.
2117

22-
### Using CLI to add a Service Bus queue handler
18+
:::image type="content" source="./media/handler-service-bus/queue.png" lightbox="./media/handler-service-bus/queue.png" alt-text="Screenshot showing the configuration of a Service Bus queue handler.":::
2319

24-
For Azure CLI, the following example subscribes and connects an event grid topic to a Service Bus queue:
20+
> [!NOTE]
21+
> Session enabled queues are not supported as event handlers for Azure Event Grid events
22+
23+
### Use Azure CLI
24+
Use the [`az eventgrid event-subscription create`](/cli/azure/eventgrid/event-subscription) command with `--endpoint-type` set to `servicebusqueue` and `--endpoint` set to `/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>`. Here's an example:
2525

2626
```azurecli-interactive
2727
az eventgrid event-subscription create \
@@ -31,15 +31,33 @@ az eventgrid event-subscription create \
3131
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
3232
```
3333

34+
You can also use the [`az eventgrid topic event-subscription`](/cli/azure/eventgrid/topic/event-subscription) command for custom topics, the [`az eventgrid system-topic event-subscription`](/cli/azure/eventgrid/system-topic/event-subscription) command for system topics, and the [`az eventgrid partner topic event-subscription create`](/cli/azure/eventgrid/partner/topic/event-subscription#az-eventgrid-partner-topic-event-subscription-create) command for partner topics.
35+
36+
### Use Azure PowerShell
37+
Use the [New-AzEventGridSubscription](/powershell/module/az.eventgrid/new-azeventgridsubscription) command with `-EndpointType` set to `servicebusqueue` and `-Endpoint` set to `/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>`. Here's an example:
38+
39+
40+
```azurepowershell-interactive
41+
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
42+
-TopicName Topic1 `
43+
-EndpointType servicebusqueue `
44+
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
45+
-EventSubscriptionName EventSubscription1
46+
```
47+
48+
You can also use the [`New-AzEventGridSystemTopicEventSubscription`](/powershell/module/az.eventgrid/new-azeventgridsystemtopiceventsubscription) command for system topics, and the [`New-AzEventGridPartnerTopicEventSubscription`](/powershell/module/az.eventgrid/new-azeventgridpartnertopiceventsubscription) command for partner topics.
49+
3450
## Service Bus topics
3551

36-
You can route events in Event Grid directly to Service Bus topics to handle Azure system events with Service Bus topics, or for command & control messaging scenarios.
52+
You can route events in Event Grid directly to Service Bus topics for command and control messaging scenarios.
3753

38-
In the Azure portal, while creating an event subscription, select **Service Bus Topic** as endpoint type and then click **select and endpoint** to choose a Service Bus topic.
54+
### Use Azure portal
55+
In the Azure portal, while creating an event subscription, select **Service Bus Topic** as the endpoint type and then click **select an endpoint** to choose a Service Bus topic.
3956

40-
### Using CLI to add a Service Bus topic handler
57+
:::image type="content" source="./media/handler-service-bus/topic.png" lightbox="./media/handler-service-bus/topic.png" alt-text="Screenshot showing the configuration of a Service Bus topic handler.":::
4158

42-
For Azure CLI, the following example subscribes and connects an event grid topic to a Service Bus topic:
59+
### Use Azure CLI
60+
Use the [`az eventgrid event-subscription create`](/cli/azure/eventgrid/event-subscription) command with `--endpoint-type` set to `servicebustopic` and `--endpoint` set to `/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>`. Here's an example:
4361

4462
```azurecli-interactive
4563
az eventgrid event-subscription create \
@@ -49,12 +67,52 @@ az eventgrid event-subscription create \
4967
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
5068
```
5169

70+
You can also use the [`az eventgrid topic event-subscription`](/cli/azure/eventgrid/topic/event-subscription) command for custom topics, the [`az eventgrid system-topic event-subscription`](/cli/azure/eventgrid/system-topic/event-subscription) command for system topics, and the [`az eventgrid partner topic event-subscription create`](/cli/azure/eventgrid/partner/topic/event-subscription#az-eventgrid-partner-topic-event-subscription-create) command for partner topics.
71+
72+
### Use Azure PowerShell
73+
Use the [New-AzEventGridSubscription](/powershell/module/az.eventgrid/new-azeventgridsubscription) command with `-EndpointType` set to `servicebustopic` and `-Endpoint` set to `/subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>`. Here's an example:
74+
75+
76+
```azurepowershell-interactive
77+
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
78+
-TopicName Topic1 `
79+
-EndpointType servicebustopic `
80+
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
81+
-EventSubscriptionName EventSubscription1
82+
```
83+
84+
You can also use the [`New-AzEventGridSystemTopicEventSubscription`](/powershell/module/az.eventgrid/new-azeventgridsystemtopiceventsubscription) command for system topics, and the [`New-AzEventGridPartnerTopicEventSubscription`](/powershell/module/az.eventgrid/new-azeventgridpartnertopiceventsubscription) command for partner topics.
85+
86+
5287
[!INCLUDE [event-grid-message-headers](./includes/event-grid-message-headers.md)]
5388

5489
When sending an event to a Service Bus queue or topic as a brokered message, the `messageid` of the brokered message is an internal system ID.
5590

5691
The internal system ID for the message will be maintained across redelivery of the event so that you can avoid duplicate deliveries by turning on **duplicate detection** on the service bus entity. We recommend that you enable duration of the duplicate detection on the Service Bus entity to be either the time-to-live (TTL) of the event or max retry duration, whichever is longer.
5792

93+
## Delivery properties
94+
Event subscriptions allow you to set up HTTP headers that are included in delivered events. This capability allows you to set custom headers that are required by a destination. You can set custom headers on the events that are delivered to Azure Service Bus queues and topics.
95+
96+
Azure Service Bus supports the use of following message properties when sending single messages.
97+
98+
| Header name | Header type |
99+
| :-- | :-- |
100+
| `MessageId` | Dynamic |
101+
| `PartitionKey` | Static or dynamic |
102+
| `SessionId` | Static or dynamic |
103+
| `CorrelationId` | Static or dynamic |
104+
| `Label` | Static or dynamic |
105+
| `ReplyTo` | Static or dynamic |
106+
| `ReplyToSessionId` | Static or dynamic |
107+
| `To` |Static or dynamic |
108+
| `ViaPartitionKey` | Static or dynamic |
109+
110+
> [!NOTE]
111+
> - The default value of `MessageId` is the internal ID of the Event Grid event. You can override it. For example, `data.field`.
112+
> - You can only set either `SessionId` or `MessageId`.
113+
114+
For more information, see [Custom delivery properties](delivery-properties.md).
115+
58116
## REST examples (for PUT)
59117

60118
### Service Bus queue
@@ -146,28 +204,6 @@ The internal system ID for the message will be maintained across redelivery of t
146204
}
147205
```
148206

149-
## Delivery properties
150-
Event subscriptions allow you to set up HTTP headers that are included in delivered events. This capability allows you to set custom headers that are required by a destination. You can set custom headers on the events that are delivered to Azure Service Bus queues and topics.
151-
152-
Azure Service Bus supports the use of following message properties when sending single messages.
153-
154-
| Header name | Header type |
155-
| :-- | :-- |
156-
| `MessageId` | Dynamic |
157-
| `PartitionKey` | Static or dynamic |
158-
| `SessionId` | Static or dynamic |
159-
| `CorrelationId` | Static or dynamic |
160-
| `Label` | Static or dynamic |
161-
| `ReplyTo` | Static or dynamic |
162-
| `ReplyToSessionId` | Static or dynamic |
163-
| `To` |Static or dynamic |
164-
| `ViaPartitionKey` | Static or dynamic |
165-
166-
> [!NOTE]
167-
> - The default value of `MessageId` is the internal ID of the Event Grid event. You can override it. For example, `data.field`.
168-
> - You can only set either `SessionId` or `MessageId`.
169-
170-
For more information, see [Custom delivery properties](delivery-properties.md).
171207

172208
## Next steps
173209
See the [Event handlers](event-handlers.md) article for a list of supported event handlers.

articles/event-grid/handler-webhooks.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ ms.date: 11/17/2022
66
---
77

88
# Webhooks, Automation runbooks, Logic Apps as event handlers for Azure Event Grid events
9-
10-
You can also use any WebHook as an event handler for events forwarded by Event Grid. The WebHook doesn't need to be hosted in Azure to handle events. Event Grid supports only HTTPS Webhook endpoints. You can also use an Azure Automation workbook or an Azure logic app as an event handler via webhooks. This article provides you links to conceptual, quickstart, and tutorial articles that provide you with more information.
9+
An event handler receives events from an event source via Event Grid, and processes those events. You can use any WebHook as an event handler for events forwarded by Event Grid. The WebHook doesn't need to be hosted in Azure to handle events. Event Grid supports only HTTPS Webhook endpoints. You can also use an Azure Automation workbook or an Azure logic app as an event handler via webhooks. This article provides you links to conceptual, quickstart, and tutorial articles that provide you with more information.
1110

1211
> [!NOTE]
1312
> Even though you can use **Webhook** as an **endpoint type** to configure an Azure function as an event handler, use **Azure Function** as an endpoint type. For more information, see [Azure function as an event handler](handler-functions.md).
89.8 KB
Loading
87.7 KB
Loading

0 commit comments

Comments
 (0)