React till Azure Kartor händelser med hjälp av Event Grid

Azure Kartor integreras med Azure Event Grid, så att användarna 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 så att de lyssnar 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 ett ärende och leverera ett e-postmeddelande varje gång en enhet går in i en geofence.

Azure Event Grid är en fullständigt hanterad tjänst för händelsedirigering som använder en publicera-prenumerera-modell. 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.

Azure Event Grid funktionsmodell

Typer Kartor Azure-händelser

Event Grid använder händelseprenumerationer för att dirigera händelsemeddelanden till prenumeranter. Ett Azure Kartor-konto ger 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 Upphöjt varje gång en geofencing-fråga returnerar ett resultat, oavsett tillståndet

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 om att använda 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 med fördröjning.
  • När en GET- eller POST-begäran i Geofence-API:et anropas med lägesparametern inställd på genereras en Enter- eller Exit-händelse för varje geometri i geofence som statusen har ändrats från föregående EnterAndExit Geofence API-anrop.

Nästa steg

Mer information om hur du använder geofencing för att styra åtgärder på en byggarbetsplats finns i: