Veri işleme ve kullanıcı tanımlı işlevleri

Önemli

Azure Digital Twins hizmetinin yeni bir sürümü yayınlandı. Yeni hizmetin genişletilmiş özellikleri ışığında özgün Azure Digital Twins hizmeti (bu belge kümesinde açıklanmıştır) kullanımdan kaldırılmıştır.

Yeni hizmetin belgelerini görüntülemek için etkin Azure Digital Twins Belgeleri'ni ziyaret edin.

Azure Digital Twins gelişmiş işlem özellikleri sunar. Geliştiriciler, önceden tanımlanmış uç noktalara olay göndermek için gelen telemetri iletilerine karşı özel işlevler tanımlayabilir ve çalıştırabilir.

Veri işleme akışı

Cihazlar Azure Digital Twins'e telemetri verileri gönderdikten sonra geliştiriciler verileri dört aşamada işleyebilir: doğrulama, eşleştirme, işlem ve dağıtma.

Azure Digital Twins veri işleme akışı

  1. Doğrulama aşaması, gelen telemetri iletisini yaygın olarak anlaşılan bir veri aktarımı nesne biçimine dönüştürür. Bu aşama ayrıca cihaz ve algılayıcı doğrulamasını yürütür.
  2. Eşleştirme aşaması, çalıştırılacak uygun kullanıcı tanımlı işlevleri bulur. Önceden tanımlanmış eşleştiriciler, gelen telemetri iletisindeki cihaz, algılayıcı ve alan bilgilerini temel alan kullanıcı tanımlı işlevleri bulur.
  3. İşlem aşaması, önceki aşamada eşleşen kullanıcı tanımlı işlevleri çalıştırır. Bu işlevler uzamsal graf düğümlerinde hesaplanan değerleri okuyabilir ve güncelleştirebilir ve özel bildirimler yayabilir.
  4. Gönderim aşaması, işlem aşamasından gelen tüm özel bildirimleri grafikte tanımlanan uç noktalara yönlendirir.

Veri işleme nesneleri

Azure Digital Twins'de veri işleme üç nesne tanımlamadan oluşur: eşleştiriciler, kullanıcı tanımlı işlevler ve rol atamaları.

Azure Digital Twins veri işleme nesneleri

Eşleştiriciler

Eşleştiriciler, gelen algılayıcı telemetrisine göre hangi eylemlerin gerçekleştirildiğini değerlendiren bir dizi koşul tanımlar. Eşleşmeyi belirleme koşulları algılayıcının özelliklerini, algılayıcının ana cihazını ve algılayıcının üst alanını içerebilir. Koşullar, bu örnekte açıklandığı gibi bir JSON yolu ile karşılaştırma olarak ifade edilir:

  • Kaçış Dizesi değeriyle temsil edilen tüm veri türü Sıcaklık algılayıcıları \"Temperature\"
  • Bağlantı noktasında olması 01
  • Üretici genişletilmiş özellik anahtarı kaçış Dizesi değerine ayarlanmış cihazlara ait olan\"Contoso\"
  • Kaçış Dizesi tarafından belirtilen türdeki boşluklara ait olan \"Venue\"
  • Üst SpaceId'nin alt öğeleridirDE8F06CA-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"
    }
  ]
}

Önemli

  • JSON yolları büyük/küçük harfe duyarlıdır.
  • JSON yükü, tarafından döndürülen yükle aynıdır:
    • /sensors/{id}?includes=properties,types algılayıcı için.
    • /devices/{id}?includes=properties,types,sensors,sensorsproperties,sensorstypes algılayıcının ana cihazı için.
    • /spaces/{id}?includes=properties,types,location,timezone algılayıcının üst alanı için.
  • Karşılaştırmalar büyük/küçük harfe duyarlı değildir.

Kullanıcı tanımlı işlevler

Kullanıcı tanımlı işlev, yalıtılmış bir Azure Digital Twins ortamında yürütülen özel bir işlevdir. Kullanıcı tanımlı işlevler, alınan ham algılayıcı telemetri iletisine erişebilir. Kullanıcı tanımlı işlevler uzamsal graf ve dağıtıcı hizmetine de erişebilir. Kullanıcı tanımlı işlev bir grafik içinde kaydedildikten sonra, işlevin ne zaman yürütüleceğini belirtmek için bir eşleştirici ( yukarıda ayrıntılı olarak açıklanmıştır) oluşturulmalıdır. Örneğin, Azure Digital Twins belirli bir algılayıcıdan yeni telemetri aldığında, eşleşen kullanıcı tanımlı işlev son birkaç algılayıcı okumasının hareketli ortalamasını hesaplayabilir.

Kullanıcı tanımlı işlevler JavaScript ile yazılabilir. Yardımcı yöntemler, kullanıcı tanımlı yürütme ortamındaki grafikle etkileşim kurar. Geliştiriciler algılayıcı telemetri iletilerine karşı özel kod parçacıkları yürütebilir. Örneklere şunlar dahildir:

  • Algılayıcı okumasını doğrudan grafın içindeki algılayıcı nesnesine ayarlayın.
  • Grafikteki bir alanın içindeki farklı algılayıcı okumalarını temel alan bir eylem gerçekleştirin.
  • Gelen algılayıcı okuması için belirli koşullar karşılandığında bildirim oluşturun.
  • Bildirim göndermeden önce algılayıcı okumasına graf meta verileri ekleyin.

Daha fazla bilgi için bkz. Kullanıcı tanımlı işlevleri kullanma.

Örnekler

Digital Twins C# örneği için GitHub deposu, kullanıcı tanımlı işlevlere birkaç örnek içerir:

  • Bu işlev , bir odanın aralıktaki bu değerlerle kullanılabilir olup olmadığını belirlemek için karbondioksit, hareket ve sıcaklık değerlerini arar. Digital Twins öğreticileri bu işlevi daha ayrıntılı olarak inceler.
  • Bu işlev birden çok hareket algılayıcısından gelen verileri arar ve hiçbir hareket algılamazsa alanın kullanılabilir olduğunu belirler. Hızlı başlangıçta veya öğreticilerde kullanılan kullanıcı tanımlı işlevi, dosyanın açıklamalar bölümünde belirtilen değişiklikleri yaparak kolayca değiştirebilirsiniz.

Rol ataması

Kullanıcı tanımlı bir işlevin eylemleri, hizmet içindeki verilerin güvenliğini sağlamak için Azure Digital Twins rol tabanlı erişim denetimine tabidir. Rol atamaları, hangi kullanıcı tanımlı işlevlerin uzamsal graf ve varlıklarıyla etkileşime geçmek için uygun izinlere sahip olduğunu tanımlar. Örneğin, kullanıcı tanımlı bir işlev belirli bir alanın altında CREATE, READ, UPDATE veya DELETE graf verilerini oluşturma yeteneğine ve iznine sahip olabilir. Kullanıcı tanımlı işlev grafta veri istediğinde veya bir eylem denediğinde kullanıcı tanımlı bir işlevin erişim düzeyi denetlenmektedir. Daha fazla bilgi için bkz. Rol tabanlı erişim denetimi.

Bir eşleştiricinin rol ataması olmayan kullanıcı tanımlı bir işlevi tetiklemesini sağlamak mümkündür. Bu durumda, kullanıcı tanımlı işlev grafikteki verileri okuyamıyor.

Sonraki adımlar