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.
Event Grid låter dig dirigera dina MQTT-meddelanden till Azure-tjänster eller webhooks för vidare bearbetning. Genom att routa denna data kan du bygga end-to-end-lösningar som använder din IoT-data för analys, lagring och visualisering.
Den här artikeln förklarar när du ska använda routning och visar hur du konfigurerar routning till antingen ett Event Grid-namnrymdämne eller ett eget ämne.
När ska man använda routing
Att routa meddelandena från dina klienter till en Azure-tjänst eller din anpassade endpoint hjälper dig att maximera fördelarna med denna data. Följande lista beskriver några av de många användningsområdena för denna funktion:
- Dataanalys: Extrahera och analysera de routade meddelandena från dina kunder för att optimera din lösning. Analysera till exempel dina maskiners telemetri för att förutsäga när underhåll ska schemaläggas innan fel inträffar, för att undvika förseningar och ytterligare skador.
- Serverlösa applikationer: Trigga en serverlös funktion baserat på de routade meddelandena från dina klienter. Till exempel, när en rörelsesensor upptäcker rörelse, skicka en notis till säkerhetspersonal för att åtgärda den.
- Datavisualiseringar: Bygg visualiseringar av den routade datan från dina kunder för att representera och förstå datan samt för att lyfta fram trender och avvikelser.
Konfigurera routning
Routingkonfigurationen låter dig skicka alla dina MQTT-meddelanden från dina klienter till antingen ett Event Grid-namnrymdämne eller ett anpassat Event Grid-ämne. När meddelandena finns i ämnet kan du konfigurera en händelseprenumeration för att använda meddelandena från ämnet. Använd följande övergripande steg för att uppnå den här konfigurationen:
- Namnområdesämne som routningsmål:
- Skapa ett Event Grid-namnrymdämne där Event Grid diriverar alla MQTT-meddelanden.
- Skapa en händelseprenumeration av typen push för att skicka vidare dessa meddelanden till någon av de Azure-tjänster som stöds eller till en anpassad webhook, eller skapa en händelseprenumeration av typen kö för att hämta meddelandena direkt från namnrymdens ämne via programmet.
- Ställ in routkonfigurationen som refererar till ämnet du skapade i första steget.
- Anpassat ämne som routningsmål:
- Skapa ett anpassat Event Grid-ämne där Event Grid leder alla MQTT-meddelanden. Detta ämne måste uppfylla Event Grids anpassade ämneskrav för routing.
- Skapa en Event Grid-händelseprenumeration för att dirigera dessa meddelanden till någon av de Azure-tjänster som stöds eller en anpassad slutpunkt.
- Ställ in routkonfigurationen som refererar till ämnet du skapade i första steget.
Anmärkning
Att inaktivera offentlig nätverksåtkomst i namnrymden gör att MQTT-routningen misslyckas.
Skillnad mellan namnområdesämnen och anpassade ämnen som routningsmål
I följande tabell visas skillnaden mellan namnområdesämnen och anpassade ämnen som routningsmål. För en detaljerad uppdelning av vilka kvoter och gränser varje Event Grid-resurs inkluderar, se Kvoter och gränser.
| Jämförelsepunkt | Namnområdesämne | Anpassat ämne |
|---|---|---|
| Genomflöde | Hög hastighet, upp till 40 MB/s (inkommande) och 80 MB/s (utgående trafik) | Låg, upp till 5 MB/s (inkommande och utgående) |
| Dragbaserad leverans | Ja | No |
| Push-leverans till Event Hubs | Ja | Ja |
| Push-leverans till Azure-tjänster (Azure Functions, Webhooks, Service Bus-köer och -ämnen, relähybridanslutningar och lagringsköer) | No | Ja |
| Kvarhållning av meddelanden | 7 dagar | 1 dag |
| Krav för rolltilldelning | Inte nödvändigt eftersom MQTT-mäklaren och namnrymdsämnet ligger under samma namnrymd | Krävs eftersom namnrymden som är värd för MQTT-mäklarfunktionen och det anpassade ämnet är olika resurser |
Anpassade ämneskrav för Event Grid för routning
Det anpassade Event Grid-ämnet som du använder för routing måste uppfylla följande krav:
- Den måste använda CloudEvents-schemat v1.0.
- Den måste finnas i samma region som namnområdet.
- Du behöver tilldela rollen Event Grid Data Sender till dig själv eller till den valda hanterade identiteten i Event Grid-specialämnet innan du applicerar routingkonfigurationen. För att tilldela rollen:
- Gå i portalen till den ämnesresurs Event Grid som du skapat.
- I menyn Access Control (IAM), välj Lägg till rolltilldelning.
- På fliken Roll , välj Event Grid Data Sender, och välj sedan Nästa.
- På fliken Medlemmar, välj Välj medlemmar och ange sedan ditt Microsoft Entra-användarnamn i Select-rutan som visas (till exempel,
user@contoso.com). - Välj ditt Microsoft Entra-användarnamn och välj sedan Review + tilldela.
Konfiguration av Azure-portalen
För att konfigurera routning:
- Gå till namnområdet i Azure-portalen.
- Under Routing, välj Aktivera routing.
- För ämnestyp, välj antingen namnrymdämne eller anpassat ämne.
- För Topic, välj det ämne du skapade där alla MQTT-meddelanden ska dirigeras.
- För anpassade ämnen visar listan endast de ämnen som uppfyller Event Grids anpassade ämneskrav för routing.
- Om du väljer ett anpassat ämne visas avsnittet Managed Identity for Delivery . Välj ett av följande alternativ för identiteten som autentiserar MQTT-mäklaren medan den levererar MQTT-meddelandena till det anpassade ämnet:
- None: Tilldela dig själv rollen Event Grid Data Sender för det anpassade ämnet.
- Systemtilldelad identitet: Aktivera systemtilldelad identitet i namnrymden som en förkunskap, och tilldela rollen Event Grid Data Sender till den systemtilldelade identiteten på det anpassade ämnet.
- Användartilldelad identitet: Aktivera användartilldelad identitet i namnrymden som en förutsättning och tilldela rollen Event Grid Data Sender till den valda identiteten på det anpassade ämnet. Om du väljer Användartilldelad identitet visas en rullgardinsmeny så att du kan välja identiteten.
- Välj Tillämpa.
För berikningskonfigurationsinstruktioner går du till Konfiguration av Enrichment-portalen.
Azure CLI-konfiguration
az resource create --resource-type Microsoft.EventGrid/namespaces --id /subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/namespaces/<Namespace Name> --is-full-object --api-version 2023-06-01-preview --properties @./resources/NS.json
NS.json
{
"properties": {
"inputSchema": "CloudEventSchemaV1_0",
"topicSpacesConfiguration": {
"state": "Enabled",
"routeTopicResourceId": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.EventGrid/topics/<Event Grid topic name>",
"routingIdentityInfo": {
"type": "UserAssigned",
"userAssignedIdentity": "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<User-assigned identity>"
}
}
}
}
I routingIdentityInfo accepterar NoneSystemAssigned, UserAssigned eller type. Sätt userAssignedIdentity endast när type är UserAssigned.
För berikningskonfigurationsinstruktioner går du till Enrichment CLI-konfiguration.
Beteende för MQTT-meddelanderoutning
När MQTT-meddelanden dirigeras till anpassade ämnen tillhandahåller Event Grid varaktig leverans när det försöker leverera varje meddelande minst en gång omedelbart. Om det uppstår ett fel försöker Event Grid antingen leverera igen eller släpper meddelandet som var avsett för routing. Event Grid garanterar inte order för händelseleverans, så prenumeranter kan få dem i fel ordning.
I följande tabell beskrivs beteendet för MQTT-meddelanderoutning baserat på olika fel.
| Error | Felbeskrivning | Beteende |
|---|---|---|
| TopicNotFoundError | Det anpassade ämnet som var konfigurerat för att ta emot alla MQTT-routade meddelanden togs bort. | Event Grid tar bort MQTT-meddelandet som var avsett för routing. |
| AuthenticationError | Rollen Event Grid Data Sender för det anpassade ämnet som konfigurerats som mål för MQTT-dirigerade meddelanden togs bort. | Event Grid tar bort MQTT-meddelandet som var avsett för routing. |
| För många förfrågningar | Antalet MQTT-dirigerade meddelanden per sekund överskrider publiceringsgränsen för det anpassade ämnet. | Event Grid försöker dirigera MQTT-meddelandet igen. |
| Tjänstefel | Ett oväntat serverfel av en servers driftsorsak. | Event Grid försöker dirigera MQTT-meddelandet igen. |
Vid återförsök använder Event Grid en exponentiell backoff-återförsöksprincip för MQTT-meddelanderoutning. Event Grid försöker leverera på nytt enligt följande schema efter bästa förmåga:
- 10 sekund
- 30 sekunder
- 1 minut
- 5 minuter
- 10 minuter
- 30 minuter
- 1 timme
- 3 timmar
- 6 timmar
- Var 12:e timme
Om ett routat MQTT-meddelande som är köat för återleverans lyckas försöker Event Grid ta bort meddelandet från återförsökskön på bästa möjliga sätt, men du kan ändå få dubbletter.