Реагирование на события Azure Maps c помощью Сетки событийReact to Azure Maps events by using Event Grid

Azure Maps интегрируется со службой "Сетка событий Azure", чтобы пользователи могли отправлять уведомления о событиях в другие службы и запускать нисходящие процессы.Azure Maps integrates with Azure Event Grid, so that users can send event notifications to other services and trigger downstream processes. Цель этой статьи — помочь вам настроить бизнес-приложения для прослушивания Azure Maps событий.The purpose of this article is to help you configure your business applications to listen to Azure Maps events. Это позволяет пользователям реагировать на критические события в надежном, масштабируемом и безопасном режиме.This allows users to react to critical events in a reliable, scalable, and secure manner. Например, пользователи могут создавать приложения для обновления базы данных, создавать билеты и предоставлять уведомления по электронной почте при каждом входе устройства в геозоны.For example, users can build an application to update a database, create a ticket, and deliver an email notification, every time a device enters a geofence.

Сетка событий Azure — это полностью управляемая служба маршрутизации событий, использующая модель публикации и подписки.Azure Event Grid is a fully managed event routing service, which uses a publish-subscribe model. Сетка событий имеет встроенную поддержку служб Azure, таких как Функции Azure и Azure Logic Apps.Event Grid has built-in support for Azure services like Azure Functions and Azure Logic Apps. Она может передавать оповещения о событиях в службы, не относящиеся к Azure, с помощью веб-перехватчиков.It can deliver event alerts to non-Azure services using webhooks. Полный список обработчиков событий, которые поддерживает служба "Сетка событий", см. в статье An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure").For a complete list of the event handlers that Event Grid supports, see An introduction to Azure Event Grid.

Функциональная модель Сетки событий Azure

Типы событий Azure MapsAzure Maps events types

Сетка событий использует подписки на события для маршрутизации сообщений о событиях подписчикам.Event grid uses event subscriptions to route event messages to subscribers. Учетная запись Azure Maps выводит следующие типы событий.An Azure Maps account emits the following event types:

Тип событияEvent type ОписаниеDescription
Microsoft.Maps.GeofenceEnteredMicrosoft.Maps.GeofenceEntered Вызывается, когда полученные координаты были перемещены извне из заданного геозоны в в пределахRaised when received coordinates have moved from outside of a given geofence to within
Microsoft.Maps.GeofenceExitedMicrosoft.Maps.GeofenceExited Вызывается, когда полученные координаты перемещаются из заданного геозоны в внешнийRaised when received coordinates have moved from within a given geofence to outside
Microsoft.Maps.GeofenceResultMicrosoft.Maps.GeofenceResult Создается каждый раз, когда запрос геозоны возвращает результат с любым состоянием.Raised every time a geofencing query returns a result, regardless of the state

Схема событийEvent schema

В следующем примере показана схема для Жеофенцересулт:The following example shows the schema for 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 for consuming events

Приложения, которые обрабатывают события геозоны Azure Maps, должны соответствовать нескольким рекомендациям.Applications that handle Azure Maps geofence events should follow a few recommended practices:

  • Настройте несколько подписок для маршрутизации событий в один обработчик событий.Configure multiple subscriptions to route events to the same event handler. Не следует предполагать, что события поступают из определенного источника.It's important not to assume that events are from a particular source. Всегда проверяйте раздел сообщения, чтобы убедиться, что сообщение пришло от предполагаемого источника.Always check the message topic to ensure that the message came from the source that you expect.
  • Используйте X-Correlation-id поле в заголовке ответа, чтобы узнать, не устарели ли ваши сведения об объектах.Use the X-Correlation-id field in the response header to understand if your information about objects is up to date. Сообщения могут поступать не по порядку или с некоторой задержкой.Messages can arrive out of order or after a delay.
  • Когда запрос GET или POST в API геозоны вызывается с параметром mode, имеющим значение EnterAndExit , то событие Enter или Exit создается для каждой геометрии в геозоны, для которой состояние изменилось с предыдущего вызова ГЕОЗОНЫ API.When a GET or a POST request in the Geofence API is called with the mode parameter set to EnterAndExit, then an Enter or Exit event is generated for each geometry in the geofence for which the status has changed from the previous Geofence API call.

Дальнейшие действияNext steps

Дополнительные сведения о том, как использовать геозоны для операций управления на сайте конструкции, см. в статьеTo learn more about how to use geofencing to control operations at a construction site, see: