Reagieren auf Azure Maps-Ereignisse mithilfe von Event Grid
Azure Maps ist in Azure Event Grid integriert, sodass Benutzer Ereignisbenachrichtigungen an andere Dienste senden und nachfolgende Prozesse auslösen können. Dieser Artikel soll Ihnen dabei helfen, Ihre Geschäftsanwendungen so zu konfigurieren, dass sie auf Azure Maps-Ereignisse lauschen. Hiermit können Benutzer auf zuverlässige, skalierbare und sichere Weise schnell auf kritische Ereignisse reagieren. Benutzer können beispielsweise eine Anwendung zum Aktualisieren einer Datenbank, Erstellen eines Tickets und Übermitteln einer E-Mail-Benachrichtigung bei jedem Eintreten eines Geräts in einen Geofence erstellen.
Azure Event Grid ist ein vollständig verwalteter Ereignisroutingdienst, der ein Veröffentlichen-Abonnieren-Modell verwendet. Event Grid verfügt über eine integrierte Unterstützung für Azure-Dienste wie Azure Functions und Azure Logic Apps. Mithilfe von Webhooks können Ereigniswarnungen an Azure-fremde Dienste übertragen werden. Eine vollständige Liste der Ereignishandler, die Event Grid unterstützt, finden Sie unter Einführung in Azure Event Grid.
Azure Maps-Ereignistypen
Event Grid verwendet Ereignisabonnements zum Weiterleiten von Ereignisnachrichten an Abonnenten. Ein Azure Maps-Konto gibt die folgenden Ereignistypen aus:
Ereignistyp | BESCHREIBUNG |
---|---|
Microsoft.Maps.GeofenceEntered | Wird ausgelöst, wenn empfangene Koordinaten sich von außerhalb eines bestimmten Geofence nach innerhalb bewegt haben. |
Microsoft.Maps.GeofenceExited | Wird ausgelöst, wenn empfangene Koordinaten sich von innerhalb eines bestimmten Geofence nach außerhalb bewegt haben. |
Microsoft.Maps.GeofenceResult | Wird jedes Mal ausgelöst, wenn eine Geofencingabfrage ein Ergebnis zurückgibt, unabhängig vom Status |
Ereignisschema
Das folgende Beispiel zeigt das Schema 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"
}
Tipps zum Nutzen von Ereignissen
Anwendungen, die Azure Maps-Geofencingereignisse behandeln, sollten einige bewährte Methoden nutzen:
- Konfigurieren von mehreren Abonnements, um Ereignisse an denselben Ereignishandler zu routen. Es ist wichtig, nicht davon auszugehen, dass Ereignisse aus einer bestimmten Quelle stammen. Überprüfen Sie in jedem Fall das Nachrichtenthema, um sicherzustellen, dass die Nachricht von der Quelle stammt, die Sie erwarten.
- Verwenden Sie das
X-Correlation-id
-Feld im Antwortheader, um zu überprüfen, ob Ihre Informationen zu Objekten aktuell sind. Nachrichten können in falscher Reihenfolge oder nach einer Verzögerung eingehen. - Wenn eine GET- oder POST-Anforderung in der Geofence-API mit dem auf
EnterAndExit
festgelegten mode-Parameter (Modus) aufgerufen wird, wird für jede Geometrie im Geofence, deren Status sich gegenüber dem vorherigen Geofence-API-Aufruf geändert hat, ein Eintritts- oder Austrittsereignis erzeugt.
Nächste Schritte
Ausführliche Informationen zu allen von Azure Maps und dem Schema unterstützten Ereignissen finden Sie unter Azure Maps als Event Grid-Quelle.
Weitere Informationen zum Verwenden von Geofencing zum Steuern von Vorgängen auf einer Baustelle finden Sie unter: