Kurz: Použití rozšíření zpráv azure IoT Hubu

Obohacení zpráv je schopnost Azure IoT Hubu označit zprávy dalšími informacemi před odesláním zpráv do určeného koncového bodu. Jedním z důvodů, proč použít rozšiřování zpráv, je zahrnout data, která lze použít ke zjednodušení zpracování v podřízené části. Například rozšiřování zpráv zařízení značkou dvojčete zařízení může snížit zatížení zákazníků, aby pro tyto informace volaly rozhraní API dvojčete zařízení. Další informace najdete v tématu Přehled rozšiřování zpráv.

V první části tohoto kurzu jste viděli, jak vytvořit vlastní koncové body a směrovat zprávy do jiných služeb Azure. V tomto kurzu se dozvíte, jak vytvořit a nakonfigurovat další prostředky potřebné k otestování rozšiřování zpráv pro centrum IoT. Mezi prostředky patří druhý kontejner úložiště pro existující účet úložiště (vytvořený v první části kurzu), který bude obsahovat rozšířené zprávy a trasu zpráv, která je tam odešle. Po dokončení konfigurace směrování zpráv a rozšiřování zpráv použijete aplikaci k odesílání zpráv do centra IoT. Centrum je pak směruje do obou kontejnerů úložiště. Rozšířené jsou pouze zprávy odeslané do koncového bodu pro kontejner rozšířeného úložiště.

V tomto kurzu provedete následující úlohy:

  • Ve svém účtu úložiště vytvořte druhý kontejner.
  • Vytvořte další vlastní koncový bod a směrujte do něj zprávy z centra IoT.
  • Nakonfigurujte rozšiřování zpráv, které jsou směrovány do nového koncového bodu.
  • Spusťte aplikaci, která simuluje zařízení IoT, které odesílá zprávy do centra.
  • Prohlédněte si výsledky a ověřte, že se u cílových zpráv používají rozšiřování zpráv.

Požadavky

  • Mít předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

  • Musíte mít dokončený kurz: Odesílání dat zařízení do azure Storage pomocí směrování zpráv ioT Hubu a udržování prostředků, které jste pro ni vytvořili.

  • Ujistěte se, že je v bráně firewall otevřený port 8883. Ukázka zařízení v tomto kurzu používá protokol MQTT, který komunikuje přes port 8883. Tento port může být blokovaný v některých podnikových a vzdělávacích síťových prostředích. Další informace a způsoby, jak tento problém obejít, najdete v tématu Připojení pro IoT Hub (MQTT).

Na webu Azure Portal nejsou žádné další požadavky.

Vytvoření druhého kontejneru v účtu úložiště

V první části tohoto kurzu jste vytvořili účet úložiště a kontejner pro směrované zprávy. Teď byste měli vytvořit druhý kontejner pro rozšířené zprávy.

  1. Na webu Azure Portal vyhledejte účty úložiště.

  2. Vyberte účet, který jste předtím vytvořili.

  3. V nabídce účtu úložiště vyberte v části Úložiště dat kontejnery.

  4. Vyberte Kontejner a vytvořte nový kontejner.

    Snímek obrazovky s vytvořením kontejneru úložiště

  5. Pojmenujte kontejner enricheda vyberte Vytvořit.

Směrování zpráv do druhého koncového bodu

Vytvořte druhý koncový bod a trasu pro rozšířené zprávy.

  1. Na webu Azure Portal přejděte do centra IoT.

  2. V nabídce prostředků v části Nastavení centra vyberte Směrování zpráv a pak vyberte Přidat.

    Snímek obrazovky znázorňující umístění tlačítka Přidat pro přidání nové trasy do centra IoT

  3. Na kartě Koncový bod vytvořte koncový bod úložiště zadáním následujících informací:

    Parametr Hodnota
    Typ koncového bodu Vyberte Úložiště.
    Název koncového bodu Zadejte ContosoStorageEndpointEnriched.
    Kontejner Azure Storage Vyberte Vybrat kontejner. Podle pokynů vyberte účet úložiště a obohacený kontejner, který jste vytvořili v předchozí části.
    Kódování Vyberte JSON. Pokud je toto pole neaktivní, oblast vašeho účtu úložiště nepodporuje JSON. V takovém případě pokračujte s výchozím AVRO.

    Snímek obrazovky znázorňující výběr kontejneru pro koncový bod

  4. Přijměte výchozí hodnoty pro zbývající parametry a vyberte Vytvořit + další.

  5. Pokračujte vytvořením nové trasy a teď, když jste přidali koncový bod úložiště. Zadejte následující informace pro novou trasu:

    Parametr Hodnota
    Název ContosoStorageRouteEnriched
    Zdroj dat Ověřte, že jsou v rozevíracím seznamu vybrané zprávy telemetrie zařízení.
    Povolení trasy Ověřte, zda je toto pole nastaveno na enabledhodnotu .
    Dotaz směrování Zadejte level="storage" jako řetězec dotazu.

    Snímek obrazovky znázorňující ukládání informací o dotazech směrování

  6. Vyberte Vytvořit a přidat obohacení.

Přidání rozšiřování zpráv do nového koncového bodu

Vytvořte tři rozšíření zpráv, které budou směrovány do rozšířeného kontejneru úložiště.

  1. Na kartě Obohacení v průvodci přidáním trasy přidejte tři rozšíření zpráv pro zprávy, které se přejdou do koncového bodu kontejneru úložiště označovaného jako obohacené.

    Přidejte tyto hodnoty jako rozšíření zpráv pro koncový bod ContosoStorageEndpointEnriched:

    Jméno Hodnota
    myIotHub $hubname
    DeviceLocation $twin.tags.location (předpokládá, že dvojče zařízení má značku umístění)
    Kódzákazníka 6ce345b8-1e4a-411e-9398-d34587459a3a

    Po dokončení by vaše rozšíření měla vypadat podobně jako na tomto obrázku:

    Snímek obrazovky tabulky se všemi přidanými rozšířeními

  2. Výběrem možnosti Přidat přidáte obohacení zpráv.

Teď máte nastavené rozšiřování zpráv pro všechny zprávy směrované do koncového bodu, který jste vytvořili pro rozšířené zprávy. Pokud nechcete do dvojčete zařízení přidat značku umístění, můžete přeskočit do části Rozšíření testovacích zpráv a pokračovat v kurzu.

Přidání značky polohy do dvojčete zařízení

Jedna z rozšíření zpráv nakonfigurovaných v centru IoT určuje klíč DeviceLocation s jeho hodnotou určenou následující cestou dvojčete zařízení: $twin.tags.location Pokud dvojče zařízení nemá značku umístění, cesta $twin.tags.locationdvojčete se označí jako řetězec pro klíč DeviceLocation v rozšiřování zpráv.

Pokud chcete přidat značku polohy do dvojčete vašeho zařízení, postupujte takto:

  1. Na webu Azure Portal přejděte do centra IoT.

  2. V navigační nabídce centra IoT vyberte Zařízení a pak vyberte své zařízení.

  3. Vyberte kartu dvojčete zařízení v horní části stránky zařízení a přidejte následující řádek těsně před pravou složenou závorku v dolní části dvojčete zařízení. Pak vyberte Uložit.

      , "tags": {"location": "Plant 43"}
    

    Snímek obrazovky s přidáním značky umístění do dvojčete zařízení na webu Azure Portal

Tip

Než budete pokračovat k další části, počkejte asi pět minut. Než se aktualizace dvojčete zařízení projeví v hodnotách rozšiřování zpráv, může to trvat až tak dlouho.

Další informace o tom, jak se cesty dvojčat zařízení zpracovávají s rozšiřováním zpráv, najdete v tématu Omezení rozšiřování zpráv. Další informace o dvojčatech zařízení najdete v tématu Principy a používání dvojčat zařízení ve službě IoT Hub.

Otestování rozšíření zpráv

Teď, když jsou rozšíření zpráv nakonfigurované pro koncový bod ContosoStorageEndpointEnriched , spusťte aplikaci simulovaného zařízení pro odesílání zpráv do centra IoT. V tomto okamžiku bylo směrování zpráv nastaveno takto:

  • Zprávy směrované do koncového bodu úložiště, který jste vytvořili v první části kurzu, nebudou obohaceny a budou uloženy v kontejneru úložiště, který jste vytvořili.

  • Zprávy směrované do koncového bodu úložiště ContosoStorageEndpointEnriched se rozšíří a uloží do rozšířeného kontejneru úložiště.

Pokud ještě nespouštíte konzolovou aplikaci SimulatedDevice z první části tohoto kurzu, spusťte ji znovu:

Tip

