Dela via


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

Gå vidare