Reagir a eventos do Azure Mapas usando a Grade de Eventos
O Azure Mapas integra-se com a Grade de Eventos do Azure para que usuários possam enviar notificações de eventos para outros serviços e disparar processos de downstream. A finalidade deste artigo é ajudar você a configurar aplicativos de negócios para detectar eventos do Azure Mapas. Isso permite que usuários reajam a eventos críticos de maneira segura, escalonável e confiável. Por exemplo, os usuários podem criar um aplicativo para atualizar um banco de dados ao criar um tíquete e entregar uma notificação por email sempre que um novo dispositivo entrar em um limite geográfico.
A Grade de Eventos do Azure é um serviço de roteamento de eventos totalmente gerenciado que usa um modelo de publicação-assinatura. A Grade de Eventos tem suporte interno para serviços do Azure, como Azure Functions e Aplicativos Lógicos do Azure. Ela pode entregar alertas de eventos para serviços que não são do Azure usando 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.
Tipos de eventos do Azure Mapas
A Grade de eventos usa assinaturas de evento para rotear mensagens de evento para os assinantes. Uma conta do Azure Mapas emite os seguintes tipos de eventos:
Tipo de evento | Descrição |
---|---|
Microsoft.Maps.GeofenceEntered | Gerado quando as coordenadas recebidas são movidas de fora de uma determinada cerca geográfica para dentro |
Microsoft.Maps.GeofenceExited | Gerado quando as coordenadas recebidas são movidas de dentro de uma determinada cerca geográfica para fora |
Microsoft.Maps.GeofenceResult | Gerado sempre que uma consulta de delimitação geográfica retorna um resultado, independentemente do estado |
Esquema do evento
O exemplo a seguir mostra o esquema para 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 eventos
Aplicativos que manipulam eventos de limite geográfico do Azure Mapas devem seguir algumas práticas recomendadas:
- Configurar várias assinaturas para encaminhar eventos para o mesmo manipulador de eventos. É importante não presumir que os eventos são de uma fonte específica. Sempre verifique o tópico de mensagem para verificar se a mensagem está vindo da fonte que você esperava.
- Use o campo
X-Correlation-id
no cabeçalho de resposta para entender se as informações sobre objetos estão atualizadas. As mensagens podem ser recebidas fora de ordem ou após um atraso. - Quando uma solicitação de GET ou POST é chamada na API de Cerca Geográfica com o parâmetro de modo definido como
EnterAndExit
, um evento de Entrada ou Saída é gerado para cada geometria na cerca geográfica para a qual o status foi alterado desde a última chamada da API da Cerca Geográfica.
Próximas etapas
Para obter detalhes sobre todos os eventos compatíveis com o Azure Mapas e o esquema, consulte Azure Mapas como uma fonte da Grade de Eventos.
Para saber mais sobre como usar o isolamento geográfico para operações de controle em um local de construção, confira: