Reagir a eventos do Azure Mapas usando a Grade de EventosReact to Azure Maps events by using Event Grid

O Azure Maps integra-se à grade de eventos do Azure, para que os usuários possam enviar notificações de eventos para outros serviços e disparar processos downstream.Azure Maps integrates with Azure Event Grid, so that users can send event notifications to other services and trigger downstream processes. A finalidade deste artigo é ajudá-lo a configurar seus aplicativos de negócios para ouvir os eventos do Azure Maps.The purpose of this article is to help you configure your business applications to listen to Azure Maps events. Isso permite que os usuários reajam a eventos críticos de maneira confiável, escalonável e segura.This allows users to react to critical events in a reliable, scalable, and secure manner. Por exemplo, os usuários podem criar um aplicativo para atualizar um banco de dados, criar um tíquete e entregar uma notificação por email, toda vez que um dispositivo entrar em uma cerca geográfica.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.

A grade de eventos do Azure é um serviço de roteamento de eventos totalmente gerenciado, que usa um modelo de publicação/assinatura.Azure Event Grid is a fully managed event routing service, which uses a publish-subscribe model. A grade de eventos tem suporte interno para serviços do Azure como Azure Functions e aplicativos lógicos do Azure.Event Grid has built-in support for Azure services like Azure Functions and Azure Logic Apps. Ele pode entregar alertas de eventos para serviços que não são do Azure usando WebHooks.It can deliver event alerts to non-Azure services using webhooks. Para obter uma lista completa dos manipuladores de eventos que dá suporte a Grade de Eventos, consulte Uma introdução à Grade de Eventos do Azure.For a complete list of the event handlers that Event Grid supports, see An introduction to Azure Event Grid.

Modelo funcional da Grade de Eventos do Azure

Tipos de eventos do Azure MapasAzure Maps events types

A Grade de eventos usa assinaturas de evento para rotear mensagens de evento para os assinantes.Event grid uses event subscriptions to route event messages to subscribers. Uma conta do Azure Mapas emite os seguintes tipos de eventos:An Azure Maps account emits the following event types:

Tipo de eventoEvent type DescriçãoDescription
Microsoft.Maps.GeofenceEnteredMicrosoft.Maps.GeofenceEntered Gerado quando as coordenadas recebidas foram movidas de fora de uma determinada limite geopara dentroRaised when received coordinates have moved from outside of a given geofence to within
Microsoft.Maps.GeofenceExitedMicrosoft.Maps.GeofenceExited Gerado quando as coordenadas recebidas foram movidas de dentro de uma determinada cerca geográfica para externaRaised when received coordinates have moved from within a given geofence to outside
Microsoft.Maps.GeofenceResultMicrosoft.Maps.GeofenceResult Gerado sempre que uma consulta de delimitação geográfica retorna um resultado, independentemente do estadoRaised every time a geofencing query returns a result, regardless of the state

Esquema do eventoEvent schema

O exemplo a seguir mostra o esquema para GeofenceResult: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"
}

Dicas para o consumo de eventosTips for consuming events

Aplicativos que manipulam eventos de limite geográfico do Azure Mapas devem seguir algumas práticas recomendadas:Applications that handle Azure Maps geofence events should follow a few recommended practices:

  • Configure várias assinaturas para rotear eventos para o mesmo manipulador de eventos.Configure multiple subscriptions to route events to the same event handler. É importante não presumir que os eventos são de uma fonte específica.It's important not to assume that events are from a particular source. Sempre verifique o tópico da mensagem para garantir que a mensagem provém da origem esperada.Always check the message topic to ensure that the message came from the source that you expect.
  • Use o X-Correlation-id campo no cabeçalho de resposta para entender se suas informações sobre objetos estão atualizadas.Use the X-Correlation-id field in the response header to understand if your information about objects is up to date. As mensagens podem ser recebidas fora de ordem ou após um atraso.Messages can arrive out of order or after a delay.
  • Quando uma solicitação GET ou uma POST na API de isolamento geométrico é chamada com o parâmetro mode definido como EnterAndExit , um evento Enter ou Exit é gerado para cada geometria no limite geográfico para o qual o status foi alterado da chamada à API de limite geográfico anterior.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.

Próximas etapasNext steps

Para saber mais sobre como usar o isolamento geográfico para operações de controle em um local de construção, confira:To learn more about how to use geofencing to control operations at a construction site, see: