Condividi tramite


Rispondere agli eventi di Mappe di Azure con Griglia di eventi

Mappe di Azure si integra con Griglia di eventi di Azure, in modo che gli utenti possano inviare notifiche degli eventi ad altri servizi e attivare processi downstream. Lo scopo di questo articolo è quello di configurare le applicazioni aziendali per ascoltare gli eventi Mappe di Azure. In questo modo gli utenti possono reagire a eventi critici in modo affidabile, scalabile e sicuro. Ad esempio, gli utenti possono creare un'applicazione per aggiornare un database, creare un ticket e recapitare una notifica tramite posta elettronica, ogni volta che un dispositivo entra in un recinto virtuale.

Griglia di eventi di Azure è un servizio di routing di eventi completamente gestito che usa un modello di pubblicazione-sottoscrizione. Griglia di eventi offre supporto incorporato per alcuni servizi di Azure, ad esempio Funzioni di Azure e App per la logica di Azure. Può inviare avvisi di eventi a servizi non di Azure usando i webhook. Per un elenco completo dei gestori di eventi supportati da Griglia di eventi, vedere Introduzione a Griglia di eventi di Azure.

Azure Event Grid functional model

Tipi di eventi di Mappe di Azure

Griglia di eventi usa sottoscrizioni di eventi per instradare i messaggi di evento ai sottoscrittori. Un account di Mappe di Azure genera i tipi di eventi seguenti:

Tipo di evento Descrizione
Microsoft.Maps.GeofenceEntered Generato quando le coordinate ricevute sono state spostate dall'esterno di un determinato recinto virtuale all'interno
Microsoft.Maps.GeofenceExited Generato quando le coordinate ricevute sono state spostate dall'interno di un determinato recinto virtuale all'esterno
Microsoft.Maps.GeofenceResult Generato ogni volta che una query di geofencing restituisce un risultato, indipendentemente dallo stato

Schema di eventi

L'esempio seguente illustra lo schema per 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"
}

Suggerimenti per l'utilizzo di eventi

Per le applicazioni che gestiscono gli eventi di un recinto virtuale di Mappe di Azure è consigliabile seguire alcune procedure:

  • Configurare più sottoscrizioni per instradare gli eventi allo stesso gestore eventi. È importante non presupporre che gli eventi provengano da un'origine in particolare. Controllare sempre l'argomento del messaggio per assicurarsi che il messaggio provenisse dall'origine prevista.
  • Usare il X-Correlation-id campo nell'intestazione della risposta per capire se le informazioni sugli oggetti sono aggiornate. I messaggi possono arrivare non in ordine o dopo un ritardo.
  • Quando viene chiamata una richiesta GET o POST nell'API Geofence con il parametro mode impostato su EnterAndExit, viene generato un evento Enter o Exit per ogni geometria nel recinto virtuale per cui lo stato è cambiato rispetto alla precedente chiamata API Geofence.

Passaggi successivi

Per informazioni dettagliate su tutti gli eventi supportati da Mappe di Azure e sullo schema, vedere Mappe di Azure come origine di Griglia di eventi.

Per altre informazioni su come usare il geofencing per il controllo di operazioni in un cantiere, vedere:

Set up a geofence by using Azure Maps (Configurare un recinto virtuale tramite Mappe di Azure)