Sdílet prostřednictvím


Zpracování dat a uživatelsky definované funkce

Důležité

Byla vydána nová verze služby Azure Digital Twins. Vzhledem k rozšířeným funkcím nové služby se původní služba Azure Digital Twins (popsaná v této sadě dokumentace) vyřadila z provozu.

Pokud chcete zobrazit dokumentaci k nové službě, navštivte aktivní dokumentaci ke službě Azure Digital Twins.

Azure Digital Twins nabízí pokročilé výpočetní funkce. Vývojáři můžou definovat a spouštět vlastní funkce pro příchozí zprávy telemetrie, které posílají události do předdefinovaných koncových bodů.

Tok zpracování dat

Jakmile zařízení odesílají telemetrická data do služby Azure Digital Twins, můžou vývojáři zpracovávat data ve čtyřech fázích: ověření, shoda, výpočetní prostředky a odeslání.

Tok zpracování dat Azure Digital Twins

  1. Fáze ověření transformuje příchozí telemetrická zpráva na běžně srozumitelný formát objektu přenosu dat. Tato fáze také provádí ověřování zařízení a senzorů.
  2. Fáze shody najde vhodné uživatelem definované funkce ke spuštění. Předdefinované shody najdou uživatelem definované funkce na základě informací o zařízení, senzoru a prostoru z příchozí zprávy telemetrie.
  3. Výpočetní fáze spouští uživatelem definované funkce odpovídající v předchozí fázi. Tyto funkce můžou číst a aktualizovat vypočítané hodnoty na uzlech prostorového grafu a můžou generovat vlastní oznámení.
  4. Fáze odeslání směruje všechna vlastní oznámení z výpočetní fáze do koncových bodů definovaných v grafu.

Objekty zpracování dat

Zpracování dat ve službě Azure Digital Twins se skládá z definování tří objektů: matcherů, uživatelem definovaných funkcí a přiřazení rolí.

Objekty zpracování dat Azure Digital Twins

Dohazovači

Matchers definují sadu podmínek, které vyhodnocují, jaké akce se provádějí na základě příchozí telemetrie snímačů. Podmínky pro určení shody můžou zahrnovat vlastnosti ze senzoru, nadřazeného zařízení senzoru a nadřazeného prostoru senzoru. Podmínky se vyjadřují jako porovnání s cestou JSON, jak je uvedeno v tomto příkladu:

  • Všechny senzory datového typu Teplota reprezentované hodnotou escaped String \"Temperature\"
  • Mít 01 na svém portu
  • Která patří zařízením s rozšířeným klíčem vlastnosti Manufacturer nastaveným na hodnotu escaped String \"Contoso\"
  • Která patří do mezer typu určeného řídicím řetězcem \"Venue\"
  • Které jsou potomky nadřazeného SpaceId DE8F06CA-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"
    }
  ]
}

Důležité

  • V cestách JSON se rozlišují malá a velká písmena.
  • Datová část JSON je stejná jako datová část vrácená:
    • /sensors/{id}?includes=properties,types pro senzor.
    • /devices/{id}?includes=properties,types,sensors,sensorsproperties,sensorstypes pro nadřazené zařízení senzoru.
    • /spaces/{id}?includes=properties,types,location,timezone pro nadřazený prostor senzoru.
  • Porovnání nerozlišují malá a velká písmena.

Uživatelem definované funkce

Uživatelem definovaná funkce je vlastní funkce spuštěná v izolovaném prostředí Azure Digital Twins. Uživatelem definované funkce mají přístup k nezpracované telemetrické zprávě senzoru při jejich přijetí. Uživatelem definované funkce mají také přístup k prostorové službě grafů a dispečerů. Po registraci uživatelem definované funkce v grafu musí být vytvořen shodný nástroj (podrobně uvedený výše), který určí, kdy se funkce spustí. Když například Azure Digital Twins přijme novou telemetrii z daného senzoru, může odpovídající uživatelem definovaná funkce vypočítat klouzavý průměr posledních několika čtení senzorů.

Uživatelem definované funkce lze psát v JavaScriptu. Pomocné metody pracují s grafem v uživatelsky definovaném spouštěcím prostředí. Vývojáři můžou spouštět vlastní fragmenty kódu proti zprávám telemetrie senzorů. Příkladem může být:

  • Nastavte senzor pro čtení přímo na objekt senzoru v grafu.
  • Proveďte akci na základě různých čtení senzorů v prostoru v grafu.
  • Vytvořte oznámení, pokud jsou splněny určité podmínky pro čtení příchozího senzoru.
  • Před odesláním oznámení připojte metadata grafu ke čtení senzoru.

Další informace najdete v tématu Použití uživatelem definovaných funkcí.

Příklady

Úložiště GitHubu pro ukázku služby Digital Twins C# obsahuje několik příkladů uživatelem definovaných funkcí:

  • Tato funkce hledá hodnoty oxidu uhličitého, pohybu a teploty k určení, zda je místnost k dispozici s těmito hodnotami v rozsahu. Kurzy pro službu Digital Twins tuto funkci prozkoumávají podrobněji.
  • Tato funkce hledá data z více snímačů pohybu a určuje, že prostor je k dispozici, pokud žádný z nich nezjistí žádný pohyb. Uživatelem definovanou funkci používanou v rychlém startu nebo kurzech můžete snadno nahradit provedením změn uvedených v části komentáře v souboru.

Přiřazení role

Akce uživatelem definované funkce podléhají řízení přístupu na základě role v Azure Digital Twins za účelem zabezpečení dat v rámci služby. Přiřazení rolí definují, které uživatelem definované funkce mají správná oprávnění pro interakci s prostorovým grafem a jejími entitami. Uživatelem definovaná funkce může mít například možnost a oprávnění k vytvoření, čtení, aktualizaci nebo odstranění dat grafu v daném prostoru. Úroveň přístupu uživatelem definované funkce se kontroluje, když uživatelem definovaná funkce požádá graf o data nebo se pokusí o akci. Další informace najdete v tématu Řízení přístupu na základě role.

Je možné, že nástroj pro porovnávání aktivuje uživatelem definovanou funkci, která nemá přiřazení rolí. V tomto případě se funkce definovaná uživatelem nepodaří načíst žádná data z grafu.

Další kroky