Reagowanie na zdarzenia usługi Azure Mapy przy użyciu usługi Event Grid
Usługa Azure Mapy integruje się z usługą Azure Event Grid, dzięki czemu użytkownicy mogą wysyłać powiadomienia o zdarzeniach do innych usług i wyzwalać procesy podrzędne. Celem tego artykułu jest pomoc w konfigurowaniu aplikacji biznesowych w celu nasłuchiwania zdarzeń usługi Azure Mapy. Dzięki temu użytkownicy mogą reagować na zdarzenia krytyczne w niezawodny, skalowalny i bezpieczny sposób. Na przykład użytkownicy mogą utworzyć aplikację w celu zaktualizowania bazy danych, utworzenia biletu i dostarczenia powiadomienia e-mail za każdym razem, gdy urządzenie wchodzi w geofencing.
Azure Event Grid to w pełni zarządzana usługa routingu zdarzeń, która korzysta z modelu publikowania-subskrybowania. Usługa Event Grid ma wbudowaną obsługę usług platformy Azure, takich jak Azure Functions i Azure Logic Apps. Może ona dostarczać alerty zdarzeń do usług spoza platformy Azure przy użyciu elementów webhook. Aby uzyskać pełną listę programów obsługi zdarzeń obsługiwanych przez usługę Event Grid, zobacz Wprowadzenie do usługi Azure Event Grid.
Typy zdarzeń usługi Azure Mapy
Usługa Event Grid używa subskrypcji zdarzeń do kierowania komunikatów zdarzeń do subskrybentów. Konto usługi Azure Mapy emituje następujące typy zdarzeń:
Typ zdarzenia | opis |
---|---|
Microsoft. Mapy. GeofenceEntered | Podniesione po przeniesieniu współrzędnych odebranych z zewnątrz danego geofencingu do wewnątrz |
Microsoft. Mapy. GeofenceExited | Podniesione po przeniesieniu współrzędnych odebranych z danego geofencingu na zewnątrz |
Microsoft. Mapy. GeofenceResult | Wywoływane za każdym razem, gdy zapytanie geofencing zwraca wynik, niezależnie od stanu |
Schemat zdarzeń
W poniższym przykładzie przedstawiono schemat geofencenceResult:
{
"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"
}
Porady dotyczące korzystania ze zdarzeń
Aplikacje obsługujące zdarzenia geofencingu platformy Azure Mapy powinny postępować zgodnie z kilkoma zalecanymi rozwiązaniami:
- Skonfiguruj wiele subskrypcji w celu kierowania zdarzeń do tej samej procedury obsługi zdarzeń. Ważne jest, aby nie zakładać, że zdarzenia pochodzą z określonego źródła. Zawsze sprawdzaj temat komunikatu, aby upewnić się, że komunikat pochodzi z oczekiwanego źródła.
X-Correlation-id
Użyj pola w nagłówku odpowiedzi, aby dowiedzieć się, czy informacje o obiektach są aktualne. Komunikaty mogą przychodzić w niewłaściwej kolejności lub z opóźnieniem.- Gdy żądanie GET lub POST w interfejsie API geofencingu jest wywoływane z parametrem trybu ustawionym na
EnterAndExit
wartość , dla każdej geometrii w geofencence jest generowane zdarzenie Enter lub Exit, dla którego stan został zmieniony z poprzedniego wywołania interfejsu API geofencingu.
Następne kroki
Aby uzyskać szczegółowe informacje o wszystkich zdarzeniach obsługiwanych przez usługę Azure Mapy i schemacie, zobacz Azure Mapy jako źródło usługi Event Grid.
Aby dowiedzieć się więcej na temat używania geofencingu do kontrolowania operacji na placu budowy, zobacz: