Reakce na události Azure Mapy pomocí Event Gridu

Azure Mapy integruje se službou Azure Event Grid, aby uživatelé mohli odesílat oznámení událostí do jiných služeb a aktivovat podřízené procesy. Účelem tohoto článku je pomoct nakonfigurovat obchodní aplikace tak, aby naslouchaly událostem Azure Mapy. To umožňuje uživatelům reagovat na kritické události spolehlivým, škálovatelným a bezpečným způsobem. Uživatelé můžou například vytvořit aplikaci pro aktualizaci databáze, vytvoření lístku a doručení e-mailového oznámení při každém vstupu zařízení do geografické zóny.

Azure Event Grid je plně spravovaná služba směrování událostí, která používá model publikování a odběru. Event Grid má integrovanou podporu pro služby Azure, jako jsou Azure Functions a Azure Logic Apps. Pomocí webhooků může doručovat upozornění událostí službám mimo Azure. Úplný seznam obslužných rutin událostí, které Event Grid podporuje, najdete v úvodu do služby Azure Event Grid.

Azure Event Grid functional model

Typy událostí Azure Mapy

Event Grid používá odběry událostí ke směrování zpráv událostí odběratelům. Účet Azure Mapy generuje následující typy událostí:

Typ události Popis
Microsoft. Mapy. GeofenceEntered Vyvolána při přesunu přijatých souřadnic mimo danou geografickoufenci do
Microsoft. Mapy. GeofenceExited Vyvolána při přesunu přijatých souřadnic z dané geografické zóny na vnější
Microsoft. Mapy. GeofenceResult Vyvolá se pokaždé, když geofencingový dotaz vrátí výsledek bez ohledu na stav.

Schéma událostí

Následující příklad ukazuje schéma pro 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"
}

Tipy pro využívání událostí

Aplikace, které zpracovávají události geografické zóny Azure Mapy, by měly dodržovat několik doporučených postupů:

  • Nakonfigurujte několik odběrů pro směrování událostí do stejné obslužné rutiny události. Není důležité předpokládat, že události pocházejí z určitého zdroje. Vždy zkontrolujte téma zprávy a ujistěte se, že zpráva pochází ze zdroje, který očekáváte.
  • X-Correlation-id Pomocí pole v hlavičce odpovědi zjistěte, jestli jsou vaše informace o objektech aktuální. Zprávy se můžou doručovat v odlišném pořadí nebo se zpožděním.
  • Když se v rozhraní GEOfence API volá požadavek GET nebo POST s parametrem režimu nastaveným na EnterAndExit, vygeneruje se událost Enter nebo Exit pro každou geometrii v geografické zóny, pro kterou se stav změnil z předchozího volání rozhraní GEOFENCE API.

Další kroky

Podrobnosti o všech událostech podporovaných službou Azure Mapy a schématu najdete v tématu Azure Mapy jako zdroj služby Event Grid.

Další informace o tom, jak pomocí geofencingu řídit provoz na stavebním místě, najdete tady: