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.

Azure Event Grid functional model

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 EnterAndExitwartość , 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: