Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs de viktigaste begreppen och funktionerna som är associerade med namnområdesämnen.
Händelser
En händelse är den minsta mängd information som helt beskriver något som hände i ett system. En händelse kallas ofta för en diskret händelse eftersom den representerar ett distinkt, fristående faktum om ett system som ger användbar insikt. Varje händelse har gemensam information som source händelsen, time händelsen ägde rum och en unik identifierare. Varje händelse har också en type, som vanligtvis är en unik identifierare som beskriver vilken typ av meddelande händelsen används för.
Till exempel, en händelse som handlar om en fil som har skapats i Azure Storage innehåller information om filen, såsom värdet lastTimeModified. En Event Hubs-händelse har URL:en för den insamlade filen. En händelse om en ny beställning i din mikrotjänst Orders kan ha ett orderId-attribut och ett URL-attribut för beställningens tillståndsrepresentation. Några fler exempel på händelsetyper är: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.
Här är en exempelhändelse:
{
"specversion" : "1.0",
"type" : "com.yourcompany.order.created",
"source" : "/orders/account/123",
"subject" : "O-28964",
"id" : "A234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"orderId" : "O-28964",
"URL" : "https://com.yourcompany/orders/O-28964"
}
}
En annan typ av händelse
Användarcommunityn refererar också till meddelanden som bär en datapunkt, till exempel en enskild enhetsläsning eller ett klick på en webbappssida, som "händelser". Du analyserar vanligtvis den här typen av händelser under ett tidsfönster för att härleda insikter och vidta en åtgärd. I Event Grid-dokumentationen kallas den här typen av händelse för en datapunkt, strömmande data eller helt enkelt telemetri. Event Grids MQTT-koordinatorfunktion (Message Queuing Telemetry Transport) använder den här typen av händelse, bland andra meddelandetyper.
Stöd för CloudEvents
Event Grid-namnområdesämnen accepterar händelser som följer CNCF(Cloud Native Computing Foundation) öppna Standard CloudEvents 1.0-specifikation med http-protokollbindningen med JSON-format. En CloudEvent är ett slags meddelande som innehåller det som kommuniceras, kallas händelsedata och metadata om det. Händelsedata i händelsedrivna arkitekturer innehåller vanligtvis information om en ändring av systemtillståndet. CloudEvents-metadata består av en uppsättning attribut som ger sammanhangsberoende information om meddelandet, till exempel var det härstammar (källsystemet) och dess typ.
Mer information finns i Stöd för CloudEvents-schema.
Utgivare
En utgivare är det program som skickar händelser till Event Grid. Det kan vara samma program där händelserna har sitt ursprung, händelsekällan. Du kan publicera händelser från ditt eget program när du använder namnområdesämnen.
Händelsekällor
En händelsekälla är platsen där händelsen inträffar. Varje händelsekälla stöder en eller flera händelsetyper. Ditt program är till exempel händelsekällan för anpassade händelser som systemet definierar. När du använder namnområdesämnen är de händelsekällor som stöds dina egna program.
Namnrymder
Ett Event Grid-namnområde är en hanteringscontainer för följande resurser:
| Resurs | Protokoll som stöds |
|---|---|
| Namnområdesämnen | HTTP |
| Ämnesområden | MQTT |
| Klienter | MQTT |
| Klientgrupper | MQTT |
| CA-certifikat | MQTT |
| Behörighetsbindningar | MQTT |
Genom att använda ett Azure Event Grid-namnrymd kan du gruppera relaterade resurser och hantera dem som en enhet i din Azure-prenumeration. Det ger dig ett unikt fullständigt kvalificerat domännamn (FQDN).
Ett namnområde exponerar två slutpunkter:
- En HTTP-endpoint för att stödja allmänna meddelandekrav genom att använda namnrymdämnen.
- En MQTT-slutpunkt för IoT-meddelanden eller lösningar som använder MQTT.
Ett namnområde innehåller även DNS-integrerade nätverksslutpunkter. Den innehåller också en rad funktioner för åtkomstkontroll och hantering av nätverksintegrering, till exempel offentlig IP-ingressfiltrering och privata länkar. Det är också containern med hanterade identiteter som används för inneslutna resurser i namnområdet.
Här är några fler punkter om namnområden:
- Ett namnrymd är en spårad resurs med
tagsochlocationegenskaper. Efter att du har skapat den kan du hitta den påresources.azure.com. - Namnet på namnområdet kan vara 3–50 tecken långt. Den kan innehålla alfanumeriska tecken, bindestreck (-) och mellanslag.
- Namnet måste vara unikt per region.
Genomflödesenheter
Dataflödesenheter (TUs) definierar ingress- och utgående händelsefrekvenskapacitet i namnområden. Mer information finns i kvoter och gränser för Azure Event Grid.
Autoscale
Autoscale justerar automatiskt antalet genomströmningsenheter som tilldelas ett Event Grid-namnrymd baserat på realtidstrafik och resursanvändning. Den övervakar kontinuerligt viktiga prestandaindikatorer och skalar kapaciteten inom de minimi- och maximumgränser du ställer in. Detta beteende hjälper till att upprätthålla jämn prestanda under arbetsbelastningstoppar och minskar kostnaderna under lågaktivitetsperioder utan att behöva manuell ingripande.
För att använda Autoscale aktiverar du det i namnrymden och anger:
- Lägsta antal genomströmningsenheter: Den lägsta kapacitetsnivån. Namnrymden skalar inte under detta värde.
- Maximal genomströmningsenhet: Kapacitetstaket. Namnrymden skalar inte över detta värde.
Event Grid utvärderar användningen över händelseingång, händelseutgång, MQTT inkommande och utgående publiceringsfrekvenser samt MQTT:s registrerade klientantal. När någon kategori överskrider skalningströskeln tilldelas fler TU:er. När alla kategorier underskrider nedskalningsgränsen frigörs TU:er. Nedkylningsperioder mellan skalningsoperationer förhindrar snabb svängning.
Automatisk skalning är användbar för MQTT-arbetslaster, där meddelandespridning och ökning av antalet prenumerationer kan förändras snabbt när enheter ansluts och kopplas från. Det är också användbart för arbetsbelastningar för händelseförmedlare med ojämna trafikmönster.
För konfigurationsdetaljer och kapacitetsgränser per TU, se Autoscale-översikten och instruktionsguiden.
Ämnen
Ett ämne innehåller händelser som har publicerats till Event Grid. Du använder vanligtvis en ämnesresurs för en samling relaterade händelser. Ämnen i ett namnområde kallas ofta namnområdesämnen.
Namnområdesämnen
Namnområdesämnen är ämnen som skapas i ett Event Grid-namnområde. Ditt program publicerar händelser till en HTTP-namnområdesslutpunkt som anger ett namnområdesavsnitt där publicerade händelser är logiskt inneslutna. När du utformar ditt program bestämmer du hur många ämnen som ska skapas. För relativt stora lösningar skapar du ett namnområdesavsnitt för varje kategori av relaterade händelser. Tänk dig till exempel ett program som hanterar användarkonton och ett annat program om kundbeställningar. Det är osannolikt att alla händelseprenumeranter vill ha händelser från båda programmen. Om du vill skilja på problem skapar du två namnområdesämnen: ett för varje program. Låt händelsekonsumenter prenumerera på ämnet enligt deras krav. För små lösningar kanske du föredrar att skicka alla händelser till ett enda ämne.
Ämnen i namnrymden har stöd för pull-leverans och push-leverans. Se när du ska använda pull- eller push-leverans för att avgöra om pull-leverans är rätt metod med tanke på dina krav.
Prenumerationer på händelser
En händelseprenumeration är en konfigurationsresurs som är associerad med ett enskilt ämne. Använd bland annat en eventprenumeration för att sätta eventvalskriterier för att definiera vilken eventsamling som är tillgänglig för en prenumerant av det totala antalet event som finns i ett ämne. Du kan filtrera händelser enligt prenumerantens krav. Du kan till exempel filtrera händelser efter deras händelsetyp. Du kan också definiera filterkriterier för händelsedataegenskaper om du använder ett JSON-objekt som värde för dataegenskapen . För mer information om resursegenskaper, se Event Grid REST API-dokumentationen .
Ett exempel på hur du skapar prenumerationer för namnområdesämnen finns i Publicera och använda meddelanden med hjälp av namnområdesämnen med HJÄLP av CLI.
Kommentar
Evenemangsprenumerationerna under ett namnrymdämne har en förenklad resursmodell jämfört med modellen som används för egen, domän-, partner- och systemämnen (Event Grid Basic). Mer information finns i Skapa, visa och hantera händelseprenumerationer.
Hämtningsbaserad leverans
Med pull-leverans ansluter ditt program till Event Grid för att läsa meddelanden med hjälp av köliknande semantik. När program ansluter till Event Grid för att använda händelser styr de händelseförbrukningshastigheten och tidsåtgången. Konsumentprogram kan också använda privata slutpunkter när de ansluter till Event Grid för att läsa händelser med privat IP-utrymme.
Pull-leverans stöder följande åtgärder för att läsa meddelanden och kontrollera meddelandetillståndet: ta emot, bekräfta, släppa, avvisa och förnya lås. Mer information finns i översikt över pull-leverans.
Dataform när du tar emot händelser med pull-leverans
När du levererar händelser med hjälp av pull-leverans innehåller Event Grid en matris med objekt som i sin tur innehåller objekten event och brokerProperties . Värdet för egenskapen event är det CloudEvent som levereras i läget för strukturerat innehåll. BrokerProperties-objektet innehåller låstoken som är associerad med cloudEvent-leveransen. Följande JSON-objekt är ett exempelsvar från en mottagningsåtgärd som returnerar två händelser:
{
"value": [
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
"deliveryCount": 2
},
"event": {
"specversion": "1.0",
"id": "A234-1234-1235",
"source": "/mycontext",
"time": "2018-04-05T17:31:00Z",
"type": "com.example.someeventtype",
"data": "some data"
}
},
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
"deliveryCount": 1
},
"event": {
"specversion": "1.0",
"id": "B688-1234-1235",
"source": "/mycontext",
"type": "com.example.someeventtype",
"time": "2018-04-05T17:31:00Z",
"data": {
"somekey" : "value",
"someOtherKey" : 9
}
}
}
]
}
Push-leverans
Med push-leverans skickar Event Grid händelser till ett mål som konfigurerats i en push-händelseprenumeration (leveransläge i). Det ger robust logik för återförsök om målet inte kan ta emot händelser.
Viktigt!
Event Grid-namnrymdernas push-leverans stöder för närvarande Azure Event Hubs som mål. I framtiden kommer Event Grid-namnområden att ha stöd för fler destinationer, inklusive alla destinationer som stöds av Event Grid Basic.
Händelseleverans för Event Hubs
Event Grid använder Event Hubs SDK för att skicka händelser till Event Hubs med AMQP. Händelser skickas som en bytematris med varje element i matrisen som innehåller en CloudEvent.
Push- och pull-leverans
Event Grid stöder leverans av push- och pull-händelser med HTTP. Med push-leverans definierar du ett mål i en händelseprenumeration, en webhook eller en Azure-tjänst som Event Grid skickar händelser till. Med hämtningsbaserad leverans ansluter prenumerantapplikationer till Event Grid för att hämta händelser. Pull-leverans stöds för ämnen i ett Event Grid-namnområde.
Viktigt!
Event Hubs stöds som mål för prenumerationer till namnområdesämnen. I kommande versioner kommer Event Grid Namespaces att stödja alla destinationer som för närvarande är tillgängliga i Event Grid Basic samt ytterligare destinationer.
När du ska använda push-leverans jämfört med pull-leverans
Nedan följer allmänna riktlinjer som hjälper dig att avgöra när du ska använda pull- eller push-distribution.
Hämtningsbaserad leverans
- Du behöver full kontroll över när händelser ska tas emot. Ditt program kanske till exempel inte är igång hela tiden, inte tillräckligt stabilt, eller så bearbetar du data vid vissa tidpunkter.
- Du behöver fullständig kontroll över händelseförbrukningen. Till exempel har en underordnad tjänst eller ett lager i ditt konsumentprogram ett problem som hindrar dig från att bearbeta händelser. I så fall gör API:et för pull-leverans det möjligt för konsumentappen att returnera en händelse som redan har lästs till brokern så att den kan levereras senare.
- Du vill använda privata länkar när du tar emot händelser, vilket endast är möjligt med pull-leveransen, inte push-leveransen.
- Du har inte möjlighet att exponera en slutpunkt och använda push-leverans, men du kan ansluta till Event Grid för att använda händelser.
Push-leverans
- Du vill undvika ständig avfrågning för att avgöra om en förändring i systemets tillstånd har inträffat. Du använder hellre Event Grid för att skicka händelser till dig när tillståndsändringar sker.
- Du har ett program som inte kan göra utgående anrop. Din organisation kan till exempel vara bekymrad över dataexfiltrering. Ditt program kan dock ta emot händelser via en offentlig slutpunkt.
Relaterat innehåll
- En introduktion till Event Grid finns i Om Event Grid.
- Information om hur du kommer igång med namnområdesämnen finns i Publicera händelser med hjälp av namnområdesavsnitt.