Bagikan melalui


Membuat rute dan filter peristiwa di Azure Digital Twins

Artikel ini memancang Anda melalui proses pembuatan rute peristiwa menggunakan portal Azure, perintah rute Azure CLI az dt, API data plane Event Routes, dan .NET (C#) SDK.

Merutekan pemberitahuan peristiwa dari Azure Digital Twins ke layanan hilir atau sumber daya komputasi yang terhubung adalah proses dua langkah: membuat titik akhir, lalu membuat rute peristiwa untuk mengirim data ke titik akhir tersebut. Artikel ini membahas langkah kedua, menyiapkan rute untuk mengontrol peristiwa mana yang dikirimkan ke titik akhir Azure Digital Twin. Untuk melanjutkan artikel ini, Anda harus memiliki titik akhir yang sudah dibuat.

Prasyarat

  • Anda akan memerlukan akun Azure, yang dapat disiapkan secara gratis

  • Anda akan memerlukan instans Azure Digital Twins di langganan Azure Anda. Jika Anda belum memiliki instans, Anda dapat membuat instans menggunakan langkah-langkah dalam Menyiapkan instans dan autentikasi. Miliki nilai berikut dari penyetelan yang berguna untuk digunakan nanti di artikel ini:

    • Nama Instans
    • Grup sumber daya

    Anda dapat menemukan detail ini di portal Microsoft Azure setelah menyiapkan instans Anda.

    Screenshot of the Overview page for an Azure Digital Twins instance in the Azure portal. The name and resource group are highlighted.

  • Buat titik akhir menggunakan instruksi di Membuat titik akhir. Dalam artikel ini, Anda akan membuat rute untuk mengirim data ke titik akhir tersebut.

Selanjutnya, ikuti instruksi di bawah ini jika Anda ingin menggunakan Azure CLI saat mengikuti panduan ini.

Persiapkan lingkungan Anda untuk Azure CLI

Buat rute peristiwa

Setelah membuat titik akhir, Anda harus menentukan rute peristiwa untuk benar-benar mengirim data ke titik akhir. Rute-rute ini memungkinkan pengembang menghubungkan aliran peristiwa, ke seluruh sistem dan ke layanan hilir. Satu rute harus memungkinkan beberapa pemberitahuan dan jenis peristiwa dipilih. Baca selengkapnya tentang rute peristiwa di Titik akhir dan rute peristiwa.

Catatan

Pastikan Anda telah membuat setidaknya satu titik akhir seperti yang dijelaskan dalam Prasyarat sebelum Anda melanjutkan untuk membuat rute.

Jika Anda baru saja menyebarkan titik akhir, validasi bahwa titik akhir selesai disebarkan sebelum mencoba menggunakannya untuk rute peristiwa baru. Jika penyebaran rute gagal karena titik akhir belum siap, tunggu beberapa menit dan coba lagi.

Jika Anda membuat skrip alur ini, Anda mungkin ingin memperhitungkan ini dengan membangun dalam 2-3 menit waktu tunggu agar layanan titik akhir selesai disebarkan sebelum beralih ke pengaturan rute.

Definisi rute dapat berisi elemen-elemen ini:

  • Nama rute yang ingin Anda gunakan
  • Nama titik akhir yang ingin Anda gunakan
  • Filter yang menentukan peristiwa mana yang dikirim ke titik akhir
    • Untuk menonaktifkan rute sehingga tidak ada peristiwa yang dikirim, gunakan nilai filter false
    • Untuk mengaktifkan rute yang tidak memiliki pemfilteran tertentu, gunakan nilai filter true
    • Untuk mengetahui detail tentang jenis filter lainnya, lihat bagian Filter peristiwa di bawah ini

Jika tidak ada nama rute, tidak ada pesan yang dirutekan di luar Azure Digital Twins. Jika ada nama rute dan filternya adalah true, semua pesan dirutekan ke titik akhir. Jika ada nama rute dan filter lain ditambahkan, pesan akan difilter berdasarkan filter.

Rute peristiwa dapat dibuat dengan portal Microsoft Azure, API data plane EventRoutes, atau perintah CLI rute az dt. Seluruh bagian ini berjalan melalui proses pembuatan.

Untuk membuat rute peristiwa, buka halaman detail untuk instans Azure Digital Twins Anda di portal Microsoft Azure (Anda dapat menemukan instans dengan memasukkan namanya ke bilah pencarian portal).

Dari menu instans, pilihRute peristiwa. Kemudian dari halaman Rute peristiwa yang mengikuti, pilih + Buat rute peristiwa.

Pada halaman Buat rute peristiwa yang terbuka, pilih minimal:

  • Nama untuk rute Anda di bidang Nama
  • Titik akhir yang ingin Anda gunakan untuk membuat rute

Agar rute diaktifkan, Anda juga harus Menambahkan filter rute acara minimum true. (Meninggalkan nilai false default akan membuat rute, tetapi tidak ada peristiwa yang akan dikirim ke rute tersebut.) Untuk melakukannya, alihkan tombol untuk editor Tingkat Lanjut untuk mengaktifkannya, dan tulis true di kotak Filter .

Screenshot of creating an event route for your instance in the Azure portal.

Setelah selesai, pilih tombol Simpan untuk membuat rute peristiwa Anda.

Memfilter kejadian

Seperti dijelaskan di atas, rute memiliki bidang filter. Jika nilai filter pada rute Anda adalah false, tidak ada peristiwa yang akan dikirim ke titik akhir Anda.

Setelah Anda mengaktifkan filter trueminimal , titik akhir akan menerima berbagai jenis peristiwa dari Azure Digital Twins:

  • Telemetri yang ditembakkan oleh kembar digital menggunakan API layanan Azure Digital Twins
  • Pemberitahuan perubahan properti kembar, yang ditembakkan pada perubahan properti untuk setiap kembaran di instans Azure Digital Twins
  • Peristiwa siklus hidup, ditembakkan saat kembaran atau hubungan dibuat atau dihapus

Anda dapat membatasi jenis peristiwa yang dikirim dengan menentukan filter yang lebih spesifik.

Catatan

Filter peka huruf besar/kecil dan perlu mencocokkan kasus payload. Untuk filter telemetri, ini berarti bahwa casing perlu mencocokkan casing dalam telemetri yang dikirim oleh perangkat.

Untuk menambahkan filter peristiwa saat Anda membuat rute peristiwa, gunakan bagian Tambahkan filter rute peristiwa di halaman Buat rute peristiwa.

Anda dapat memilih dari beberapa opsi filter umum dasar, atau menggunakan opsi filter tingkat lanjut untuk menulis filter kustom Anda sendiri.

Menggunakan filter dasar

Untuk menggunakan filter dasar, perluas opsi Jenis peristiwa dan pilih kotak centang yang terkait dengan acara yang ingin Anda kirim ke titik akhir Anda.

Screenshot of creating an event route with a basic filter in the Azure portal, highlighting the checkboxes of the events.

Melakukannya akan mengisi otomatis kotak teks filter dengan teks filter yang telah Anda pilih:

Screenshot of creating an event route with a basic filter in the Azure portal, highlighting the autopopulated filter text after selecting the events.

Menggunakan filter tingkat lanjut

Anda juga dapat menggunakan opsi filter tingkat lanjut untuk menulis filter kustom Anda sendiri.

Untuk membuat rute peristiwa dengan opsi filter tingkat lanjut, alihkan tombol untuk Editor Tingkat Lanjut untuk mengaktifkannya. Anda kemudian dapat menulis filter peristiwa Anda sendiri di kotak Filter:

Screenshot of creating an event route with an advanced filter in the Azure portal.

Filter rute yang didukung

Berikut adalah filter rute yang didukung.

Nama filter Deskripsi Filter skema teks Nilai yang Didukung
Benar / Salah Memungkinkan membuat rute tanpa pemfilteran, atau menonaktifkan rute sehingga tidak ada acara yang dikirim <true/false> true = rute diaktifkan tanpa pemfilteran
false =rute dinonaktifkan
Jenis Jenis peristiwa yang mengalir melalui instans kembar digital Anda type = '<event-type>' Berikut adalah kemungkinan nilai jenis peristiwa:
Microsoft.DigitalTwins.Twin.Create
Microsoft.DigitalTwins.Twin.Delete
Microsoft.DigitalTwins.Twin.Update
Microsoft.DigitalTwins.Relationship.Create
Microsoft.DigitalTwins.Relationship.Update
Microsoft.DigitalTwins.Relationship.Delete
microsoft.iot.telemetry
Sumber Nama instans Azure Digital Twins source = '<host-name>' Berikut adalah kemungkinan nilai nama host:

Untuk pemberitahuan: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net

Untuk telemetri: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID>
Subjek Deskripsi peristiwa dalam konteks sumber peristiwa di atas subject = '<subject>' Berikut adalah nilai subjek yang mungkin:

Untuk pemberitahuan: Subjeknya adalah <twin-ID>
atau format URI untuk subjek, yang secara unik diidentifikasi oleh beberapa bagian atau ID:
<twin-ID>/relationships/<relationship-ID>

Untuk telemetri: Subjek adalah jalur komponen (jika telemetri dipancarkan dari komponen kembar), seperti comp1.comp2. Jika telemetri tidak dipancarkan dari komponen, bidang subjeknya kosong.
Skema data DTDL model ID dataschema = '<model-dtmi-ID>' Untuk telemetri: Skema data adalah ID model kembar atau komponen yang memancarkan telemetri. Misalnya: dtmi:example:com:floor4;2

Untuk pemberitahuan (buat/hapus): Skema data dapat diakses di isi pemberitahuan di $body.$metadata.$model.

Untuk pemberitahuan (pembaruan): Skema data dapat diakses di isi pemberitahuan di $body.modelId
Jenis konten Jenis konten nilai data datacontenttype = '<content-type>' Jenis konten adalah application/json
Versi spesifikasi Versi skema peristiwa yang Anda gunakan specversion = '<version>' Versinya harus 1.0. Nilai ini menunjukkan skema CloudEvents versi 1.0
Isi pemberitahuan Mereferensikan properti data apa pun di bidang pemberitahuan $body.<property> Lihat Notifikasi kejadian untuk contoh pemberitahuan. Properti apa pun di data bidang dapat direferensikan menggunakan $body

Catatan

Azure Digital Twins saat ini tidak mendukung penyaringan peristiwa berdasarkan bidang dalam array. Ini mencakup pemfilteran properti dalam patch bagian pemberitahuan perubahan kembar digital.

Jenis data berikut ini didukung sebagai nilai yang dikembalikan oleh referensi ke data di atas:

Jenis data Contoh
String STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor')
CONTAINS(subject, '<twin-ID>')
Bilangan bulat $body.errorCode > 200
Laju $body.temperature <= 5.5
Bool $body.poweredOn = true
Null $body.prop != null

Operator berikut didukung saat menentukan filter rute:

Keluarga Operator Contoh
Logika DAN, ATAU, ( ) (type != 'microsoft.iot.telemetry' OR datacontenttype = 'application/json') OR (specversion != '1.0')
Perbandingan <, <=, >, >=, =, != $body.temperature <= 5.5

Fungsi berikut didukung saat menentukan filter rute:

Function Deskripsi Contoh
STARTS_WITH(x, y) Mengembalikan true jika nilai x dimulai dengan string y. STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor')
DIAKHIRI_DENGAN(x,y) Mengembalikan true jika nilai x berakhir dengan stringy. ENDS_WITH($body.$metadata.$model, 'floor;1')
BERISI(x,y) Mengembalikan true jika nilai x berisi string y. CONTAINS(subject, '<twin-ID>')

Saat Anda menerapkan atau memperbarui filter, perubahan mungkin membutuhkan waktu beberapa menit untuk direfleksikan dalam alur data.

Memantau rute peristiwa

Metrik perutean seperti jumlah, latensi, dan tingkat kegagalan dapat dilihat di portal Microsoft Azure.

Untuk informasi tentang menampilkan dan mengelola metrik dengan Azure Monitor, lihat Mulai menggunakan penjelajah metrik. Untuk daftar lengkap metrik perutean yang tersedia untuk Azure Digital Twins, lihat Metrik perutean Azure Digital Twins.

Langkah berikutnya

Baca tentang berbagai jenis pesan peristiwa yang bisa Anda terima: