Bagikan melalui


Pemrosesan data dan fungsi yang ditentukan pengguna

Penting

Versi baru layanan Azure Digital Twins telah dirilis. Mengingat kemampuan layanan baru yang diperluas, layanan Azure Digital Twins asli (dijelaskan dalam kumpulan dokumentasi ini) telah dihentikan.

Untuk melihat dokumentasi layanan baru, kunjungi Dokumentasi Azure Digital Twins aktif.

Azure Digital Twins menawarkan kemampuan komputasi tingkat lanjut. Pengembang dapat menentukan dan menjalankan fungsi kustom terhadap pesan telemetri masuk untuk mengirim peristiwa ke titik akhir yang telah ditentukan sebelumnya.

Aliran pemrosesan data

Setelah perangkat mengirim data telemetri ke Azure Digital Twins, pengembang dapat memproses data dalam empat fase: memvalidasi, mencocokkan, menghitung, dan mengirim.

Alur pemrosesan data Azure Digital Twins

  1. Fase validasi mengubah pesan telemetri masuk ke format objek transfer data yang umum dipahami. Fase ini juga menjalankan validasi perangkat dan sensor.
  2. Fase kecocokan menemukan fungsi yang ditentukan pengguna yang sesuai untuk dijalankan. Pencocokan yang telah ditentukan sebelumnya menemukan fungsi yang ditentukan pengguna berdasarkan perangkat, sensor, dan informasi ruang dari pesan telemetri masuk.
  3. Fase komputasi menjalankan fungsi yang ditentukan pengguna yang cocok di fase sebelumnya. Fungsi-fungsi ini mungkin membaca dan memperbarui nilai komputasi pada simpul grafik spasial dan dapat memancarkan pemberitahuan kustom.
  4. Fase pengiriman merutekan pemberitahuan kustom apa pun dari fase komputasi ke titik akhir yang ditentukan dalam grafik.

Objek pemrosesan data

Pemrosesan data di Azure Digital Twins terdiri dari mendefinisikan tiga objek: pencocok, fungsi yang ditentukan pengguna, dan penetapan peran.

Objek pemrosesan data Azure Digital Twins

Pencocokan

Pencocok menentukan serangkaian kondisi yang mengevaluasi tindakan apa yang terjadi berdasarkan telemetri sensor masuk. Kondisi untuk menentukan kecocokan mungkin mencakup properti dari sensor, perangkat induk sensor, dan ruang induk sensor. Kondisi dinyatakan sebagai perbandingan terhadap jalur JSON seperti yang diuraikan dalam contoh ini:

  • Semua sensor suhu tipe data yang diwakili oleh nilai String yang lolos \"Temperature\"
  • Memiliki 01 di port mereka
  • Yang termasuk dalam perangkat dengan kunci properti yang diperluas Produsen diatur ke nilai String yang lolos \"Contoso\"
  • Yang termasuk dalam spasi jenis yang ditentukan oleh String escaped \"Venue\"
  • Yang merupakan keturunan dari SpaceId indukDE8F06CA-1138-4AD7-89F4-F782CC6F69FD
{
  "id": "23535afafd-f39b-46c0-9b0c-0dd3892a1c30",
  "name": "My custom matcher",
  "spaceId": "DE8F06CA-1138-4AD7-89F4-F782CC6F69FD",
  "description": "All sensors of datatype Temperature with 01 in their port that belong to devices with the extended property key Manufacturer set to the value Contoso and that belong to spaces of type Venue that are somewhere below space Id DE8F06CA-1138-4AD7-89F4-F782CC6F69FD",
  "conditions": [
    {
      "id": "43898sg43-e15a-4e9c-abb8-2gw464364",
      "target": "Sensor",
      "path": "$.dataType",
      "value": "\"Temperature\"",
      "comparison": "Equals"
    },
    {
      "id": "wt3th44-e15a-35sg-seg3-235wf3ga463",
      "target": "Sensor",
      "path": "$.port",
      "value": "01",
      "comparison": "Contains"
    },
    {
      "id": "735hs33-e15a-37jj-23532-db901d550af5",
      "target": "SensorDevice",
      "path": "$.properties[?(@.name == 'Manufacturer')].value",
      "value": "\"Contoso\"",
      "comparison": "Equals"
    },
    {
      "id": "222325-e15a-49fg-5744-463643644",
      "target": "SensorSpace",
      "path": "$.type",
      "value": "\"Venue\"",
      "comparison": "Equals"
    }
  ]
}

Penting

  • Jalur JSON peka huruf besar/kecil.
  • Payload JSON sama dengan payload yang dikembalikan oleh:
    • /sensors/{id}?includes=properties,types untuk sensor.
    • /devices/{id}?includes=properties,types,sensors,sensorsproperties,sensorstypes untuk perangkat induk sensor.
    • /spaces/{id}?includes=properties,types,location,timezone untuk ruang induk sensor.
  • Perbandingannya tidak peka huruf besar/kecil.

Fungsi yang ditentukan pengguna

Fungsi yang ditentukan pengguna adalah fungsi kustom yang dijalankan dalam lingkungan Azure Digital Twins yang terisolasi. Fungsi yang ditentukan pengguna memiliki akses ke pesan telemetri sensor mentah saat diterima. Fungsi yang ditentukan pengguna juga memiliki akses ke grafik spasial dan layanan dispatcher. Setelah fungsi yang ditentukan pengguna terdaftar dalam grafik, pencocokan (terperinci di atas) harus dibuat untuk menentukan kapan fungsi dijalankan. Misalnya, ketika Azure Digital Twins menerima telemetri baru dari sensor tertentu, fungsi yang ditentukan pengguna yang cocok dapat menghitung rata-rata bergerak dari beberapa pembacaan sensor terakhir.

Fungsi yang ditentukan pengguna dapat ditulis dalam JavaScript. Metode pembantu berinteraksi dengan grafik di lingkungan eksekusi yang ditentukan pengguna. Pengembang dapat menjalankan cuplikan kode kustom terhadap pesan telemetri sensor. Contoh meliputi:

  • Atur pembacaan sensor langsung ke objek sensor dalam grafik.
  • Lakukan tindakan berdasarkan pembacaan sensor yang berbeda dalam ruang dalam grafik.
  • Buat pemberitahuan saat kondisi tertentu terpenuhi untuk pembacaan sensor masuk.
  • Lampirkan metadata grafik ke pembacaan sensor sebelum mengirimkan pemberitahuan.

Untuk informasi selengkapnya, baca Cara menggunakan fungsi yang ditentukan pengguna.

Contoh

Repositori GitHub untuk sampel Digital Twins C# berisi beberapa contoh fungsi yang ditentukan pengguna:

  • Fungsi ini mencari nilai karbon dioksida, gerakan, dan suhu untuk menentukan apakah ruangan tersedia dengan nilai-nilai ini dalam rentang. Tutorial untuk Digital Twins menjelajahi fungsi ini secara lebih rinci.
  • Fungsi ini mencari data dari beberapa sensor gerakan, dan menentukan bahwa ruang tersedia jika tidak ada yang mendeteksi gerakan apa pun. Anda dapat dengan mudah mengganti fungsi yang ditentukan pengguna yang digunakan dalam mulai cepat, atau tutorial, dengan membuat perubahan yang disebutkan di bagian komentar file.

Penetapan peran

Tindakan fungsi yang ditentukan pengguna tunduk pada kontrol akses berbasis peran Azure Digital Twins untuk mengamankan data dalam layanan. Penetapan peran menentukan fungsi yang ditentukan pengguna mana yang memiliki izin yang tepat untuk berinteraksi dengan grafik spasial dan entitasnya. Misalnya, fungsi yang ditentukan pengguna mungkin memiliki kemampuan dan izin untuk membuat, MEMBACA, MEMPERBARUI, atau MENGHAPUS data grafik di bawah ruang tertentu. Tingkat akses fungsi yang ditentukan pengguna diperiksa saat fungsi yang ditentukan pengguna meminta data kepada grafik atau mencoba tindakan. Untuk informasi selengkapnya, baca Kontrol akses berbasis peran.

Dimungkinkan bagi pencocokan untuk memicu fungsi yang ditentukan pengguna yang tidak memiliki penetapan peran. Dalam hal ini, fungsi yang ditentukan pengguna gagal membaca data apa pun dari grafik.

Langkah berikutnya