Pokud postupujete podle kroků Azure CLI pro tento kurz, spusťte ukázkový kód v samostatné relaci. Tímto způsobem můžete ukázkový kód povolit, aby pokračoval ve spuštění, zatímco budete postupovat podle zbývajících kroků rozhraní příkazového řádku.

  1. V ukázkové složce přejděte do /iot-hub/Tutorials/Routing/SimulatedDevice/ složky.

  2. Definice proměnných, které jste aktualizovali dříve, by měly být stále platné, ale pokud ne, upravte je v Program.cs souboru:

    1. Najděte definice proměnných v horní části třídy Program . Aktualizujte následující proměnné vlastními informacemi:

      • s_myDeviceId: ID zařízení, které jste přiřadili při registraci zařízení do centra IoT.
      • s_iotHubUri: Název hostitele vašeho centra IoT, který přebírá formát IOTHUB_NAME.azure-devices.net.
      • s_deviceKey: Primární klíč zařízení nalezený v informacích o identitě zařízení.
    2. Soubor uložte a zavřete.

  3. Spusťte ukázkový kód:

    dotnet run
    

Po opuštění konzolové aplikace, která se má spustit po dobu několika minut, si prohlédněte data:

  1. Na webu Azure Portal přejděte ke svému účtu úložiště.

  2. V navigační nabídce vyberte Prohlížeč úložiště. Výběrem kontejnerů objektů blob zobrazíte dva kontejnery, které jste vytvořili v průběhu těchto kurzů.

    Snímek obrazovky znázorňující kontejnery objektů blob v účtu úložiště

Zprávy v kontejneru označované jako rozšířené obsahují rozšiřování zpráv. Zprávy v kontejneru, který jste vytvořili dříve, mají nezpracované zprávy bez rozšiřování. Přejděte k podrobnostem rozšířeného kontejneru, dokud se nedostanete na konec, a pak otevřete nejnovější soubor zprávy. Potom u druhého kontejneru proveďte totéž, abyste ověřili, že je obohacený a druhý není.

Když se podíváte na zprávy, které byly rozšířeny, měli byste vidět "myIotHub" název centra, umístění a ID zákazníka, například toto:

{
  "EnqueuedTimeUtc":"2019-05-10T06:06:32.7220000Z",
  "Properties":
  {
    "level":"storage",
    "myIotHub":"{your hub name}",
    "DeviceLocation":"Plant 43",
    "customerID":"6ce345b8-1e4a-411e-9398-d34587459a3a"
  },
  "SystemProperties":
  {
    "connectionDeviceId":"Contoso-Test-Device",
    "connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
    "connectionDeviceGenerationId":"636930642531278483",
    "enqueuedTime":"2019-05-10T06:06:32.7220000Z"
  },"Body":"eyJkZXZpY2VJZCI6IkNvbnRvc28tVGVzdC1EZXZpY2UiLCJ0ZW1wZXJhdHVyZSI6MjkuMjMyMDE2ODQ4MDQyNjE1LCJodW1pZGl0eSI6NjQuMzA1MzQ5NjkyODQ0NDg3LCJwb2ludEluZm8iOiJUaGlzIGlzIGEgc3RvcmFnZSBtZXNzYWdlLiJ9"
}

Vyčištění prostředků

Pokud chcete odebrat všechny prostředky, které jste vytvořili v obou částech tohoto kurzu, odstraňte skupinu prostředků. Tato akce odstraní všechny prostředky, které skupina obsahuje. Pokud nechcete odstranit celou skupinu prostředků, můžete vybrat jednotlivé prostředky, ve které chcete odstranit.

  1. Na webu Azure Portal přejděte do skupiny prostředků, která obsahuje centrum IoT a účet úložiště pro účely tohoto kurzu.
  2. Zkontrolujte všechny prostředky, které jsou ve skupině prostředků, a určete, které prostředky chcete vyčistit.
    • Pokud chcete odstranit všechny prostředky, vyberte Odstranit skupinu prostředků.
    • Pokud chcete odstranit jenom určitý prostředek, pomocí zaškrtávacích políček u každého názvu prostředku vyberte ty, které chcete odstranit. Poté vyberte Odstranit.

Další kroky

V tomto kurzu jste nakonfigurovali a otestovali rozšiřování zpráv pro zprávy ioT Hubu při jejich směrování do koncového bodu.

Další informace o rozšiřování zpráv naleznete v tématu Přehled rozšiřování zpráv.

Další informace o IoT Hubu najdete v dalším kurzu.