Deepanshu
Deepanshu

Reputation: 498

How to subscribe to Azure Event Grid Topic using HTTP Webhook activity in Azure Logic App

I have a scenario in which I want to use Azure Logic App / Azure Power App to use the HTTP Webhook activity to subscribe to Event Grid Topic. I have been using Azure Event Grid connector/activity to connect with Event Grid in the Logic App but now my manager wants to move from native connector to HTTP Webhook activity. Surprisingly I have been look into this but I could not find any resource online which demonstrate/suggest how HTTP Webhook activity can be used.

I tried to use the below flow but I am getting this error

"Unauthorized","message":"The request authorization key is not authorized for EVENTGRIDNAME.NORTHEUROPE-1.EVENTGRID.AZURE.NET.

enter image description here

Upvotes: 0

Views: 2618

Answers (2)

Roman Kiss
Roman Kiss

Reputation: 8265

The following is an example of using the Http Webhook Trigger for subscribing on the Azure Event Grid (AEG) Topic:

enter image description here

The Http Webhook Trigger has a responsibility to create an AEG subscription with a callback event handler destination endpoint during its subscribing process and also for deleting this subscription from the AEG (unsubscribing process). Based on the AEG REST APIs in my example:

Subscribe - Method:

PUT

Subscribe - URI:

https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxxxx/providers/Microsoft.EventGrid/topics/xxxxx/providers/Microsoft.EventGrid/eventSubscriptions/mySubscription123?api-version=2021-12-01

Subscribe - Body:

  {
    "properties": {
      "destination": {
        "endpointType": "WebHook",
        "properties": {
          "endpointUrl": @{listCallbackUrl()}
          }
       }
   }
 }

Subscribe - Headers:

 Authorization  Bearer eyJ0eXAiOiJKV1QiLCJ....

Unsubscribe - Method:

DELETE

Unsubscribe - URI:

https://management.azure.com/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/xxxxxx/providers/Microsoft.EventGrid/topics/xxxxx/providers/Microsoft.EventGrid/eventSubscriptions/mySubscription123?api-version=2021-12-01

Unsubscribe - Headers:

 Authorization  Bearer eyJ0eXAiOiJKV1QiLCJ....

Note, that the Authorization header is required for using the AEG REST APIs.

Also, I do recommend to read the following docs:

https://learn.microsoft.com/en-us/azure/connectors/connectors-native-webhook

https://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-create-api-app

Upvotes: 0

Tobi
Tobi

Reputation: 147

Though I have'nt done this yet myself, my first guess is that you manually need to verify your Endpoint first.

As per Code you get an Event of type "Microsoft.EventGrid.SubscriptionValidationEvent". In this Event is a validationCode included that you must send back to the EventGrid as Validation-Handshake.

https://learn.microsoft.com/en-us/azure/event-grid/receive-events#endpoint-validation

As soon as this has happended your Endpoint is usually seen as Authenticated.

Upvotes: 0

Related Questions