Vad är Azure Event Grid?

Azure Event Grid är en mycket skalbar och fullständigt hanterad publiceringsprenumereringstjänst för meddelandedistribution. Event Grid erbjuder flexibla mönster för meddelandeförbrukning och använder MQTT-protokoll (Message Queuing Telemetry Transport) och HTTP. Med Event Grid kan du skapa datapipelines med enhetsdata, integrera program och skapa händelsedrivna serverlösa arkitekturer.

Klienter kan publicera och prenumerera på meddelanden via MQTT v3.1.1 och v5.0-protokollen för att stödja Internet of Things (IoT)-lösningar. Via HTTP kan du använda Event Grid för att skapa händelsedrivna lösningar där en utgivartjänst meddelar att dess systemtillstånd ändras (händelser) till prenumerantprogram. Du kan konfigurera Event Grid för att skicka händelser till prenumeranter (push-leverans) eller så kan prenumeranter ansluta till Event Grid för att läsa händelser (pull-leverans). Event Grid stöder CloudEvents 1.0-specifikationen för att tillhandahålla samverkan mellan olika system.

Diagram som visar utgivare och prenumeranter med hjälp av MQTT- och HTTP-protokoll.

Azure Event Grid core-funktioner

Event Grid har två huvudfunktioner:

MQTT-meddelanden: IoT-enheter och -program kan kommunicera med varandra via MQTT. Du kan också använda Event Grid för att dirigera MQTT-meddelanden till Azure-tjänster eller anpassade slutpunkter för ytterligare dataanalys, visualisering eller lagring. Genom att använda den här integreringen med Azure-tjänster kan du skapa datapipelines som börjar med datainmatning från dina IoT-enheter.

Datadistribution med hjälp av push- och pull-leveranslägen: När som helst i en datapipeline kan HTTP-program använda meddelanden med hjälp av push- eller pull-API:er. Datakällan kan innehålla MQTT-klienters data, men den innehåller även följande datakällor som skickar sina händelser via HTTP:

  • Azure-tjänster
  • Dina anpassade program
  • Externa partneresystem för programvara som en tjänst (SaaS)

Event Grid-mekanismen för push-leverans skickar data till mål som innehåller dina egna programwebbhooks och Azure-tjänster. I följande avsnitt beskrivs varje funktion.

MQTT-meddelanden

Dina klienter kan kommunicera om anpassade MQTT-ämnesnamn genom att använda en publicish-subscribe-meddelandemodell. Event Grid stöder klienter som publicerar och prenumererar på meddelanden via MQTT v3.1.1, MQTT v3.1.1 via WebSocket, MQTT v5 och MQTT v5 via WebSocket.

Event Grid stöder även enheter och tjänster som skickar MQTT-meddelanden via HTTPS, vilket förenklar integreringen med icke-MQTT-klienter. Du kan skicka MQTT-meddelanden till molnet för dataanalys, lagring och visualiseringar, bland andra användningsområden. Den här funktionen är i förhandsversion.

Event Grid integreras med Azure IoT Operations för att överbrygga sin MQTT-mäklarfunktion på edge med Event Grid MQTT-mäklarfunktionen i molnet. Azure IoT MQTT-mäklare är en distribuerad MQTT-mäklare för edge computing som körs på Azure Arc-aktiverade Kubernetes-kluster, tillgänglig som en del av Azure IoT Operations.

MQTT-koordinatorfunktionen i Event Grid är perfekt för bland annat fordons-, mobilitets- och tillverkningsscenarier. Information om hur du skapar säkra och skalbara lösningar för att ansluta miljontals MQTT-klienter till molnet med hjälp av Azure-meddelande- och dataanalystjänster finns i referensarkitekturerna för fordon och tillverkning .

Diagram som visar dubbelriktad MQTT-kommunikation med utgivare och prenumerantklienter.

Höjdpunkter från MQTT-meddelandestöd i Event Grid:

  • Stöd för MQTT v3.1.1 och MQTT v5.0: Använder valfritt MQTT-klientbibliotek med öppen källkod för att kommunicera med tjänsten.
  • Anpassade ämnen med stöd för jokertecken: Använder din egen ämnesstruktur.
  • Publicera-prenumerera-modell: Kommunicerar effektivt med hjälp av en-till-många, många-till-en och en-till-en meddelandemodeller.
  • Inbyggd molnintegrering: Dirigerar dina MQTT-meddelanden till Azure-tjänster eller anpassade webhooks för vidare bearbetning.
  • Flexibel och detaljeradåtkomstkontrollmodell: Grupperar klienter och ämnen för att förenkla åtkomstkontrollhantering. Använder variabelstöd i ämnesmallar för detaljerad åtkomstkontroll.
  • MQTT Broker-autentiseringsmetoder: Använder X.509-certifikatautentisering, en branschautentiseringsstandard för IoT-enheter. Använder Microsoft Entra ID-autentisering, en Azure-autentiseringsstandard för program. Använder flexibla autentiseringsmönster som JWT-autentisering (OAuth 2.0 JSON Web Token), vilket är enkelt och säkert för MQTT-klienter som inte har etablerats i Azure. Använder anpassad webhookautentisering, vilket gör att externa HTTP-slutpunkter (webhooks) kan autentisera MQTT-anslutningar dynamiskt. Den här metoden använder Microsoft Entra ID JWT-validering för att säkerställa säker åtkomst.
  • Stöd för Transport Layer Security (TLS) 1.2 och TLS 1.3: Skyddar klientkommunikationen med hjälp av robusta krypteringsprotokoll.
  • Stöd för flera sessioner: Ansluter dina program med flera aktiva sessioner för att säkerställa tillförlitlighet och skalbarhet.
  • MQTT via WebSocket: Aktiverar anslutning för klienter i brandväggsbegränsade miljöer.
  • Anpassade domännamn: Stöder att tilldela egna domännamn till ett Event Grid-namnrymdens MQTT-endpoints, vilket ökar säkerheten och förenklar klientkonfigurationen.
  • Klientlivscykelhändelser: Stöder applikationer som reagerar på händelser om klientanslutningens status eller klientresursoperationer.
  • HTTP Publish: Stöder enheter och tjänster som skickar MQTT-meddelanden till Event Grid via HTTPS, vilket förenklar integrationen med icke-MQTT-klienter.
  • MQTT-kvarhållning: Säkerställer att det senast kända meddelandet i ett ämne levereras automatiskt till nya prenumeranter, vilket möjliggör omedelbar tillståndssynkronisering.
  • Delade prenumerationer: Stöder flera klienter som tar emot meddelanden från en enda prenumeration som en grupp, där mäklaren distribuerar meddelanden mellan dem för lastbalanserad, skalbar bearbetning.
  • Prenumerationsidentifierare: Stöder MQTT 5-klienter som taggar varje prenumeration med ett unikt numeriskt ID, vilket förenklar identifieringen av vilket abonnemang ett mottaget meddelande matchar när en klient hanterar flera prenumerationer.

