Export dat IoT do Webhooku

Tento článek popisuje, jak nakonfigurovat export dat pro odesílání dat do webhooku.

Pomocí této funkce můžete průběžně exportovat filtrovaná a rozšířená data IoT z vaší aplikace IoT Central. Export dat nasdílí změny téměř v reálném čase do jiných částí cloudového řešení pro přehledy teplé cesty, analýzy a úložiště.

Je například možné:

  • Nepřetržitě exportujte telemetrii, změny vlastností, připojení zařízení, životní cyklus zařízení, životní cyklus šablony zařízení a data protokolu auditu ve formátu JSON téměř v reálném čase.
  • Filtrováním datových proudů můžete exportovat data, která odpovídají vlastním podmínkám.
  • Obohacení datových proudů vlastními hodnotami a hodnotami vlastností ze zařízení
  • Transformujte datové proudy a upravte jejich tvar a obsah.

Tip

Když zapnete export dat, získáte od této chvíle jenom data. Pokud chcete zachovat historická data, zapněte export dat v rané fázi. Pokud chcete data ručně exportovat z časů, kdy byl export dat vypnutý, přečtěte si téma Použití rozhraní IoT Central REST API k dotazování zařízení.

Poznámka:

V některých případech může trvat až 60 sekund, než se zprávy exportují. Tento čas se měří od okamžiku, kdy IoT Central obdrží zprávu ze základního centra IoT do okamžiku doručení zprávy do cílového koncového bodu.

Požadavky

Pokud chcete používat funkce exportu dat, musíte mít oprávnění k exportu dat.

Nastavení cíle exportu webhooku

Pro cíle Webhooku IoT Central exportuje data téměř v reálném čase. Data v textu zprávy jsou ve stejném formátu jako pro službu Event Hubs a Service Bus.

Vytvoření cíle webhooku

Data můžete exportovat do veřejně dostupného koncového bodu WEBhooku HTTP. Pomocí requestBin můžete vytvořit testovací koncový bod Webhooku. RequestBin omezuje požadavek při dosažení limitu požadavku:

  1. Přejděte na RequestBin.

  2. Vyberte Vytvořit sadu RequestBin.

  3. Přihlaste se pomocí jedné z dostupných metod.

  4. Zkopírujte adresu URL vaší sady RequestBin, kterou použijete při testování exportu dat.

Vytvoření cíle Azure Data Exploreru v IoT Central na stránce exportu dat:

  1. Vyberte + Nový cíl.

  2. Jako typ cíle vyberte Webhook .

  3. Vložte adresu URL zpětného volání pro koncový bod Webhooku. Volitelně můžete nakonfigurovat autorizaci webhooku a přidat vlastní hlavičky.

    • V případě OAuth2.0 se podporuje pouze tok udělení přihlašovacích údajů klienta. Když cíl uložíte, IoT Central komunikuje s vaším poskytovatelem OAuth za účelem načtení autorizačního tokenu. Tento token je připojen k Authorization hlavičce pro každou zprávu poslanou do tohoto cíle.
    • V případě autorizačního tokenu můžete zadat hodnotu tokenu, která je přímo připojená k Authorization hlavičce každé zprávy odeslané do tohoto cíle.
  4. Zvolte Uložit.

Příklad konfigurace OAuth 2.0

Tento příklad ukazuje, jak nakonfigurovat cíl Webhooku tak, aby používal aplikaci funkcí Azure, která je chráněná pomocí přihlášení Microsoft Entra:

Nastavení Příklad Notes
Typ cíle Webhook
Adresa URL zpětného volání https://myapp.azurewebsites.net/api/HttpExample Adresa URL funkce.
Autorizace OAuth 2.0
Adresa URL tokenu https://login.microsoftonline.com/your-tenant-id/oauth2/v2.0/token Adresa URL, která se má použít k načtení tokenu. Tuto hodnotu najdete ve své aplikaci funkcí: Ověření > koncového bodu tokenu > OAuth 2.0 zprostředkovatele > identity Microsoftu (v2)
Client ID your-client-id ID klienta vaší aplikace funkcí. Tuto hodnotu najdete v aplikaci funkcí: Ověření > ID aplikace zprostředkovatele > identity Microsoftu (klienta)
Tajný klíč klienta your-client-secret Tajný klíč klienta vaší aplikace funkcí. Tuto hodnotu najdete v aplikaci funkcí: Ověřování certifikátů a tajných kódů > zprostředkovatele > identity Microsoftu
Cílová skupina Prázdné, pokud používáte aplikaci funkcí.
Obor https://your-client-id/.default Rozsah tokenu. Pro aplikaci funkcí použijte hodnotu ID klienta.**
Typ obsahu žádosti o token Auto

Jiné cíle webhooku můžou pro tato nastavení vyžadovat jiné hodnoty.

Nastavení exportu dat

Teď, když máte cíl exportovat data do, nastavte export dat v aplikaci IoT Central:

  1. Přihlaste se k aplikaci IoT Central.

  2. V levém podokně vyberte Export dat.

    Tip

    Pokud v levém podokně nevidíte export dat, nemáte oprávnění ke konfiguraci exportu dat v aplikaci. Požádejte správce o nastavení exportu dat.

  3. Vyberte + Nový export.

  4. Zadejte zobrazovaný název nového exportu a ujistěte se, že je export dat povolený.

  5. Zvolte typ dat, která chcete exportovat. Následující tabulka uvádí podporované typy exportu dat:

    Datový typ Popis Formát dat
    Telemetrie Exportujte telemetrické zprávy ze zařízení téměř v reálném čase. Každá exportovaná zpráva obsahuje úplný obsah původní zprávy o zařízení, normalizované. Formát zprávy telemetrie
    Změny vlastností Export změn do vlastností zařízení a cloudu téměř v reálném čase U vlastností zařízení jen pro čtení se exportují změny ohlášených hodnot. U vlastností pro čtení i zápis se vyexportují hlášené i požadované hodnoty. Změna formátu zprávy vlastnosti
    Připojení zařízení Exportujte události připojené k zařízení a odpojené události. Formát zprávy připojení zařízení
    Životní cyklus zařízení Exportujte registrované, odstraněné, zřízené, povolené, zakázané, displayNameChanged a události deviceTemplateChanged. Formát zprávy o změně životního cyklu zařízení
    Životní cyklus šablony zařízení Exportujte publikované změny šablony zařízení, včetně vytvořených, aktualizovaných a odstraněných. Změna formátu zprávy o životním cyklu šablony zařízení
    Protokoly auditu Protokoly aktualizací iniciovaných uživatelem u entit v aplikaci Další informace najdete v tématu Použití protokolů auditu ke sledování aktivit v aplikaci IoT Central. Formát zprávy protokolu auditu
  6. Volitelně můžete přidat filtry, abyste snížili množství exportovaných dat. Pro každý typ exportu dat jsou k dispozici různé typy filtrů:

    Typ dat Dostupné filtry
    Telemetrie
    • Filtrovat podle názvu zařízení, ID zařízení, šablony zařízení a jestli je simulované zařízení
    • Filtrování streamu tak, aby obsahoval pouze telemetrii, která splňuje podmínky filtru
    • Filtrování datového proudu tak, aby obsahovalo pouze telemetrii ze zařízení s vlastnostmi odpovídajícími podmínkám filtru
    • Filtrujte stream tak, aby obsahoval pouze telemetrii, která má vlastnosti zprávy, které splňují podmínku filtru. Vlastnosti zpráv (označované také jako vlastnosti aplikace) se odesílají v pytli párů klíč-hodnota v každé zprávě telemetrie. Pokud chcete vytvořit filtr vlastností zprávy, zadejte klíč vlastnosti zprávy, který hledáte, a zadejte podmínku. Exportují se pouze zprávy telemetrie s vlastnostmi, které odpovídají zadané podmínce filtru. Další informace o vlastnostech aplikace z dokumentace ke službě IoT Hub
    Změny vlastností
    • Filtrovat podle názvu zařízení, ID zařízení, šablony zařízení a jestli je simulované zařízení
    • Filtrování datového proudu tak, aby obsahovalo pouze změny vlastností, které splňují podmínky filtru
    Připojení zařízení
    • Filtrování podle názvu zařízení, ID zařízení, šablony zařízení, organizací a simulovaných zařízení
    • Filtrování streamu tak, aby obsahoval pouze změny ze zařízení s vlastnostmi odpovídajícími podmínkám filtru
    Životní cyklus zařízení
    • Filtrování podle názvu zařízení, ID zařízení, šablony zařízení a pokud je zařízení zřízené, povolené nebo simulované
    • Filtrování streamu tak, aby obsahoval pouze změny ze zařízení s vlastnostmi odpovídajícími podmínkám filtru
    Životní cyklus šablony zařízení
    • Filtrovat podle šablony zařízení
    Protokoly auditu
  7. Volitelně můžete rozšířit exportované zprávy o metadata páru klíč-hodnota navíc. Pro telemetrii, změny vlastností, připojení zařízení a typy exportu dat životního cyklu zařízení jsou k dispozici následující rozšíření:

    • Vlastní řetězec: Přidá do každé zprávy vlastní statický řetězec. Zadejte libovolný klíč a zadejte libovolnou řetězcovou hodnotu.
    • Vlastnost, která se přidá do každé zprávy:
      • Metadata zařízení, jako je název zařízení, název šablony zařízení, povoleno, organizace, zřízená a simulovaná.
      • Aktuální hlášená vlastnost zařízení nebo hodnota cloudové vlastnosti pro každou zprávu. Pokud je exportovaná zpráva ze zařízení, které nemá zadanou vlastnost, exportovaná zpráva nezískute obohacení.

