Event Grid und optimaler Betrieb
Mit Azure Event Grid können Sie mühelos Anwendungen mit ereignisbasierten Architekturen erstellen. Diese Lösung verfügt über integrierte Unterstützung für Ereignisse, die aus Azure-Diensten stammen, wie Speicherblobs und Ressourcengruppen. Event Grid bietet auch Unterstützung für Ihre eigenen Ereignisse mit benutzerdefinierten Themen.
Mehr Informationen über die Verwendung von Event Grid finden Sie unter Erstellen und Weiterleiten benutzerdefinierter Ereignisse mit Azure Event Grid.
Um zu verstehen, wie die Verwendung von Event Grid erstklassige Betriebsprozesse in Ihrer Workload fördert, konsultieren Sie Diagnoseprotokolle für Event Grid-Themen und Event Grid-Domänen.
Die folgenden Abschnitte sind spezifisch für Azure Event Grid und erstklassige Betriebsprozesse:
- Überlegungen zum Entwurf
- Prüfliste für die Konfiguration
- Empfohlene Konfigurationsoptionen
- Quellartefakte
Überlegungen zum Entwurf
Azure Event Grid bietet eine Uptime-SLA. Weitere Informationen finden Sie unter der SLA für Event Grid.
Checkliste
Haben Sie Azure Event Grid unter Berücksichtigung erstklassiger Betriebsprozesse konfiguriert?
- Überwachen Sie Event Grid auf fehlgeschlagene Ereignisbereitstellung.
- Verwenden Sie Batchereignisse.
- Die Größe von Ereignisbatches darf
1MB
nicht überschreiten. - Konfigurieren und optimieren Sie die Auswahl der Batchgröße während des Auslastungstests.
- Stellen Sie sicher, dass Ereignisrasternachrichten nur dann mit
HTTP
200-204
Antworten akzeptiert werden, wenn sie an einen Endpunkt gesendet werden, der benutzerdefinierten Code enthält. - Überwachen Sie Event Grid auf fehlgeschlagene Ereignisveröffentlichungen.
Konfigurationsempfehlungen
Berücksichtigen Sie beim Konfigurieren von Azure Event Grid die folgenden Empfehlungen, um erstklassige Betriebsprozesse zu erzielen:
Empfehlung | Beschreibung |
---|---|
Überwachen Sie Event Grid auf fehlgeschlagene Ereignisbereitstellung. | Die Metrik Delivery Failed wird jedes Mal erhöht, wenn eine Nachricht nicht an einen Ereignishandler übermittelt werden kann (Timeout oder anderer Statuscode als 200-204 HTTP ). Wenn ein Ereignis nicht verloren gehen darf, richten Sie ein DLQ-Speicherkonto (Dead-Letter-Queue) für nicht zustellbare Nachrichten ein. In einem DLQ-Konto werden Ereignisse gespeichert, die nach der maximalen Anzahl der Wiederholungsversuche nicht übermittelt werden können. Sie können optional ein Benachrichtigungssystem für das DLQ-Speicherkonto implementieren, indem Sie beispielsweise ein new file-Ereignis über Event Grid verarbeiten. |
Verwenden Sie Batchereignisse in Szenarios mit hohem Durchsatz. | Der Dienst übermittelt ein json -Array mit mehreren Ereignissen an die Abonnenten, anstatt ein Array mit einem Ereignis. Die Zielanwendung muss in der Lage sein, diese Arrays zu verarbeiten. |
Die Größe von Ereignisbatches darf 1MB nicht überschreiten. |
Wenn die Nachricht viele Nutzdaten beinhaltet, passen nur eine oder wenige Nachrichten in den Batch. Der Zieldienst muss dann mehr Ereignisbatches verarbeiten. Wenn Ihr Ereignis über viele Nutzdaten verfügt, sollten Sie es an anderer Stelle speichern, beispielsweise in einem Blobspeicher, und einen Verweis im Ereignis übergeben. Bei der Integration in Drittanbieterdienste über das CloudEvents-Schema wird nicht empfohlen, eine Ereignisgröße von mehr als 64KB zu überschreiten. |
Konfigurieren und optimieren Sie die Auswahl der Batchgröße während des Auslastungstests. | Die Auswahl der Batchgröße hängt von der Nutzdatengröße und dem Nachrichtenvolumen ab. |
Überwachen Sie Event Grid auf fehlgeschlagene Ereignisveröffentlichungen. | Die Metrik Unmatched zeigt Nachrichten an, die veröffentlicht, aber keinem Abonnement zugeordnet sind. Je nach Ihrer Anwendungsarchitektur kann Letzteres beabsichtigt sein. |
Quellartefakte
Verwenden Sie die folgende Abfrage, um den Typ des Eingabeschemas für alle verfügbaren Event Grid-Themen zu bestimmen:
Resources
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']
Verwenden Sie die folgende Abfrage, um die Ressourcen-ID vorhandener privater Endpunkte für Event Grid-Domänen abzurufen:
Resources
| where type == 'microsoft.eventgrid/domains' and notnull(properties['privateEndpointConnections'])
| mvexpand properties['privateEndpointConnections']
| project-rename privateEndpointConnections = properties_privateEndpointConnections
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']
Verwenden Sie die folgende Abfrage, um den Status des öffentlichen Netzwerkzugriffs für alle verfügbaren Event Grid-Domänen zu ermitteln:
Resources
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']
Verwenden Sie die folgende Abfrage, um Firewallregeln für alle öffentlichen Event Grid-Domänen zu ermitteln:
Resources
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']
Verwenden Sie die folgende Abfrage, um Firewallregeln für alle öffentlichen Event Grid-Themen zu ermitteln:
Resources
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']
Verwenden Sie die folgende Abfrage, um die Ressourcen-ID vorhandener privater Endpunkte für Event Grid-Themen abzurufen:
Resources
| where type == 'microsoft.eventgrid/topics' and notnull(properties['privateEndpointConnections'])
| mvexpand properties['privateEndpointConnections']
| project-rename privateEndpointConnections = properties_privateEndpointConnections
| project name, resourceGroup, location, subscriptionId, privateEndpointConnections['properties']['privateEndpoint']['id']
Verwenden Sie das folgende Schema, um den Typ des Eingabeschemas für alle verfügbaren Event Grid-Domänen zu bestimmen:
Resources
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']
Verwenden Sie die folgende Abfrage, um den Status des öffentlichen Netzwerkzugriffs für alle verfügbaren Event Grid-Themen zu ermitteln:
Resources
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']