Mer information om MQTT-koordinatorn finns i följande artiklar:

Händelsemeddelanden (HTTP)

Event Grid stöder leverans av push- och pull-händelser med hjälp av HTTP. Med pushleverans definierar du en destination i en eventprenumeration, och Event Grid skickar händelser till den destinationen. Med pull-leverans ansluter prenumerantapplikationer till Event Grid för att konsumera händelser. Event Grid har stöd för pull-leverans för ämnen i ett namnområde.

Diagram som visar push-leverans och pull-leverans med den typ av resurser som ingår.

Händelsehanterare

Med pushleverans är en händelseprenumeration en generisk konfigurationsresurs som du använder för att definiera händelsehanteraren eller destinationen till vilken Event Grid skickar händelser. Du kan till exempel skicka data till en webhook, en Azure-funktion eller händelsehubbar. För en komplett lista över stödda händelsehanterare, se:

Push-leverans jämfört med pull-leverans

Följande allmänna riktlinjer hjälper dig att bestämma när du ska använda pull- eller push-leverans.

Pull-leverans

  • Du behöver fullständig kontroll över när händelser ska tas emot. Ditt program kanske till exempel inte är tillgängligt hela tiden eller inte tillräckligt stabilt. Du kan också bearbeta data endast vid vissa tidpunkter.
  • Du behöver fullständig kontroll över händelseförbrukningen. En underordnad tjänst eller ett lager i ditt konsumentprogram kan till exempel ha ett problem som hindrar dig från att bearbeta händelser. I så fall kan konsumentappen använda pull delivery API för att släppa en redan läst händelse tillbaka till mäklaren för leverans 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 kan inte exponera en endpoint och använda push-leverans, men du kan ansluta till Event Grid för att ta emot händelser.

Push-leverans

  • Du vill undvika konstant pollning för att avgöra om en ändring av systemtillståndet har inträffat. I stället vill du använda 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.

HTTP-modellhöjdpunkter:

  • Flexibel händelseförbrukningsmodell: Förbruka händelser med pull- eller push-leveransläge när du använder HTTP.
  • Systemhändelser: Sätt igång med inbyggda Azure-tjänstehändelser.
  • Dina egna programhändelser: Använd Event Grid för att dirigera, filtrera och leverera anpassade händelser från din app på ett tillförlitligt sätt.
  • Partnerhändelser: Prenumerera på saaS-providerhändelser för din partner och bearbeta dem i Azure.
  • Avancerad filtrering: Filtrera efter händelsetyp eller andra händelseattribut för att se till att dina händelsehanterare eller konsumentappar endast tar emot relevanta händelser.
  • Tillförlitlighet: Push-leverans har en 24-timmars återförsöksmekanism med exponentiell backoff för att se till att händelserna levereras. Om du använder pull-leverans har programmet fullständig kontroll över händelseförbrukningen.
  • Högt dataflöde: Skapa integrerade lösningar med stora volymer med Event Grid.
  • Anpassade domännamn: Tilldela dina egna domännamn till ett Event Grid-namnrymdens HTTP-endpoints, vilket ökar säkerheten och förenklar klientkonfigurationen.

Mer information finns i följande artiklar:

Användningsfall

En lista över användningsfall där du kan använda Event Grid finns i Användningsfall.

Regioner som stöds

MQTT-mäklaren och ämnesfunktionerna i namnrymder finns tillgängliga i följande regioner.

Region Region Region Region
Australien, östra Australia Southeast Australia Central Australia Central 2
Brasilien Syd Brasilien, sydöstra Centrala Kanada Kanada, östra
Centrala Indien Mellersta USA Asien, östra östra USA
Östra USA 2 Västra USA Centrala Frankrike Frankrike, södra
Tyskland, norra Tyskland, västra centrala Centrala Israel Italien, norra
Japan, östra Västra Japan Nordkorea Central Sydkorea
Centrala Mexiko USA, norra centrala Europa, norra Norge, östra
Centrala Polen Sydafrika, västra Sydafrika, norra Södra centrala USA
Södra Indien Sydostasien Centrala Spanien Sverige Central
Södra Sverige Schweiz, norra Schweiz, västra Förenade Arabemiraten, norra
UAE Central Storbritannien, södra Storbritannien, västra Europa, västra
Västra USA 2 Västra USA 3 Västra centrala USA Centrala Belgien