Nakonfigurujte cíl exportu:

  1. Vyberte + Cíl a přidejte cíl, který jste už vytvořili, nebo vyberte Vytvořit nový.

  2. Pokud chcete data před exportem transformovat, vyberte + Transformovat. Další informace najdete v tématu Transformace dat uvnitř aplikace IoT Central pro export.

  3. Pokud chcete do jednoho exportu přidat až pět cílů, vyberte + Cíl .

  4. Až dokončíte nastavení exportu, vyberte Uložit. Po několika minutách se vaše data zobrazí ve vašich cílech.

Monitorování exportu

Na stránce exportu dat ve službě IoT Central můžete zkontrolovat stav exportů. Pomocí služby Azure Monitor můžete také zjistit, kolik dat exportujete, a případné chyby exportu. K exportu a metrikám stavu zařízení můžete přistupovat v grafech na webu Azure Portal pomocí rozhraní REST API, dotazů v PowerShellu nebo Azure CLI. V současné době můžete monitorovat následující metriky exportu dat ve službě Azure Monitor:

  • Počet zpráv příchozích k exportu před aplikování filtrů
  • Počet zpráv, které procházejí filtry
  • Počet zpráv úspěšně exportovaných do cílů
  • Počet nalezených chyb

Další informace najdete v tématu Monitorování stavu aplikace.

Formáty dat

Následující části popisují formáty exportovaných dat:

Formát telemetrie

Každá exportovaná zpráva obsahuje normalizovanou formu celé zprávy, kterou zařízení odeslalo v textu zprávy. Zpráva je ve formátu JSON a kódovaná jako UTF-8. Informace v každé zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy - telemetry.
  • deviceId: ID zařízení, které odeslalo zprávu telemetrie.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy služba IoT Central přijala tuto zprávu.
  • enrichments: Všechny rozšiřování nastavené pro export.
  • module: Modul IoT Edge, který tuto zprávu odeslal. Toto pole se zobrazí jenom v případě, že zpráva pochází z modulu IoT Edge.
  • component: Komponenta, která tuto zprávu odeslala. Toto pole se zobrazí pouze v případě, že funkce odeslané ve zprávě byly modelovány jako součást v šabloně zařízení.
  • messageProperties: Další vlastnosti, které zařízení odeslalo se zprávou. Tyto vlastnosti se někdy označují jako vlastnosti aplikace. Další informace najdete v dokumentaci ke službě IoT Hub.

Vlastnosti zprávy

Zprávy telemetrie mají vlastnosti pro metadata i datovou část telemetrie. Předchozí fragment kódu ukazuje příklady systémových zpráv, například deviceId a enqueuedTime. Další informace ovlastnostech

Pokud potřebujete do zpráv telemetrie přidat vlastní metadata, můžete do zpráv telemetrie přidat vlastnosti. Když například zařízení vytvoří zprávu, musíte přidat časové razítko.

Následující fragment kódu ukazuje, jak přidat iothub-creation-time-utc vlastnost do zprávy při jejím vytvoření na zařízení:

Důležité

Formát tohoto časového razítka musí být UTC bez informací o časovém pásmu. Je například 2021-04-21T11:30:16Z platný, 2021-04-21T11:30:16-07:00 je neplatný.

async function sendTelemetry(deviceClient, index) {
  console.log('Sending telemetry message %d...', index);
  const msg = new Message(
    JSON.stringify(
      deviceTemperatureSensor.updateSensor().getCurrentTemperatureObject()
    )
  );
  msg.properties.add("iothub-creation-time-utc", new Date().toISOString());
  msg.contentType = 'application/json';
  msg.contentEncoding = 'utf-8';
  await deviceClient.sendEvent(msg);
}

Formát změn vlastností

Každá zpráva nebo záznam představuje změny vlastností zařízení a cloudu. Informace v exportované zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy - properties.
  • messageType: Buď cloudPropertyChange, devicePropertyDesiredChangenebo devicePropertyReportedChange.
  • deviceId: ID zařízení, které odeslalo zprávu telemetrie.
  • schema: Název a verze schématu datové části.
  • enqueuedTime: Čas, kdy Služba IoT Central tuto změnu zjistila.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • properties: Pole vlastností, které se změnily, včetně názvů vlastností a hodnot, které se změnily. Informace o komponentě a modulu jsou zahrnuty, pokud je vlastnost modelována v rámci komponenty nebo modulu IoT Edge.
  • enrichments: Všechny rozšiřování nastavené pro export.

Formát změn připojení zařízení

Každá zpráva nebo záznam představuje událost připojení z jednoho zařízení. Informace v exportované zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy - deviceConnectivity.
  • messageType: Buď connected nebo disconnected.
  • deviceId: ID zařízení, které se změnilo.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy k této změně došlo v IoT Central.
  • enrichments: Všechny rozšiřování nastavené pro export.

Formát změn životního cyklu zařízení

Každá zpráva nebo záznam představuje jednu změnu jednoho zařízení. Informace v exportované zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy - deviceLifecycle.
  • messageType: Typ změny, ke které došlo. Jeden z: registered, deleted, , enabledprovisioned, disabled, , displayNameChanged, a deviceTemplateChanged.
  • deviceId: ID zařízení, které se změnilo.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy k této změně došlo v IoT Central.
  • enrichments: Všechny rozšiřování nastavené pro export.

Formát změn životního cyklu šablony zařízení

Každá zpráva nebo záznam představuje jednu změnu v jedné publikované šabloně zařízení. Informace v exportované zprávě zahrnují:

  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy - deviceTemplateLifecycle.
  • messageType: Buď created, updatednebo deleted.
  • schema: Název a verze schématu datové části.
  • templateId: ID šablony zařízení přiřazené k zařízení.
  • enqueuedTime: Čas, kdy k této změně došlo v IoT Central.
  • enrichments: Všechny rozšiřování nastavené pro export.

Formát protokolu auditu

Každá zpráva protokolu auditu představuje změnu iniciovanou uživatelem na auditovatelnou entitu v aplikaci IoT Central. Informace v exportované zprávě zahrnují:

  • actor: Informace o uživateli, který entitu upravil.
  • applicationId: ID aplikace IoT Central.
  • messageSource: Zdroj zprávy - audit.
  • messageType: Typ změny, ke které došlo. Jeden z: updated, created, deleted.
  • updated: Pouze v případě, že messageType je updated. Poskytuje další podrobnosti o aktualizaci.
  • resource: Podrobnosti o upravené entitě.
  • schema: Název a verze schématu datové části.
  • deviceId: ID zařízení, které se změnilo.
  • enqueuedTime: Čas, kdy k této změně došlo v IoT Central.
  • enrichments: Všechny rozšiřování nastavené pro export.

Další kroky

Teď, když víte, jak exportovat do služby Service Bus, je navrhovaným dalším krokem informace o exportu do služby Event Hubs.