Event Driven Architecture mit Azure Event Grid
aktualisiert am 9. Juni 2026von Stefan Sørensen

Event Driven Architecture mit Azure Event Grid

Wie du eine skalierbare E-Commerce-Architektur mit Azure Event Grid und Azure Functions aufbaust.

AzureEvent GridEvent Driven ArchitectureAzure Functions

Sarah möchte eine skalierbare und eventgesteuerte Architektur für ein E-Commerce-System aufbauen, das mehrere Services integriert. Das Ziel ist ein flexibles, wartbares und gut skalierbares System, das in Echtzeit auf Bestellungen, Zahlungen und Lagerbestände reagieren kann.

Grundlagen

Schritt 1: Definition der Events und Microservices

Beispiele für Events:

  1. OrderPlaced
  2. PaymentProcessed
  3. InventoryUpdated
  4. OrderShipped

Typische Services:

  • Order Service
  • Payment Service
  • Inventory Service
  • Shipping Service

Schritt 2: Architektur-Setup mit Azure Services

  • Azure Event Grid
  • Azure Functions
  • Azure Service Bus
  • Azure Cosmos DB
  • Azure Logic Apps

Schritt 3: EDA Workflow

Order Placement

  • Order Service veröffentlicht OrderPlaced.
  • Inventory Service verarbeitet das Event.
  • InventoryUpdated wird veröffentlicht.

Payment Processing

  • Payment Service verarbeitet OrderPlaced.
  • PaymentProcessed oder PaymentFailed wird veröffentlicht.

Order Shipping

  • Shipping Service verarbeitet PaymentProcessed.
  • OrderShipped wird veröffentlicht.

Schritt 4: Überwachung und Skalierung

Azure Monitor und Application Insights überwachen die Lösung. Azure Functions skaliert automatisch.

Beispiel mit Azure Event Grid und Azure Functions

Voraussetzungen

  • Azure-Konto
  • Azure CLI
  • Azure Functions Core Tools oder VS Code Erweiterung

Azure Event Grid Topic erstellen

RESOURCE_GROUP="sarah-ecommerce-rg"
LOCATION="westeurope"
EVENT_GRID_TOPIC_NAME="sarah-order-events-topic"

az group create   --name "$RESOURCE_GROUP"   --location "$LOCATION"

az eventgrid topic create   --name "$EVENT_GRID_TOPIC_NAME"   --resource-group "$RESOURCE_GROUP"   --location "$LOCATION"

OrderPlacedFunction

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.EventGrid;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;

public static class OrderPlacedFunction
{
    [FunctionName("OrderPlacedFunction")]
    public static void Run(
        [EventGridTrigger] JObject eventGridEvent,
        ILogger log)
    {
        log.LogInformation($"OrderPlaced event received: {eventGridEvent}");
    }
}

PaymentProcessedFunction

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.EventGrid;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;

public static class PaymentProcessedFunction
{
    [FunctionName("PaymentProcessedFunction")]
    public static void Run(
        [EventGridTrigger] JObject eventGridEvent,
        ILogger log)
    {
        log.LogInformation($"PaymentProcessed event received: {eventGridEvent}");
    }
}

OrderShippedFunction

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.EventGrid;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json.Linq;

public static class OrderShippedFunction
{
    [FunctionName("OrderShippedFunction")]
    public static void Run(
        [EventGridTrigger] JObject eventGridEvent,
        ILogger log)
    {
        log.LogInformation($"OrderShipped event received: {eventGridEvent}");
    }
}

Deployment

func azure functionapp publish order-placed-func
func azure functionapp publish payment-processed-func
func azure functionapp publish order-shipped-func

Event Grid Endpoint

https://<EVENT_GRID_TOPIC_NAME>.<region>-1.eventgrid.azure.net/api/events

Zugriffsschlüssel abrufen

az eventgrid topic key list   --name "$EVENT_GRID_TOPIC_NAME"   --resource-group "$RESOURCE_GROUP"

Event mit curl senden

curl -X POST   -H "aeg-sas-key: <EVENT_GRID_TOPIC_KEY>"   -H "Content-Type: application/json"   -d '[{
    "id": "1234",
    "subject": "OrderPlaced",
    "data": {
      "OrderId": "1234"
    },
    "eventType": "OrderPlaced",
    "eventTime": "2025-04-10T12:00:00Z",
    "dataVersion": "1.0"
  }]'   https://<EVENT_GRID_TOPIC_NAME>.<region>-1.eventgrid.azure.net/api/events

Fazit

Azure Event Grid und Azure Functions ermöglichen eine skalierbare Event-Driven-Architecture, die Services entkoppelt und die Wartbarkeit erhöht.

Quellen

Stefan Sørensen
Stefan Sørensen
Cloud Enterprise Architect