Event Grid und ereignisgesteuerte Architektur
Leiten Sie Ereignisse von Azure-Diensten und benutzerdefinierten Publishern mit Event Grid weiter, verteilen Sie sie auf mehrere Abonnenten und vergleichen Sie Event Grid mit Event Hubs und Service Bus.
Event Grid und ereignisgesteuerte Architektur ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was ist eine ereignisgesteuerte Architektur?
In einer ereignisgesteuerten Architektur kommunizieren Komponenten, indem sie Ereignisse veröffentlichen und abonnieren, anstatt sich direkt gegenseitig aufzurufen. Eine Komponente (der Produzent) löst ein Ereignis aus, wenn etwas Bedeutsames geschieht – etwa wenn eine Datei hochgeladen oder eine Bestellung aufgegeben wird oder ein Gerät einen Messwert sendet. Andere Komponenten (Abonnenten) reagieren unabhängig und asynchron auf die Ereignisse, die für sie relevant sind. Dadurch werden Produzenten und Konsumenten entkoppelt, was Skalierbarkeit, Ausfallsicherheit und Wartbarkeit verbessert.
Was ist Azure Event Grid?
Azure Event Grid ist ein vollständig verwalteter Dienst für das Ereignisrouting, der Ereignisse aus Quellen (Herausgebern) mithilfe eines Push-Modells an Handler (Abonnenten) übermittelt. Event Grid ist für reaktive, einzelne Ereignisse ausgelegt – etwas hat sich geändert und Sie müssen sofort reagieren. Der Dienst garantiert die Zustellung mindestens einmal, führt automatisch Wiederholungsversuche durch, unterstützt Filter, sodass Abonnenten nur relevante Ereignisse erhalten, und kann Ereignisse an Azure Functions, Logic Apps, Webhooks, Event Hubs und Service-Bus-Warteschlangen weiterleiten.
Event-Grid-Themen und Ereignisabonnements
Herausgeber senden Ereignisse an ein Event-Grid-Thema. Abonnenten erstellen Ereignisabonnements für ein Thema und geben dabei einen Endpunkt sowie optionale Filterregeln an. Ein einzelnes Thema kann mehrere Abonnements haben – jedes Abonnement erhält eine unabhängige Kopie der passenden Ereignisse. Azure-Dienste wie Blob Storage, Resource Manager, Service Bus und Azure Container Registry sind integrierte Ereignisquellen mit Systemthemen, die keine zusätzliche Konfiguration erfordern.
# Create a custom Event Grid topic
az eventgrid topic create \
--name MyEventTopic \
--resource-group MyRG \
--location eastus
# Create a subscription routing to an Azure Function
az eventgrid event-subscription create \
--name myFunctionSub \
--source-resource-id '/subscriptions/.../providers/Microsoft.EventGrid/topics/MyEventTopic' \
--endpoint '/subscriptions/.../providers/Microsoft.Web/sites/myFunctionApp/functions/EventHandler'Ereignisschema
In Event Grid veröffentlichte Ereignisse folgen einem standardisierten JSON-Schema mit Pflichtfeldern: id (eindeutiger Bezeichner), eventType (z. B. Microsoft.Storage.BlobCreated), subject (Pfad zur Ereignisressource), eventTime (Zeitstempel nach ISO 8601), dataVersion und data (ereignisspezifische Nutzdaten). Event Grid unterstützt außerdem das CloudEvents-Schema (CNCF-Standard), um die Interoperabilität mit anderen Ereignisplattformen zu ermöglichen.
// Event Grid event payload (Event Grid schema)
[
{
'id': 'b781910b-3000-4f19-a4c2-b6b9c4ca7a12',
'eventType': 'Microsoft.Storage.BlobCreated',
'subject': '/blobServices/default/containers/uploads/blobs/photo.jpg',
'eventTime': '2025-01-15T12:30:00.000Z',
'data': {
'api': 'PutBlockList',
'url': 'https://mystorageacct.blob.core.windows.net/uploads/photo.jpg',
'contentType': 'image/jpeg',
'contentLength': 524288
},
'dataVersion': '',
'metadataVersion': '1'
}
]Ereignisfilterung
Ereignisabonnements unterstützen Filterung, um die Anzahl irrelevanter Ereignisse auf der Seite der Abonnenten zu reduzieren. Sie können nach Ereignistyp filtern (nur BlobCreated, nicht BlobDeleted empfangen), nach Präfix oder Suffix des Betreffs (nur Blobs in einem bestimmten Container) oder mithilfe von erweiterten Filtern nach jedem Feld in den Ereignisdaten. Dafür stehen Operatoren wie StringContains, NumberGreaterThan und BoolEquals zur Verfügung. Die Filterung erfolgt serverseitig, sodass Abonnenten nur Ereignisse erhalten, die ihren Kriterien entsprechen.
# Subscribe to BlobCreated events for .jpg files only
az eventgrid event-subscription create \
--name jpgImageSub \
--source-resource-id '/subscriptions/.../storageAccounts/mystorageaccount' \
--endpoint 'https://myfunction.azurewebsites.net/api/ProcessImage' \
--included-event-types 'Microsoft.Storage.BlobCreated' \
--subject-ends-with '.jpg'Event Grid vs. Event Hubs vs. Service Bus
Drei Azure-Dienste verarbeiten Ereignisse und Nachrichten – wählen Sie je nach Szenario. Event Grid dient dem reaktiven Ereignisrouting (geringes Volumen, einzelne und reaktive Ereignisse, z. B. Benachrichtigungen über Ressourcenänderungen). Event Hubs dient dem Streaming von Ereignissen mit hohem Durchsatz (Millionen von Ereignissen pro Sekunde, Telemetrie, Big-Data-Pipelines). Service Bus dient dem Messaging in Unternehmen mit Reihenfolgegarantie, Deduplizierung, Dead-Lettering und Transaktionen (Auftragsverarbeitung, Finanztransaktionen).
// Decision guide:
// Event Grid — 'Something happened, react to it'
// Azure resource events, webhooks, low-latency fan-out
// Price: per event (cheap for low volume)
// Event Hubs — 'Capture a firehose of streaming data'
// IoT telemetry, log aggregation, real-time analytics
// Price: per throughput unit + capture
// Service Bus — 'Reliable message delivery between services'
// Order processing, workflow steps, dead-letter queues
// Price: per operation + messaging unitsBenutzerdefinierte Ereignisse veröffentlichen
Veröffentlichen Sie benutzerdefinierte Ereignisse in einem Event-Grid-Thema, indem Sie eine einfache HTTP-POST-Anforderung mit dem Zugriffsschlüssel des Themas senden. Jeder Dienst und jede Anwendung, die HTTP-Anforderungen senden kann, kann Ereignisse veröffentlichen. Dadurch lassen sich Ereignisse problemlos aus lokalen Anwendungen, Drittanbieterdiensten oder Azure-Diensten auslösen, die Event Grid nicht nativ unterstützen. Bündeln Sie für eine effizientere Verarbeitung bis zu 1 MB an Ereignissen pro POST.
# Get the topic endpoint and key
TOPIC_ENDPOINT=$(az eventgrid topic show --name MyEventTopic --resource-group MyRG --query endpoint -o tsv)
TOPIC_KEY=$(az eventgrid topic key list --name MyEventTopic --resource-group MyRG --query key1 -o tsv)
# Publish a custom event
curl -X POST $TOPIC_ENDPOINT \
-H 'Content-Type: application/json' \
-H "aeg-sas-key: $TOPIC_KEY" \
-d '[{
"id": "event-001",
"eventType": "Contoso.OrderPlaced",
"subject": "/orders/ORD-12345",
"eventTime": "2025-01-15T12:00:00Z",
"data": { "orderId": "ORD-12345", "total": 99.99 },
"dataVersion": "1.0"
}]'Dead-Letter- und Wiederholungsrichtlinien
Wenn ein Zustellversuch für ein Ereignis fehlschlägt (der Abonnent gibt einen HTTP-Statuscode außerhalb des 2xx-Bereichs zurück), führt Event Grid bis zu 24 Stunden lang Wiederholungsversuche mit exponentiellem Backoff und Jitter durch (konfigurierbar auf bis zu 72 Stunden) und unternimmt maximal 30 Versuche. Nach Ausschöpfung der Wiederholungsversuche kann Event Grid nicht zugestellte Ereignisse per Dead-Lettering in einem Azure-Blob-Storage-Container ablegen, damit sie manuell untersucht werden können. Konfigurieren Sie Dead-Lettering, wenn eine zuverlässige Ereigniszustellung entscheidend ist und Sie fehlgeschlagene Ereignisse prüfen oder erneut verarbeiten müssen.
# Configure dead-letter storage and retry for a subscription
az eventgrid event-subscription update \
--name myFunctionSub \
--source-resource-id '/subscriptions/.../topics/MyEventTopic' \
--deadletter-endpoint '/subscriptions/.../storageAccounts/mystg/blobServices/default/containers/deadletter' \
--max-delivery-attempts 30 \
--event-ttl 1440 # 24 hours in minutesÜbersicht über Azure Event Hubs
Azure Event Hubs ist eine Plattform für verteilte Datenströme, die Millionen von Ereignissen pro Sekunde empfangen und verarbeiten kann. Sie verwendet ein partitioniertes Konsumentenmodell – Ereignisse werden auf Partitionen verteilt, und jede Konsumentengruppe liest Ereignisse unabhängig und in ihrem eigenen Tempo. Dadurch können mehrere Konsumenten denselben Datenstrom ohne Abstimmung verarbeiten. Zu den häufigen Anwendungsfällen gehören die Erfassung von IoT-Telemetrie, die Aggregation von Anwendungsprotokollen, die Analyse von Clickstreams und Datenpipelines für Echtzeitdashboarddaten.
# Create an Event Hubs namespace and hub
az eventhubs namespace create \
--name myEventHubNS \
--resource-group MyRG \
--location eastus \
--sku Standard
az eventhubs eventhub create \
--name telemetry \
--namespace-name myEventHubNS \
--resource-group MyRG \
--partition-count 8 \
--message-retention 3 # Days to retain eventsAzure Service Bus für zuverlässiges Messaging
Azure Service Bus ist ein Messaging-Broker für Unternehmen, der Warteschlangen (Punkt-zu-Punkt) sowie Themen mit Abonnements (Publish-Subscribe) bereitstellt. Im Gegensatz zu Event Grid (Fire-and-forget) und Event Hubs (Streaming) garantiert Service Bus die geordnete Zustellung (FIFO-Warteschlangen), bietet Duplikaterkennung, Dead-Letter-Warteschlangen für Verarbeitungsfehler, Nachrichtensitzungen für die gruppierte Verarbeitung und Transaktionen – alles wichtige Funktionen für die Verarbeitung von Finanztransaktionen und Aufträgen.
# Create a Service Bus namespace and queue
az servicebus namespace create \
--name myServiceBusNS \
--resource-group MyRG \
--location eastus \
--sku Standard
az servicebus queue create \
--name order-processing \
--namespace-name myServiceBusNS \
--resource-group MyRG \
--enable-dead-lettering-on-message-expiration true \
--max-delivery-count 10 # Move to dead-letter after 10 failed attemptsPraktisches ereignisgesteuertes Muster: Dateiverarbeitung
Ein häufig verwendetes ereignisgesteuertes Azure-Muster: Ein Benutzer lädt eine Datei in Blob Storage hoch, wodurch ein BlobCreated-Ereignis an Event Grid ausgelöst wird. Event Grid leitet das Ereignis an eine Azure Function weiter, die die Datei verarbeitet (ein Bild skaliert, Text extrahiert oder Daten validiert) und das Ergebnis in die Azure SQL Database schreibt. Wenn die Verarbeitung fehlschlägt, wird das Ereignis per Dead-Lettering in einem Speichercontainer abgelegt. Diese gesamte Pipeline benötigt weder Polling noch dauerhaft laufende Compute-Ressourcen im Leerlauf.
// Azure Function: process image on BlobCreated event
module.exports = async function (context, eventGridEvent) {
const blobUrl = eventGridEvent.data.url;
const blobName = eventGridEvent.subject.split('/blobs/').pop();
context.log('Processing image:', blobName);
// Process via Cognitive Services Vision API
const tags = await analyzeImage(blobUrl);
// Write metadata to Cosmos DB via output binding
context.bindings.cosmosOutput = {
id: blobName,
tags,
processedAt: new Date().toISOString()
};
context.log('Processing complete for:', blobName);
};Kurztest
Testen Sie Ihr Verständnis der Konzepte aus Microsoft Azure Fundamentals (AZ-900) in dieser Lektion.
Zusammenfassung der Lektion
In dieser Lektion haben Sie Folgendes gelernt: Azure Event Grid leitet einzelne Ereignisse per Push-Zustellung von Herausgebern an Abonnenten weiter und unterstützt dabei Filterung und Dead-Lettering; Sie kennen nun den wesentlichen Unterschied zwischen Event Grid (reaktive Ereignisse), Event Hubs (Streaming) und Service Bus (zuverlässiges Messaging für Unternehmen). Außerdem wissen Sie, wie sich ereignisgesteuerte Pipelines erstellen lassen, indem Blob-Storage-Ereignisse über Event Grid an Azure Functions weitergeleitet werden. Als Nächstes befassen wir uns mit Azure-DevOps-Diensten.
Häufig gestellte Fragen
Ist die Lektion „Event Grid und ereignisgesteuerte Architektur“ kostenlos?
Ja — der vollständige Text von „Event Grid und ereignisgesteuerte Architektur“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Event Grid und ereignisgesteuerte Architektur“?
Leiten Sie Ereignisse von Azure-Diensten und benutzerdefinierten Publishern mit Event Grid weiter, verteilen Sie sie auf mehrere Abonnenten und vergleichen Sie Event Grid mit Event Hubs und Service B… Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?
Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Event Grid und ereignisgesteuerte Architektur“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?
Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Trigger und Bindings von Azure Functions
- Durable Functions für zustandsbehaftete Workflows
- Azure Logic Apps
- Event Grid und ereignisgesteuerte Architektur