Reagera på Händelser i Azure Kartor med hjälp av Event Grid
Azure Kartor integreras med Azure Event Grid, så att användare kan skicka händelsemeddelanden till andra tjänster och utlösa underordnade processer. Syftet med den här artikeln är att hjälpa dig att konfigurera dina affärsprogram för att lyssna på Azure Kartor händelser. På så sätt kan användarna reagera på kritiska händelser på ett tillförlitligt, skalbart och säkert sätt. Användare kan till exempel skapa ett program för att uppdatera en databas, skapa en biljett och leverera ett e-postmeddelande varje gång en enhet anger geofence.
Azure Event Grid är en fullständigt hanterad händelseroutningstjänst som använder en publiceringsprenumereringsmodell. Event Grid har inbyggt stöd för Azure-tjänster som Azure Functions och Azure Logic Apps. Den kan leverera händelseaviseringar till icke-Azure-tjänster med hjälp av webhooks. En fullständig lista över de händelsehanterare som Event Grid stöder finns i En introduktion till Azure Event Grid.
Händelsetyper för Azure Kartor
Event Grid använder händelseprenumerationer för att dirigera händelsemeddelanden till prenumeranter. Ett Azure Kartor-konto genererar följande händelsetyper:
Händelsetyp | beskrivning |
---|---|
Microsoft. Kartor. GeofenceEntered | Upphöjt när mottagna koordinater har flyttats från utanför en viss geofence till inom |
Microsoft. Kartor. GeofenceExited | Upphöjt när mottagna koordinater har flyttats inifrån en viss geofence till utanför |
Microsoft. Kartor. GeofenceResult | Utlöses varje gång en geofencing-fråga returnerar ett resultat, oavsett tillstånd |
Händelseschema
I följande exempel visas schemat för GeofenceResult:
{
"id":"451675de-a67d-4929-876c-5c2bf0b2c000",
"topic":"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Maps/accounts/{accountName}",
"subject":"/spatial/geofence/udid/{udid}/id/{eventId}",
"data":{
"geometries":[
{
"deviceId":"device_1",
"udId":"1a13b444-4acf-32ab-ce4e-9ca4af20b169",
"geometryId":"1",
"distance":999.0,
"nearestLat":47.609833,
"nearestLon":-122.148274
}
],
"expiredGeofenceGeometryId":[
],
"invalidPeriodGeofenceGeometryId":[
]
},
"eventType":"Microsoft.Maps.GeofenceResult",
"eventTime":"2018-11-08T00:52:08.0954283Z",
"metadataVersion":"1",
"dataVersion":"1.0"
}
Tips för att konsumera händelser
Program som hanterar Azure Kartor geofence-händelser bör följa några rekommenderade metoder:
- Konfigurera flera prenumerationer för att dirigera händelser till samma händelsehanterare. Det är viktigt att inte anta att händelser kommer från en viss källa. Kontrollera alltid meddelandeavsnittet för att se till att meddelandet kommer från den källa som du förväntar dig.
- Använd fältet
X-Correlation-id
i svarshuvudet för att förstå om din information om objekt är uppdaterad. Meddelanden kan tas emot i annan ordning eller efter en fördröjning. - När en GET- eller POST-begäran i Geofence-API:et anropas med lägesparametern inställd på
EnterAndExit
genereras en Enter- eller Exit-händelse för varje geometri i geofence för vilken statusen har ändrats från det tidigare Geofence API-anropet.
Nästa steg
Mer information om alla händelser som stöds av Azure Kartor och schemat finns i Azure Kartor som en Event Grid-källa.
Mer information om hur du använder geofencing för att styra verksamheten på en byggarbetsplats finns i: