How to Use Event Grid Trigger in Azure Functions
Use an
EventGridTrigger in an Azure Function to automatically run code when an event is sent to an Event Grid topic or system event. Define the trigger in your function signature and configure the Event Grid subscription to connect the event source to your function.Syntax
The EventGridTrigger is used in Azure Functions to listen for events from Event Grid. You add it as an attribute to a function parameter that receives the event data.
Key parts:
[EventGridTrigger]: Marks the parameter as the event trigger.EventGridEvent eventGridEvent: The event data object passed to your function.Runmethod: The function entry point triggered by the event.
csharp
public static class EventGridFunction { [FunctionName("EventGridFunction")] public static void Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log) { log.LogInformation($"Event received: {eventGridEvent.EventType}"); } }
Example
This example shows a simple Azure Function using EventGridTrigger that logs the event type when an event is received.
It demonstrates how to access event data and write a log message.
csharp
using Microsoft.Azure.Functions.Worker; using Microsoft.Extensions.Logging; using Azure.Messaging.EventGrid; public class EventGridFunction { [Function("EventGridFunction")] public void Run([EventGridTrigger] EventGridEvent eventGridEvent, FunctionContext context) { var logger = context.GetLogger("EventGridFunction"); logger.LogInformation($"Event received: {eventGridEvent.EventType}"); } }
Output
Event received: Microsoft.Storage.BlobCreated
Common Pitfalls
- Not configuring the Event Grid subscription to point to your function URL causes no events to trigger the function.
- Using the wrong function signature or missing the
[EventGridTrigger]attribute prevents the function from binding to events. - Ignoring event schema differences can cause errors; always check the event data format.
- Not handling exceptions inside the function can cause retries or failures.
csharp
/* Wrong: Missing EventGridTrigger attribute */ public static void Run(EventGridEvent eventGridEvent, ILogger log) { log.LogInformation("This will not trigger correctly."); } /* Correct: Include EventGridTrigger attribute */ public static void Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log) { log.LogInformation("This triggers on Event Grid events."); }
Quick Reference
| Concept | Description |
|---|---|
| [EventGridTrigger] | Attribute to bind function parameter to Event Grid events. |
| EventGridEvent | Class representing the event data received. |
| FunctionName | Attribute to name the Azure Function. |
| Event Grid Subscription | Connects event source to your function endpoint. |
| ILogger | Used to log information inside the function. |
Key Takeaways
Use the [EventGridTrigger] attribute on a function parameter to receive Event Grid events.
Configure an Event Grid subscription to route events to your Azure Function endpoint.
Access event details through the EventGridEvent parameter inside your function.
Ensure your function signature matches the expected pattern to bind correctly.
Handle exceptions inside your function to avoid unwanted retries.