Sdílet prostřednictvím


Zpracování dat a uživatelem 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í posílají telemetrická data do služby Azure Digital Twins, můžou vývojáři zpracovávat data ve čtyřech fázích: ověřovat, odpovídat, výpočetníma dispatch.

zpracování dat v rámci Azure Digital Twins

  1. Fáze ověření transformuje příchozí telemetrickou zprávu do běžně srozumitelného objektu přenosu dat. Tato fáze také provádí ověřování zařízení a senzorů.
  2. Fáze shody nalezne příslušné funkce definované uživatelem ke spuštění. Předdefinovaní odpovídači najdou uživatelsky definované funkce na základě informací o zařízeních, senzorech a prostorech z příchozí telemetrické zprávy.
  3. Výpočetní fáze spouští uživatelsky definované funkce vybrané 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

Porovnávací nástroje

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

  • Všechny senzory datového typu Temperature reprezentované hodnotou escaped String \"Temperature\"
  • Mít 01 na jejich portu
  • Která patří zařízením s rozšířeným klíčem vlastnosti Manufacturer nastaveným na hodnotu escaped string \"Contoso\"
  • Které patří do prostor typu určeného ohraničeným řetězcem \"Venue\"
  • Které jsou potomky rodiče SpaceIdDE8F06CA-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 hlavní prostor senzoru.
  • Při porovnávání se 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ému grafu a službě dispečera. Po registraci uživatelem definované funkce v grafu musí být vytvořen porovnávač (zmíněný 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ů. Mezi příklady patří:

  • 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 Jak používat uživatelem definované funkce.

Příklady

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

  • Tato funkce hledá hodnoty oxidu uhličitého, pohybu a teploty, aby bylo možné určit, jestli je místnost k dispozici s těmito hodnotami v rozsahu. Kurzy pro službu Digital Twins prozkoumají tuto funkci 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 startunebo kurzechmůžete snadno nahradit provedením změn uvedených v části komentářů v rámci souboru.

Přiřazení role

Akce uživatelem definované funkce podléhají službě Azure Digital Twins řízení přístupu na základě role k 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. Například uživatelem definovaná funkce může mít možnost a oprávnění k CREATE, READ, UPDATEnebo DELETE grafová data 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