Skip to content

Commit 87f162b

Browse files
Merge pull request #294544 from spelluru/egridresources0211
Freshness review, Acrolynx, Learn Linter
2 parents b8bd265 + 201fedf commit 87f162b

File tree

4 files changed

+33
-31
lines changed

4 files changed

+33
-31
lines changed

articles/event-grid/handler-webhooks.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
---
22
title: Webhooks as event handlers for Azure Event Grid events
3-
description: Describes how you can use webhooks as event handlers for Azure Event Grid events. Azure Automation runbooks and logic apps are supported as event handlers via webhooks.
4-
ms.topic: conceptual
5-
ms.date: 01/10/2024
3+
description: Learn how to use webhooks as event handlers for Azure Event Grid events. Azure Automation runbooks and logic apps are supported as event handlers via webhooks.
4+
ms.topic: concept-article
5+
ms.date: 02/12/2025
6+
# Customer intent: As a developer or architect, I want to learn how to use Webhooks, Logic Apps, and Azure Automation runbooks as events handlers for Azure Event Grid events.
67
---
78

89
# Webhooks, Automation runbooks, Logic Apps as event handlers for Azure Event Grid events
@@ -60,5 +61,5 @@ Use **Logic Apps** to implement business processes to process Event Grid events.
6061
}
6162
```
6263

63-
## Next steps
64+
## Related content
6465
See the [Event handlers](event-handlers.md) article for a list of supported event handlers.

articles/event-grid/mqtt-overview.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
title: 'Overview of MQTT broker in Azure Event Grid'
3-
description: MQTT broker feature in Azure Event Grid enables MQTT clients to communicate with each other and with Azure services, to support IoT solutions.
3+
description: Message Queuing Telemetry Transport (MQTT) broker feature in Azure Event Grid enables MQTT clients to communicate with each other and with Azure services.
44
ms.topic: concept-article
5-
ms.date: 01/15/2024
5+
ms.date: 02/12/2025
66
author: george-guirguis
77
ms.author: geguirgu
88
ms.subservice: mqtt
@@ -30,7 +30,7 @@ The following are a list of key concepts involved in Azure Event Grid’s MQTT b
3030

3131
MQTT is a publish-subscribe messaging transport protocol that was designed for constrained environments. It's the goto communication standard for IoT scenarios due to efficiency, scalability, and reliability. MQTT broker enables clients to publish and subscribe to messages over MQTT v3.1.1, MQTT v3.1.1 over WebSockets, MQTT v5, and MQTT v5 over WebSockets protocols. The following list shows some of the feature highlights of MQTT broker:
3232
- MQTT v5 features:
33-
- **Last Will and Testament (LWT)** notifies your MQTT clients with the abrupt disconnections of other MQTT clients. You can use LWT to ensure predictable and reliable flow of communication among MQTT clients during unexpected disconnections.
33+
- **Last Will and Testament** notifies your MQTT clients with the abrupt disconnections of other MQTT clients. You can use this feature to ensure predictable and reliable flow of communication among MQTT clients during unexpected disconnections.
3434
- **User properties** allow you to add custom key-value pairs in the message header to provide more context about the message. For example, include the purpose or origin of the message so the receiver can handle the message efficiently.
3535
- **Request-response pattern** enables your clients to take advantage of the standard request-response asynchronous pattern, specifying the response topic and correlation ID in the request for the client to respond without prior configuration.
3636
- **Message expiry interval** allows you to declare to MQTT broker when to disregard a message that is no longer relevant or valid. For example, disregard stale commands or alerts.
@@ -43,7 +43,7 @@ MQTT is a publish-subscribe messaging transport protocol that was designed for c
4343
- MQTT broker is adding more MQTT v5 features in the future to align more with the MQTT specifications. The following items detail the current differences between features supported by MQTT broker and the MQTT v5 specifications: Will message, Retain flag, Message ordering, and QoS 2 aren't supported.
4444

4545
- MQTT v3.1.1 features:
46-
- **Last Will and Testament (LWT)** notifies your MQTT clients with the abrupt disconnections of other MQTT clients. You can use LWT to ensure predictable and reliable flow of communication among MQTT clients during unexpected disconnections.
46+
- **Last Will and Testament** notifies your MQTT clients with the abrupt disconnections of other MQTT clients. You can use this feature to ensure predictable and reliable flow of communication among MQTT clients during unexpected disconnections.
4747
- **Persistent sessions** ensure reliability by preserving the client's subscription information and messages when a client disconnects.
4848
- **QoS 0 and 1** provide your clients with control over the efficiency and reliability of the communication.
4949
- MQTT broker is adding more MQTT v3.1.1 features in the future to align more with the MQTT specifications. The following items detail the current differences between features supported by MQTT broker and the MQTT v3.1.1 specification: Retain flag, Message ordering, and QoS 2 aren't supported.

articles/event-grid/receive-events.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
11
---
22
title: Receive events from Azure Event Grid to an HTTP endpoint
33
description: Describes how to validate an HTTP endpoint, then receive and deserialize Events from Azure Event Grid.
4-
ms.topic: conceptual
5-
ms.date: 01/10/2024
4+
ms.topic: how-to
5+
ms.date: 02/12/2025
66
ms.devlang: csharp
77
# ms.devlang: csharp, javascript
88
ms.custom: devx-track-csharp
9+
# Customer intent: As a developer, I want to learn how to receive events from Azure Event Grid to an HTTP endpoint.
910
---
1011

1112
# Receive events to an HTTP endpoint
1213

13-
This article describes how to [validate an HTTP endpoint](end-point-validation-cloud-events-schema.md) to receive events from an Event Subscription and then receive and deserialize events. This article uses an Azure Function for demonstration purposes, however the same concepts apply regardless of where the application is hosted.
14+
This article describes how to [validate an HTTP endpoint](end-point-validation-cloud-events-schema.md) to receive events from an Event Subscription and then receive and deserialize events. This article uses an Azure Function for demonstration purposes. However the same concepts apply regardless of where the application is hosted.
1415

1516
> [!NOTE]
16-
> We recommend that you use an [Event Grid Trigger](../azure-functions/functions-bindings-event-grid.md) when triggering an Azure Function with Event Grid. It provides an easier and quicker integration between Event Grid and Azure Functions. However, note that Azure Functions' Event Grid trigger does not support the scenario where the hosted code needs to control the HTTP status code returned to Event Grid. Given this limitation, your code running on an Azure Function would not be able to return a 5XX error to initiate an event delivery retry by Event Grid, for example.
17+
> We recommend that you use an [Event Grid Trigger](../azure-functions/functions-bindings-event-grid.md) when triggering an Azure Function with Event Grid. It provides an easier and quicker integration between Event Grid and Azure Functions. However Azure Functions' Event Grid trigger doesn't support the scenario where the hosted code needs to control the HTTP status code returned to Event Grid. Given this limitation, your code running on an Azure Function wouldn't be able to return a 5XX error to initiate an event delivery retry by Event Grid, for example.
1718
1819
## Prerequisites
1920

20-
You need a function app with an HTTP triggered function.
21+
- You need a function app with an HTTP triggered function.
2122

2223
## Add dependencies
2324

2425
If you're developing in .NET, [add a dependency](../azure-functions/functions-reference-csharp.md#referencing-custom-assemblies) to your function for the `Azure.Messaging.EventGrid` [NuGet package](https://www.nuget.org/packages/Azure.Messaging.EventGrid).
2526

26-
SDKs for other languages are available via the [Publish SDKs](./sdk-overview.md#data-plane-sdks) reference. These packages have the models for native event types such as `EventGridEvent`, `StorageBlobCreatedEventData`, and `EventHubCaptureFileCreatedEventData`.
27+
SDKs for other languages are available via the [Publishing SDKs](./sdk-overview.md#data-plane-sdks) reference. These packages have the models for native event types such as `EventGridEvent`, `StorageBlobCreatedEventData`, and `EventHubCaptureFileCreatedEventData`.
2728

2829
## Endpoint validation
2930

3031
The first thing you want to do is handle `Microsoft.EventGrid.SubscriptionValidationEvent` events. Every time someone subscribes to an event, Event Grid sends a validation event to the endpoint with a `validationCode` in the data payload. The endpoint is required to echo this back in the response body to [prove the endpoint is valid and owned by you](end-point-validation-cloud-events-schema.md). If you're using an [Event Grid Trigger](../azure-functions/functions-bindings-event-grid.md) rather than a WebHook triggered Function, endpoint validation is handled for you. If you use a third-party API service (like [Zapier](https://zapier.com/) or [IFTTT](https://ifttt.com/)), you might not be able to programmatically echo the validation code. For those services, you can manually validate the subscription by using a validation URL that is sent in the subscription validation event. Copy that URL in the `validationUrl` property and send a GET request either through a REST client or your web browser.
3132

32-
In C#, the `ParseMany()` method is used to deserialize a `BinaryData` instance containing one or more events into an array of `EventGridEvent`. If you knew ahead of time that you are deserializing only a single event, you could use the `Parse` method instead.
33+
In C#, the `ParseMany()` method is used to deserialize a `BinaryData` instance containing one or more events into an array of `EventGridEvent`. If you knew ahead of time that you're deserializing only a single event, you could use the `Parse` method instead.
3334

3435
To programmatically echo the validation code, use the following code.
3536

@@ -250,7 +251,7 @@ Test the new functionality of the function by putting a [Blob storage event](./e
250251

251252
You should see the blob URL output in the function log:
252253

253-
```
254+
```bash
254255
2022-11-14T22:40:45.978 [Information] Executing 'Function1' (Reason='This function was programmatically called via the host APIs.', Id=8429137d-9245-438c-8206-f9e85ef5dd61)
255256
2022-11-14T22:40:46.012 [Information] C# HTTP trigger function processed a request.
256257
2022-11-14T22:40:46.017 [Information] Received events: [{"topic": "/subscriptions/{subscription-id}/resourceGroups/Storage/providers/Microsoft.Storage/storageAccounts/xstoretestaccount","subject": "/blobServices/default/containers/testcontainer/blobs/testfile.txt","eventType": "Microsoft.Storage.BlobCreated","eventTime": "2017-06-26T18:41:00.9584103Z","id": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e","data": {"api": "PutBlockList","clientRequestId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f","requestId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a","eTag": "0x8D4BCC2E4835CD0","contentType": "text/plain","contentLength": 524288,"blobType": "BlockBlob","url": "https://example.blob.core.windows.net/testcontainer/testfile.txt","sequencer": "00000000000004420000000000028963","storageDiagnostics": {"batchId": "dddd3d3d-ee4e-ff5f-aa6a-bbbbbb7b7b7b"}},"dataVersion": "","metadataVersion": "1"}]
@@ -385,7 +386,7 @@ You can also test this functionality live by [sending a custom event with CURL f
385386

386387
[!INCLUDE [message-headers](./includes/message-headers.md)]
387388

388-
## Next steps
389+
## Related content
389390

390391
* Explore the [Azure Event Grid Management and Publish SDKs](./sdk-overview.md)
391392
* Learn how to [post to a custom topic](./post-to-custom-topic.md)

articles/event-grid/secure-webhook-delivery.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
---
2-
title: Secure WebHook delivery with Microsoft Entra ID in Azure Event Grid
2+
title: Secure WebHook delivery with Microsoft Entra ID
33
description: Describes how to deliver events to HTTPS endpoints protected by Microsoft Entra ID using Azure Event Grid
44
ms.topic: how-to
55
ms.custom: has-azure-ad-ps-ref, azure-ad-ref-level-one-done
6-
ms.date: 02/02/2024
6+
ms.date: 02/12/2025
7+
# Customer intent: As an architect or a developer, I want to learn how to delivering events to a webhook using Microsoft Entra ID.
78
---
89

910
# Deliver events to Microsoft Entra protected endpoints
10-
This article describes how to use Microsoft Entra ID to secure the connection between your **event subscription** and your **webhook endpoint**. It uses the Azure portal for demonstration, however the feature can also be enabled using CLI, PowerShell, or the SDKs.
11+
This article describes how to use Microsoft Entra ID to secure the connection between your **event subscription** and your **webhook endpoint**. It uses the Azure portal for demonstration. However the feature can also be enabled using CLI, PowerShell, or the SDKs.
1112

1213
> [!IMPORTANT]
13-
> Additional access check has been introduced as part of create or update of event subscription on March 30, 2021 to address a security vulnerability. The subscriber client's service principal needs to be either an owner or have a role assigned on the destination application service principal. Reconfigure your Microsoft Entra Application following the new instructions below.For an overview of Microsoft Entra applications and service principals, see [Microsoft identity platform (v2.0) overview](/entra/identity-platform/v2-overview).
14+
> Extra access check was introduced as part of create or update of event subscription on March 30, 2021 to address a security vulnerability. The subscriber client's service principal needs to be either an owner or have a role assigned on the destination application service principal. Reconfigure your Microsoft Entra Application following the new instructions in this article. For an overview of Microsoft Entra applications and service principals, see [Microsoft identity platform (v2.0) overview](/entra/identity-platform/v2-overview).
1415
1516
## Scenarios
1617
This article explains how to implement the following two scenarios in detail:
@@ -63,9 +64,9 @@ This section shows how to configure the event subscription by using a Microsoft
6364
> [!NOTE]
6465
> You don't need to modify the value of **$eventGridAppId**. In this script, **AzureEventGridSecureWebhookSubscriber** is set for the **$eventGridRoleName**. Remember, you must be a member of the [Microsoft Entra Application Administrator role](/entra/identity/role-based-access-control/permissions-reference#all-roles) or be an owner of the service principal of webhook app in Microsoft Entra ID to execute this script.
6566
66-
If you see the following error message, you need to elevate to the service principal. An extra access check has been introduced as part of create or update of event subscription on March 30, 2021 to address a security vulnerability. The subscriber client's service principal needs to be either an owner or have a role assigned on the destination application service principal.
67+
If you see the following error message, you need to elevate to the service principal. An extra access check was introduced as part of create or update of event subscription on March 30, 2021 to address a security vulnerability. The subscriber client's service principal needs to be either an owner or have a role assigned on the destination application service principal.
6768

68-
```
69+
```powershell
6970
New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
7071
Code: Authorization_RequestDenied
7172
Message: Insufficient privileges to complete the operation.
@@ -137,7 +138,7 @@ This section shows how to configure the event subscription by using a Microsoft
137138
10. If everything was correctly configured, you can successfully create the webhook subscription in your Event Grid topic.
138139
139140
> [!NOTE]
140-
> At this point, Event Grid is now passing the Microsoft Entra bearer token to the webhook client in every message. You'll need to validate the authorization token in your webhook.
141+
> At this point, Event Grid is now passing the Microsoft Entra bearer token to the webhook client in every message. You need to validate the authorization token in your webhook.
141142
142143
<a name='deliver-events-to-a-webhook-in-a-different-azure-ad-tenant'></a>
143144
@@ -182,17 +183,17 @@ Do the following steps in **Tenant B**:
182183
> [!NOTE]
183184
> You don't need to modify the value of **```$eventGridAppId```**. In this script, **AzureEventGridSecureWebhookSubscriber** is set for **```$eventGridRoleName```**. Remember, you must be a member of the [Microsoft Entra Application Administrator role](/entra/identity/role-based-access-control/permissions-reference#all-roles) or be an owner of the service principal of webhook app in Microsoft Entra ID to execute this script.
184185
185-
If you see the following error message, you need to elevate to the service principal. An extra access check has been introduced as part of create or update of event subscription on March 30, 2021 to address a security vulnerability. The subscriber client's service principal needs to be either an owner or have a role assigned on the destination application service principal.
186+
If you see the following error message, you need to elevate to the service principal. An extra access check was introduced as part of create or update of event subscription on March 30, 2021 to address a security vulnerability. The subscriber client's service principal needs to be either an owner or have a role assigned on the destination application service principal.
186187
187-
```
188+
```powershell
188189
New-MgServicePrincipalAppRoleAssignment: Error occurred while executing NewServicePrincipalAppRoleAssignment
189190
Code: Authorization_RequestDenied
190191
Message: Insufficient privileges to complete the operation.
191192
```
192193
193194
### Tenant A
194195
195-
Back in **Tenant A**, do the following steps:
196+
Now, in **Tenant A**, do the following steps:
196197
197198
1. Open the [Azure Shell](https://portal.azure.com/#cloudshell/), and sign in as the Event Grid subscription writer Microsoft Entra Application by running the command.
198199
@@ -206,15 +207,14 @@ Back in **Tenant A**, do the following steps:
206207
```
207208
208209
> [!NOTE]
209-
> In this scenario we are using an Event Grid System Topic. See [here](/cli/azure/eventgrid), if you want to create a subscription for custom topics or Event Grid domains by using the Azure CLI.
210+
> In this scenario, we're using an Event Grid System Topic. See [here](/cli/azure/eventgrid), if you want to create a subscription for custom topics or Event Grid domains by using the Azure CLI.
210211
3. If everything was correctly configured, you can successfully create the webhook subscription in your Event Grid topic.
211212
212213
> [!NOTE]
213-
> At this point, Event Grid is now passing the Microsoft Entra Bearer token to the webhook client in every message. You'll need to validate the Authorization token in your webhook.
214+
> At this point, Event Grid is now passing the Microsoft Entra Bearer token to the webhook client in every message. You need to validate the Authorization token in your webhook.
214215
215-
## Next steps
216+
## Related content
216217
217218
* For conceptual information, see [WebHook event delivery](end-point-validation-cloud-events-schema.md).
218-
* For information about monitoring event deliveries, see [Monitor Event Grid message delivery](monitor-event-delivery.md).
219219
* For more information about the authentication key, see [Event Grid security and authentication](security-authentication.md).
220220
* For more information about creating an Azure Event Grid subscription, see [Event Grid subscription schema](subscription-creation-schema.md).

0 commit comments

Comments
 (0)