Share via


Adatfeldolgozás és felhasználó által definiált függvények

Fontos

Megjelent az Azure Digital Twins szolgáltatás új verziója. Az új szolgáltatás bővített képességeinek fényében az eredeti Azure Digital Twins szolgáltatást (amelyet a jelen dokumentációs készlet ismertet) kivonták.

Az új szolgáltatás dokumentációjának megtekintéséhez tekintse meg az aktív Azure Digital Twins-dokumentációt.

Az Azure Digital Twins fejlett számítási képességeket kínál. A fejlesztők egyéni függvényeket definiálhatnak és futtathatnak a bejövő telemetriai üzeneteken, hogy előre meghatározott végpontokra küldjék az eseményeket.

Adatfeldolgozási folyamat

Miután az eszközök telemetriai adatokat küldenek az Azure Digital Twinsnek, a fejlesztők négy fázisban dolgozhatják fel az adatokat: ellenőrzés, egyeztetés, számítás és küldés.

Az Azure Digital Twins adatfeldolgozási folyamata

  1. Az érvényesítési fázis a bejövő telemetriai üzenetet egy általánosan ismert adatátviteli objektumformátumra alakítja át. Ez a fázis az eszköz- és érzékelőellenőrzést is végrehajtja.
  2. Az egyeztetési fázis megkeresi a megfelelő, felhasználó által definiált függvényeket. Az előre definiált egyeztetők megkeresik a felhasználó által definiált függvényeket az eszköz, az érzékelő és a bejövő telemetriai üzenet helyadatai alapján.
  3. A számítási fázis az előző fázisban egyeztetett felhasználó által definiált függvényeket futtatja. Ezek a függvények beolvashatják és frissíthetik a térbeli gráfcsomópontokon lévő számított értékeket, és egyéni értesítéseket bocsáthatnak ki.
  4. A küldési fázis a számítási fázisból a gráfban meghatározott végpontokra irányítja az egyéni értesítéseket.

Adatfeldolgozási objektumok

Az Azure Digital Twinsben az adatfeldolgozás három objektum meghatározásából áll: egyezők, felhasználó által definiált függvények és szerepkör-hozzárendelések.

Az Azure Digital Twins adatfeldolgozási objektumai

Egyezők

Az egyezők olyan feltételeket határoznak meg, amelyek kiértékelik, hogy milyen műveletek történnek a bejövő érzékelő telemetriai adatai alapján. Az egyezés meghatározásának feltételei közé tartozhatnak az érzékelő tulajdonságai, az érzékelő szülőeszköze és az érzékelő szülőtere. A feltételek egy JSON-útvonal összehasonlításaként vannak kifejezve, az alábbi példában ismertetett módon:

  • Az adattípus hőmérsékletének minden érzékelője, amelyet a megadott sztringérték jelöl \"Temperature\"
  • A 01 porton
  • Amelyek olyan eszközökhöz tartoznak, amelyek kiterjesztett tulajdonságkulccsal rendelkező Manufacturer tulajdonságkulcsa a sztringjeles sztring értékre van állítva \"Contoso\"
  • Amelyek a sztringben megadott típusú szóközökhöz tartoznak \"Venue\"
  • Amelyek a SpaceId szülő leszármazottaiDE8F06CA-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"
    }
  ]
}

Fontos

  • A JSON-elérési utak megkülönböztetik a kis- és nagybetűket.
  • A JSON hasznos adatai megegyeznek a következő által visszaadott hasznos adatokkal:
    • /sensors/{id}?includes=properties,types az érzékelőhöz.
    • /devices/{id}?includes=properties,types,sensors,sensorsproperties,sensorstypes az érzékelő szülőeszközéhez.
    • /spaces/{id}?includes=properties,types,location,timezone az érzékelő szülőteréhez.
  • Az összehasonlítások nem megkülönböztetik a kis- és nagybetűket.

Felhasználó által definiált függvények

A felhasználó által definiált függvények egy elkülönített Azure Digital Twins-környezetben végrehajtott egyéni függvények. A felhasználó által definiált függvények hozzáféréssel rendelkeznek a beérkező nyers érzékelői telemetriai üzenetekhez. A felhasználó által definiált függvények a térbeli gráfhoz és a diszpécserszolgáltatáshoz is hozzáférnek. Miután a felhasználó által definiált függvény regisztrálva van egy gráfon belül, létre kell hozni egy ( fent részletezett) egyezőt a függvény végrehajtásának időpontjának megadásához. Ha például az Azure Digital Twins új telemetriát kap egy adott érzékelőtől, a felhasználó által megadott megfeleltethető függvény kiszámíthatja az utolsó néhány érzékelői adat mozgóátlagát.

A felhasználó által definiált függvények JavaScript nyelven írhatók. A segítő metódusok a felhasználó által meghatározott végrehajtási környezetben használják a gráfot. A fejlesztők egyéni kódrészleteket hajthatnak végre az érzékelő telemetriai üzenetei alapján. Példák:

  • Állítsa be az érzékelő beolvasását közvetlenül a gráfon belüli érzékelőobjektumra.
  • Műveletet hajt végre a gráf egy területén belüli különböző érzékelőadatok alapján.
  • Értesítés létrehozása, ha bizonyos feltételek teljesülnek egy bejövő érzékelő beolvasásához.
  • Az értesítés elküldése előtt csatolja a gráf metaadatait az érzékelő leolvasásához.

További információ: Felhasználó által definiált függvények használata.

Példák

A Digital Twins C#-minta GitHub-adattára néhány példát tartalmaz a felhasználó által definiált függvényekre:

  • Ez a függvény szén-dioxid-, mozgás- és hőmérsékletértékeket keres annak meghatározásához, hogy egy helyiség elérhető-e ezekkel az értékekkel a tartományban. A Digital Twins oktatóanyagai ezt a függvényt részletesebben is megismerik.
  • Ez a függvény több mozgásérzékelő adatait keresi, és megállapítja, hogy rendelkezésre áll-e a tér, ha egyikük sem észlel mozgást. Egyszerűen lecserélheti a rövid útmutatóban vagy az oktatóanyagokban használt felhasználó által definiált függvényt a fájl megjegyzések szakaszában említett módosítások elvégzésével.

Szerepkör-hozzárendelés

A felhasználó által definiált függvények műveleteire az Azure Digital Twins szerepköralapú hozzáférés-vezérlése vonatkozik, hogy biztonságossá tegye az adatokat a szolgáltatáson belül. A szerepkör-hozzárendelések határozzák meg, hogy mely felhasználó által definiált függvények rendelkeznek a megfelelő engedélyekkel a térbeli gráf és az entitásai kezeléséhez. Egy felhasználó által definiált függvény például rendelkezhet képességgel és engedéllyel a gráfadatok létrehozására, olvasására, frissítésére vagy törlésére egy adott területen. A felhasználó által definiált függvény hozzáférési szintjét akkor ellenőrzi a rendszer, ha a felhasználó által definiált függvény adatokat kér a gráftól, vagy egy műveletet kísérel meg. További információért olvassa el a szerepköralapú hozzáférés-vezérlést.

Az egyezők olyan felhasználó által definiált függvényt aktiválhatnak, amely nem rendelkezik szerepkör-hozzárendeléssel. Ebben az esetben a felhasználó által definiált függvény nem tud adatokat beolvasni a gráfból.

Következő lépések