Delen via


Event Grid en betrouwbaarheid

Met Azure Event Grid kunt u eenvoudig toepassingen bouwen met op gebeurtenissen gebaseerde architecturen. Deze oplossing biedt ingebouwde ondersteuning voor gebeurtenissen die afkomstig zijn van Azure-services, zoals opslagblobs en resourcegroepen. Event Grid biedt ook ondersteuning voor uw eigen gebeurtenissen, met behulp van aangepaste onderwerpen.

Raadpleeg Aangepaste gebeurtenissen maken en routeren met Azure Event Grid voor meer informatie over het gebruik van Event Grid.

Als u wilt weten hoe u Event Grid gebruikt, maakt u een betrouwbaardere workload door te verwijzen naar geo-herstel aan de serverzijde in Azure Event Grid.

De volgende secties zijn specifiek voor Azure Event Grid en betrouwbaarheid:

  • Ontwerpoverwegingen
  • Controlelijst voor configuratie
  • Aanbevolen configuratieopties
  • Bronartefacten

Ontwerpoverwegingen

Azure Event Grid biedt een SLA voor uptime. Raadpleeg de SLA voor Event Grid voor meer informatie.

Checklijst

Hebt u Azure Event Grid geconfigureerd met betrouwbaarheid in gedachten?

  • Implementeer een Event Grid-exemplaar per regio, in het geval van een Azure-oplossing met meerdere regio's.
  • Bewaak Event Grid op mislukte levering van gebeurtenissen.
  • Gebruik batchgebeurtenissen.
  • Gebeurtenisbatches kunnen niet groter zijn dan 1MB de grootte.
  • Configureer en optimaliseer selectie van batchgrootte tijdens het testen van de belasting.
  • Zorg ervoor dat Event Grid-berichten alleen worden geaccepteerd met HTTP 200-204 antwoorden als ze worden geleverd aan een eindpunt dat aangepaste code bevat.
  • Bewaak Event Grid voor mislukte publicatie van gebeurtenissen.

Aanbevelingen voor configuratie

Houd rekening met de volgende aanbevelingen om de betrouwbaarheid te optimaliseren bij het configureren van Azure Event Grid:

Aanbeveling Beschrijving
Bewaak Event Grid op mislukte levering van gebeurtenissen. De Delivery Failed metrische waarde neemt toe wanneer een bericht niet kan worden bezorgd bij een gebeurtenis-handler (time-out of een niet-statuscode200-204 HTTP ). Als een gebeurtenis niet verloren kan gaan, stelt u een DLQ-opslagaccount (Dead-Letter-Queue) in. Een DLQ-account is waar gebeurtenissen die niet kunnen worden geleverd nadat het maximumaantal nieuwe pogingen is geplaatst. Implementeer eventueel een meldingssysteem in het DLQ-opslagaccount door bijvoorbeeld een nieuwe bestands gebeurtenis via Event Grid te verwerken.
Gebruik batchgebeurtenissen in scenario's met hoge doorvoer. De service levert een json matrix met meerdere gebeurtenissen aan de abonnees, in plaats van een matrix met één gebeurtenis. De verbruikende toepassing moet deze matrices kunnen verwerken.
Gebeurtenisbatches kunnen niet groter zijn dan 1MB de grootte. Als de nettolading van het bericht groot is, passen slechts één of enkele berichten in de batch. De verbruikende service moet meer gebeurtenisbatches verwerken. Als uw gebeurtenis een grote nettolading heeft, kunt u overwegen deze ergens anders op te slaan, zoals in blobopslag, en een verwijzing door te geven in de gebeurtenis. Wanneer u integreert met services van derden via het CloudEvents-schema, wordt het afgeraden gebeurtenissen te overschrijden 64KB .
Configureer en optimaliseer selectie van batchgrootte tijdens het testen van de belasting. Selectie van batchgrootte is afhankelijk van de grootte van de nettolading en het berichtvolume.
Bewaak Event Grid voor mislukte publicatie van gebeurtenissen. In de Unmatched metrische gegevens worden berichten weergegeven die zijn gepubliceerd, maar die niet overeenkomen met een abonnement. Afhankelijk van uw toepassingsarchitectuur is dit mogelijk opzettelijk.

Bronartefacten

Gebruik de volgende query om het type invoerschema voor alle beschikbare Event Grid-onderwerpen te bepalen:

Resources 
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

Gebruik de volgende query om de resource-id van bestaande privé-eindpunten voor Event Grid-domeinen op te halen:

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']

Gebruik de volgende query om de status van openbare netwerktoegang voor alle beschikbare Event Grid-domeinen te identificeren:

Resources 
| where type == 'microsoft.eventgrid/domains' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

Gebruik de volgende query om firewallregels te identificeren voor alle openbare Event Grid-domeinen:

Resources 
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

Gebruik de volgende query om firewallregels te identificeren voor alle openbare Event Grid-onderwerpen:

Resources 
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']

Gebruik de volgende query om de resource-id van bestaande privé-eindpunten voor Event Grid-onderwerpen op te halen:

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']

Gebruik het volgende schema om het type invoerschema voor alle beschikbare Event Grid-domeinen te bepalen:

Resources 
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']

Gebruik de volgende query om de status van openbare netwerktoegang te identificeren voor alle beschikbare Event Grid-onderwerpen:

Resources 
| where type == 'microsoft.eventgrid/topics' 
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']

Volgende stap