Bereaksi terhadap peristiwa Azure Maps dengan menggunakan Azure Event Grid

Azure Maps terintegrasi dengan Azure Event Grid, sehingga pengguna dapat mengirim notifikasi kejadian Azure Maps ke layanan lain dan memicu proses hilir. Tujuan artikel ini adalah membantu Anda mengonfigurasi aplikasi bisnis untuk mendengarkan kejadian Azure Maps. Hal ini memungkinkan pengguna untuk bereaksi terhadap peristiwa kritis dengan cara yang andal, dapat diskalakan, dan aman. Contohnya, pengguna dapat membuat aplikasi untuk memperbarui database, membuat tiket, dan mengirimkan pemberitahuan email, setiap kali perangkat memasuki geofence.

Azure Event Grid adalah layanan perutean peristiwa yang dikelola sepenuhnya yang menggunakan model publikasi-berlangganan. Event Grid memiliki dukungan bawaan untuk layanan Azure seperti Azure Functions dan Azure Logic Apps. Ini dapat memberikan pemberitahuan peristiwa ke layanan selain Azure menggunakan webhook. Untuk daftar lengkap handler peristiwa yang didukung Event Grid, lihat Pengenalan Azure Event Grid.

Azure Event Grid functional model

Jenis peristiwa Azure Maps

Azure Event Grid menggunakan langganan acara untuk merutekan pesan acara kepada pelanggan. Akun Azure Maps mengeluarkan jenis peristiwa berikut:

Jenis peristiwa Deskripsi
Microsoft.Maps.GeofenceEntered Ditampilkan ketika koordinat yang diterima telah berpindah dari luar geofence yang diberikan ke dalam
Microsoft.Maps.GeofenceExited Ditampilkan ketika koordinat yang diterima telah berpindah dari dalam geofence yang diberikan ke luar
Microsoft.Maps.GeofenceResult Ditampilkan setiap kali kueri geofencing mengembalikan hasil, terlepas dari statusnya

Skema peristiwa

Contoh berikut menunjukkan skema untuk 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 untuk menggunakan kejadian

Aplikasi yang menangani peristiwa geofence Azure Maps harus mengikuti beberapa praktik yang direkomendasikan:

  • Beberapa langganan dapat dikonfigurasi untuk merutekan peristiwa ke penanganan aktivitas yang sama. Penting untuk tidak berasumsi bahwa peristiwa berasal dari sumber tertentu. Selalu periksa topik pesan untuk memastikan bahwa pesan berasal dari sumber yang Anda harapkan.
  • Gunakan bidang X-Correlation-id di header respons untuk memahami apakah informasi Anda tentang objek sudah diperbarui. Pesan dapat diterima tidak sesuai urutan atau setelah penundaan.
  • Ketika permintaan GET atau POST di Geofence API dipanggil dengan parameter mode yang diatur ke EnterAndExit, maka peristiwa Enter atau Exit dihasilkan untuk setiap geometri dalam geofence yang statusnya telah berubah dari panggilan API Geofence sebelumnya.

Langkah berikutnya

Untuk detail tentang semua peristiwa yang didukung oleh Azure Peta dan skema, lihat Azure Peta sebagai sumber Event Grid.

Untuk mempelajari selengkapnya tentang cara menggunakan geofencing untuk mengontrol operasi di lokasi konstruksi, lihat: