Azure Functions and Azure Event Grid
  • 09 Sep 2022
  • 1 Minute to read
  • Contributors
  • Comment
  • Dark
    Light
  • PDF

Azure Functions and Azure Event Grid

  • Comment
  • Dark
    Light
  • PDF

#ServerlessTips - Azure Functions
Author: Steef-Jan Wiggers Azure MVP

Event Grid is a service in Azure allowing the central management of Events – adhering to a proprietary schema or CNCF supported open-source cloud events. The concept of this service is straight forward; it lets you push events to a so-called Topic. The Topic has one or more subscribers of the event and thus will push events to those subscribers. One of those subscribers can be Azure Functions – accordingly act as an event handler.

Tip 18 - Azure EventGrid and Functions Pic 1.png

With a function as an event handler, you can process events you are interested in using code. Azure Functions provides a template for you with an Event Grid support through a binding.

#r "Microsoft.Azure.EventGrid"
using Microsoft.Azure.EventGrid.Models;

public static void Run(EventGridEvent eventGridEvent,ICollector<string> outputSbMsg, ILogger log)
{
    log.LogInformation(eventGridEvent.Data.ToString());

    //output to service bus queue
    outputSbMsg.Add(eventGridEvent.Data.ToString());
}

Once you pick the Event Grid template and build your logic around it – can be as simple as routing the event to a Service Bus queue. Finally, you can add your function as an Event Grid subscription.

Tip 18 - Azure EventGrid and Functions Pic 2.png

When configuring the event grid subscription you need to provide a name, choose the schema (Event Grid is proprietary, Cloud Events open source, or your own input schema), pick a Topic (can be built in Topics in services such as storage), and select the resource. Next, you define a filter(s) for your subscription – subject based filters and/or any advanced filters. Lastly, you can enable dead-lettering, retries, and a subscription expiry date if necessary.

With Azure Functions and Event Grid you can build a complete event-driven cloud-native solution in Azure.

Azure-functions.png


Was this article helpful?