Event Grid och tillförlitlighet
Med Azure Event Grid kan du enkelt skapa program med händelsebaserade arkitekturer. Den här lösningen har inbyggt stöd för händelser som kommer från Azure-tjänster, till exempel lagringsblobar och resursgrupper. Event Grid har även stöd för dina egna händelser med anpassade ämnen.
Mer information om hur du använder Event Grid finns i Skapa och dirigera anpassade händelser med Azure Event Grid.
Information om hur du använder Event Grid skapar en mer tillförlitlig arbetsbelastning finns i Geo-haveriberedskap på serversidan i Azure Event Grid.
Följande avsnitt är specifika för Azure Event Grid och tillförlitlighet:
- Utformningsbeaktanden
- Checklista för konfiguration
- Rekommenderade konfigurationsalternativ
- Källartefakter
Utformningsbeaktanden
Azure Event Grid tillhandahåller ett serviceavtal för drifttid. Mer information finns i SLA för Event Grid.
Checklista
Har du konfigurerat Azure Event Grid med tillförlitlighet i åtanke?
- Distribuera en Event Grid-instans per region, i händelse av en Azure-lösning för flera regioner.
- Övervaka Event Grid för misslyckad händelseleverans.
- Använd batchbaserade händelser.
- Händelsebatcherna får inte överskrida
1MB
storleken. - Konfigurera och optimera val av batchstorlek under belastningstestning.
- Se till att Event Grid-meddelanden endast accepteras med
HTTP
200-204
svar om de levereras till en slutpunkt som innehåller anpassad kod. - Övervaka Event Grid för misslyckad händelsepublicering.
Konfigurationsrekommendationer
Överväg följande rekommendationer för att optimera tillförlitligheten när du konfigurerar Azure Event Grid:
Rekommendation | beskrivning |
---|---|
Övervaka Event Grid för misslyckad händelseleverans. | Måttet Delivery Failed ökar varje gång ett meddelande inte kan levereras till en händelsehanterare (tidsgräns eller en icke-statuskod200-204 HTTP ). Om en händelse inte kan gå förlorad konfigurerar du ett DLQ-lagringskonto (Dead-Letter-Queue). Ett DLQ-konto är där händelser som inte kan levereras efter det maximala antalet återförsök placeras. Du kan också implementera ett meddelandesystem på DLQ-lagringskontot, till exempel genom att hantera en ny filhändelse via Event Grid. |
Använd batchbaserade händelser i scenarier med högt dataflöde. | Tjänsten levererar en json matris med flera händelser till prenumeranterna i stället för en matris med en händelse. Det förbrukande programmet måste kunna bearbeta dessa matriser. |
Händelsebatcherna får inte överskrida 1MB storleken. |
Om meddelandenyttolasten är stor får bara ett eller ett fåtal meddelanden plats i batchen. Den tidskrävande tjänsten måste bearbeta fler händelsebatchs. Om din händelse har en stor nyttolast kan du överväga att lagra den någon annanstans, till exempel i bloblagring, och skicka en referens i händelsen. När du integrerar med tjänster från tredje part via CloudEvents-schemat rekommenderar vi inte att du överskrider 64KB händelser. |
Konfigurera och optimera val av batchstorlek under belastningstestning. | Val av batchstorlek beror på nyttolaststorleken och meddelandevolymen. |
Övervaka Event Grid för misslyckad händelsepublicering. | Måttet Unmatched visar meddelanden som publiceras, men som inte matchas med någon prenumeration. Beroende på din programarkitektur kan det senare vara avsiktligt. |
Källartefakter
Använd följande fråga för att fastställa typ av indataschema för alla tillgängliga Event Grid-ämnen:
Resources
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']
Om du vill hämta resurs-ID för befintliga privata slutpunkter för Event Grid-domäner använder du följande fråga:
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']
Om du vill identifiera status för offentlig nätverksåtkomst för alla tillgängliga Event Grid-domäner använder du följande fråga:
Resources
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']
Om du vill identifiera brandväggsregler för alla offentliga Event Grid-domäner använder du följande fråga:
Resources
| where type == 'microsoft.eventgrid/domains' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']
Om du vill identifiera brandväggsregler för alla offentliga Event Grid-ämnen använder du följande fråga:
Resources
| where type == 'microsoft.eventgrid/topics' and properties['publicNetworkAccess'] == 'Enabled'
| project name, resourceGroup, location, subscriptionId, properties['inboundIpRules']
Om du vill hämta resurs-ID för befintliga privata slutpunkter för Event Grid-ämnen använder du följande fråga:
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']
Använd följande schema för att fastställa typ av indataschema för alla tillgängliga Event Grid-domäner:
Resources
| where type == 'microsoft.eventgrid/domains'
| project name, resourceGroup, location, subscriptionId, properties['inputSchema']
Om du vill identifiera status för offentlig nätverksåtkomst för alla tillgängliga Event Grid-ämnen använder du följande fråga:
Resources
| where type == 'microsoft.eventgrid/topics'
| project name, resourceGroup, location, subscriptionId, properties['publicNetworkAccess']