Kurz: Použití Azure CLI a Azure Portal ke konfiguraci IoT Hub zpráv
Směrování zpráv umožňuje odesílat data telemetrie ze zařízení IoT do integrovaných koncových bodů kompatibilních s centrem událostí nebo vlastních koncových bodů, jako je BLOB storage, Service Bus fronty, Service Bus témata a Event Hubs. Chcete-li nakonfigurovat vlastní směrování zpráv, vytvořte dotazy směrování pro přizpůsobení trasy, která odpovídá určité podmínce. Po nastavení se příchozí data automaticky přesměrují na koncové body pomocí služby IoT Hub. Pokud zpráva neodpovídá žádnému z definovaných směrovacích dotazů, bude směrována do výchozího koncového bodu.
V tomto 2 kurzu se naučíte, jak nastavit a používat tyto vlastní dotazy směrování s IoT Hub. Zprávy ze zařízení IoT směrujete do jednoho z několika koncových bodů, včetně úložiště objektů BLOB a fronty Service Bus. Zprávy do fronty Service Bus vybírají aplikace logiky a odesílají se prostřednictvím e-mailu. Zprávy, které nemají definované vlastní směrování zpráv, se odešlou do výchozího koncového bodu a pak se vybírají Azure Stream Analytics a zobrazí se ve vizualizaci Power BI.
K dokončení částí 1 a 2 tohoto kurzu provedete následující úlohy:
Část I: vytvoření prostředků, nastavení směrování zpráv
- Vytvoření prostředků – služby IoT Hub, účtu úložiště, fronty Service Bus a simulovaného zařízení. Můžete to udělat pomocí Azure Portal, Azure Resource Manager šablony, rozhraní příkazového řádku Azure nebo Azure PowerShell.
- Konfigurace koncových bodů a směrování zpráv v IoT Hub pro účet úložiště a Service Bus fronty.
Část II: odeslání zpráv do centra, zobrazení směrovaných výsledků
- Vytvoření aplikace logiky, která se aktivuje a odešle e-mail, kdykoli se ve frontě Service Bus objeví nová zpráva.
- Stažení a spuštění aplikaci, která bude simulovat IoT zařízení odesílající zprávy do centra s různými možnosti směrování.
- Vytvoření vizualizace Power BI pro data odesílaná výchozím koncovým bodem.
- Zobrazení výsledků...
- ...ve frontě Service Bus a v e-mailech.
- ...v účtu úložiště.
- ...ve vizualizaci Power BI.
Požadavky
V části 1 tohoto kurzu:
- Mít předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
V části 2 tohoto kurzu:
- Musíte mít hotovou část 1 tohoto kurzu a prostředky budou stále k dispozici.
- Nainstalujte Visual Studio.
- Mít přístup k účtu Power BI k analýze Stream Analytics výchozího koncového bodu. (Vyzkoušejte službu Power BI zdarma.)
- Máte pracovní nebo školní účet pro odesílání e-mailů s oznámením.
- Ujistěte se, že je v bráně firewall otevřený port 8883. Ukázka 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 prostředích sítě. Další informace a způsoby, jak tento problém obejít, najdete v tématu připojení k IoT Hub (MQTT).
Použití služby Azure Cloud Shell
Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Můžete použít předinstalované příkazy služby Cloud Shell ke spuštění kódu uvedeného v tomto článku, aniž byste museli instalovat cokoli do svého místního prostředí.
Spuštění služby Azure Cloud Shell:
| Možnost | Příklad nebo odkaz |
|---|---|
| Zvolte Vyzkoušet v pravém horním rohu bloku kódu. Výběr Vyzkoušet automaticky nekopíruje kód do služby Cloud Shell. | ![]() |
| Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. | ![]() |
| Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. | ![]() |
Pokud chcete spustit kód uvedený v tomto článku ve službě Azure Cloud Shell, postupujte takto:
Spusťte Cloud Shell.
Vyberte tlačítko Kopírovat na bloku kódu a kód zkopírujte.
Vložte kód do relace Cloud Shell pomocí kláves Ctrl+Shift+V ve Windows a Linuxu nebo pomocí kláves Cmd+Shift+V v systému macOS.
Spusťte kód stisknutím klávesy Enter.
Vytvoření základních prostředků
Než budete moct nakonfigurovat směrování zpráv, musíte vytvořit centrum IoT, účet úložiště a frontu Service Bus. Tyto prostředky je možné vytvořit pomocí jednoho ze čtyř článků, které jsou k dispozici v části 1 tohoto kurzu: Azure Portal, Azure Resource Manager šablona, rozhraní příkazového řádku Azure nebo Azure PowerShell.
Použijte pro všechny prostředky stejnou skupinu a umístění. Pak na konci můžete odebrat všechny prostředky v jednom kroku odstraněním skupiny prostředků.
Níže je uveden seznam kroků, které je třeba provést v následujících částech:
Vytvořte skupinu prostředků.
Vytvořte centrum IoT ve vrstvě S1. Přidejte do centra IoT skupinu uživatelů. Skupinu uživatelů používá služba Azure Stream Analytics při získávání dat.
Poznámka
K dokončení tohoto kurzu musíte použít Centrum IoT v placené úrovni. Úroveň Free umožňuje nastavit pouze jeden koncový bod a tento kurz vyžaduje více koncových bodů.
Vytvořte standardní účet úložiště V1 s replikací Standard_LRS.
Vytvořte oboru názvů a frontu Service Bus.
Vytvořte identitu zařízení pro simulované zařízení, které bude odesílat zprávy do vašeho centra. Uložte klíč pro fázi testování. (Pokud vytváříte šablonu Správce prostředků, to se provádí po nasazení šablony.)
Vytvoření základních prostředků pomocí Azure CLI
V tomto kurzu se k vytvoření základních prostředků používá Azure CLI a pak se pomocí Azure Portal ukáže, jak nakonfigurovat směrování zpráv a nastavit virtuální zařízení pro testování.
Zkopírujte a vložte níže uvedený skript do Cloud Shell a stiskněte Enter. Skript se spouští po řádku po řádku. Tím se vytvoří základní prostředky pro tento kurz, včetně účtu úložiště, IoT Hub, Service Bus oboru názvů a Service Bus fronty.
Existuje několik názvů prostředků, které musí být globálně jedinečné, například IoT Hub název a název účtu úložiště. Aby to bylo snazší, připojí se tyto názvy prostředků s náhodnou alfanumerická hodnota s názvem randomValue. Hodnota randomValue se vygeneruje jednou v horní části skriptu a připojí se k názvům prostředků podle potřeby v celém skriptu. Pokud nechcete, aby byla náhodná, můžete ji nastavit na prázdný řetězec nebo na konkrétní hodnotu.
Tip
Tip k ladění: Tento skript používá symbol pokračování (zpětné lomítko), aby byl \ skript čitelnější. Pokud máte problém se spuštěním skriptu, ujistěte se, že Cloud Shell spuštěná relace a že po žádném zpětném lomítku nejsou žádné bash mezery.
# This retrieves the subscription id of the account
# in which you're logged in.
# This field is used to set up the routing queries.
subscriptionID=$(az account show --query id)
# Concatenate this number onto the resources that have to be globally unique.
# You can set this to "" or to a specific value if you don't want it to be random.
# This retrieves a random value.
randomValue=$RANDOM
# Set the values for the resource names that
# don't have to be globally unique.
location=westus
resourceGroup=ContosoResources
iotHubConsumerGroup=ContosoConsumers
containerName=contosoresults
# Create the resource group to be used
# for all the resources for this tutorial.
az group create --name $resourceGroup \
--location $location
# The IoT hub name must be globally unique,
# so add a random value to the end.
iotHubName=ContosoTestHub$randomValue
echo "IoT hub name = " $iotHubName
# Create the IoT hub.
az iot hub create --name $iotHubName \
--resource-group $resourceGroup \
--sku S1 --location $location
# Add a consumer group to the IoT hub for the 'events' endpoint.
az iot hub consumer-group create --hub-name $iotHubName \
--name $iotHubConsumerGroup
# The storage account name must be globally unique,
# so add a random value to the end.
storageAccountName=contosostorage$randomValue
echo "Storage account name = " $storageAccountName
# Create the storage account to be used as a routing destination.
az storage account create --name $storageAccountName \
--resource-group $resourceGroup \
--location $location \
--sku Standard_LRS
# Get the primary storage account key.
# You need this to create the container.
storageAccountKey=$(az storage account keys list \
--resource-group $resourceGroup \
--account-name $storageAccountName \
--query "[0].value" | tr -d '"')
# See the value of the storage account key.
echo "storage account key = " $storageAccountKey
# Create the container in the storage account.
az storage container create --name $containerName \
--account-name $storageAccountName \
--account-key $storageAccountKey \
--public-access off
# The Service Bus namespace must be globally unique,
# so add a random value to the end.
sbNamespace=ContosoSBNamespace$randomValue
echo "Service Bus namespace = " $sbNamespace
# Create the Service Bus namespace.
az servicebus namespace create --resource-group $resourceGroup \
--name $sbNamespace \
--location $location
# The Service Bus queue name must be globally unique,
# so add a random value to the end.
sbQueueName=ContosoSBQueue$randomValue
echo "Service Bus queue name = " $sbQueueName
# Create the Service Bus queue to be used as a routing destination.
az servicebus queue create --name $sbQueueName \
--namespace-name $sbNamespace \
--resource-group $resourceGroup
Teď, když jsou základní prostředky nastavené, můžete nakonfigurovat směrování zpráv v Azure Portal .
Nastavení směrování zpráv
Potřebujete směrovat zprávy do různých prostředků na základě vlastností, které ke zprávě připojilo simulované zařízení. Zprávy, které nejsou směrovány podle vlastních pravidel, se posílají na výchozí koncový bod (zprávy/události). V dalším kurzu odešlete zprávy do IoT Hub a zjistíte, že jsou směrované do různých umístění.
| Hodnota | Výsledek |
|---|---|
| level="storage" | Zapsat do úložiště Azure Storage. |
| level="critical" | Zapsat do fronty Service Bus. Aplikace logiky načte zprávu z fronty a pomocí Office 365 ji odešle e-mailem. |
| default | Zobrazte tato data pomocí Power BI. |
Prvním krokem je nastavení koncového bodu, na který budou data směrována. Druhým krokem je nastavení trasy zprávy, která používá daný koncový bod. Po nastavení směrování můžete zobrazit koncové body a trasy zpráv na portálu.
Směrování do účtu úložiště
Nyní nastavte směrování pro účet úložiště. Přejděte do podokna Směrování zpráv a přidejte trasu. Při přidávání trasy pro ni definujte nový koncový bod. Po nastavení tohoto směrování se zprávy s vlastností level nastavenou na storage zapisují do účtu úložiště automaticky.
Poznámka
Data je možné zapsat do úložiště objektů BLOB ve formátu Apache Avro , který je výchozí nebo JSON.
Formát kódování lze nastavit pouze v době, kdy je nakonfigurován koncový bod služby Blob Storage. Formát nelze změnit pro koncový bod, který již byl nastaven. Při použití kódování JSON musíte nastavit contentType na JSON a contentEncoding na UTF-8 ve vlastnostech systému zpráv.
Podrobnější informace o použití koncového bodu služby Blob Storage najdete v tématu pokyny k směrování do úložiště.
Teď nastavíte konfiguraci směrování zpráv tak, aby Azure Storage.
V Azure Portalvyberte Skupiny prostředků a pak vyberte vaši skupinu prostředků. Tento kurz používá ContosoResources.
V seznamu prostředků vyberte centrum IoT. Tento kurz používá ContosoTestHub.
V prostředním sloupci vyberte Směrování zpráv s textem Zasílání zpráv*. Výběrem + Přidat** zobrazte podokno Přidat trasu. Vyberte +Přidat koncový bod vedle pole Koncový bod a pak vyberte Storage. Zobrazí se podokno Přidat koncový bod úložiště.

Zadejte název koncového bodu. V tomto kurzu se používá ContosoStorageEndpoint.

Vyberte Vyberte kontejner. Tím přejdete na seznam vašich účtů úložiště. Vyberte ten, který jste nastavili v přípravné krocích. V tomto kurzu se používá contosostorage. Zobrazí se seznam kontejnerů v daném účtu úložiště. Vyberte kontejner, který jste nastavili v přípravné krocích. Tento kurz používá contosoresults. Potom v dolní části obrazovky klikněte na Vybrat. Vrátí se do jiného podokna Přidat koncový bod úložiště. Zobrazí se adresa URL vybraného kontejneru.
Nastavte kódování na AVRO nebo JSON. Pro účely tohoto kurzu použijte u zbývajících polí výchozí hodnoty. Pokud vybraná oblast nepodporuje kódování JSON, bude toto pole zašednuté. Nastavte formát názvu souboru.
Poznámka
Nastavte formát názvu objektu blob pomocí formátu názvu souboru objektu blob. Výchozí formát je
{iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. Formát musí obsahovat {iothub}, {partition}, {YYYY}, {MM}, {DD}, {HH} a {mm} v libovolném pořadí.Například při použití výchozího formátu názvu souboru objektu blob a za předpokladu, že název centra je ContosoTestHub a datum a čas je 30. října 2018 v 10:56, bude název objektu blob vypadat takto:
ContosoTestHub/0/2018/10/30/10/56.Objekty blob jsou ve výchozím nastavení zapsány ve formátu AVRO.
Výběrem možnosti Vytvořit v dolní části stránky vytvořte koncový bod úložiště a přidejte ho do trasy. Vrátíte se do podokna Přidat trasu.
Dokončete zbývající informace o dotazu směrování. Tento dotaz určuje kritéria pro odesílání zpráv do kontejneru úložiště, který jste právě přidali jako koncový bod. Vyplňte pole na obrazovce.
Vyplňte zbývající pole.
Název: Zadejte název trasy. V tomto kurzu se používá ContosoStorageRoute. Dále zadejte koncový bod pro úložiště. Tento kurz používá ContosoStorageEndpoint.
Zadat zdroj dat: V rozevíracím seznamu vyberte Zprávy telemetrie zařízení.
Vyberte Povolit trasu: Ujistěte se, že je toto pole nastavené na
enabled.Dotaz směrování: Jako řetězec dotazu zadejte
level="storage".

Vyberte Uložit. Po dokončení se vrátíte do podokna Směrování zpráv, kde se zobrazí váš nový dotaz směrování pro úložiště. Zavřete podokno Směrování zpráv, které vás vrátí na stránku Skupina prostředků.
Směrování do Service Bus fronty
Nyní nastavte směrování pro frontu Service Bus. Přejděte do podokna Směrování zpráv a přidejte trasu. Při přidávání trasy definujte jako Service Bus frontu jako koncový bod trasy. Po nastavení této trasy se zprávy s vlastností level nastavenou na critical zapisou do fronty Service Bus, která aktivuje aplikaci logiky, která pak odešle e-mail s informacemi.
Na stránce Skupina prostředků vyberte své centrum IoT a pak vyberte Směrování zpráv.
V podokně Směrování zpráv vyberte +Přidat.
V podokně Přidat trasu vyberte +Přidat poblíž + koncový bod. Vyberte Fronta služby Service Bus. Zobrazí se podokno Přidat koncový bod služby Service Bus.

Vyplňte zbývající pole:
Název koncového bodu: Zadejte název koncového bodu. V tomto kurzu se používá ContosoSBQEndpoint.
Service Bus oboru názvů: Pomocí rozevíracího seznamu vyberte obor názvů služby Service Bus, který jste nastavili v přípravých krocích. Tento kurz používá ContosoSBNamespace.
Service Bus fronty: Pomocí rozevíracího seznamu vyberte Service Bus frontu. Tento kurz používá contososbqueue.
Vyberte Vytvořit a přidejte první koncový bod Service Bus fronty. Vrátíte se do podokna Přidat trasu.

Teď vyplňte zbývající informace o dotazu směrování. Tento dotaz určuje kritéria pro odesílání zpráv do fronty Service Bus, kterou jste právě přidali jako koncový bod. Vyplňte pole na obrazovce.
Název: Zadejte název trasy. Tento kurz používá ContosoSBQueueRoute.
Koncový bod: Zobrazí se koncový bod, který jste právě nastavili.
Zdroj dat: Vyberte z rozevíracího seznamu Telemetrické zprávy zařízení.
Povolit trasu: Nastavte toto pole na
enable.Dotaz směrování: Jako
level="critical"dotaz směrování zadejte .
Vyberte Uložit. Po návratu do podokna trasy se zobrazí obě vaše nové trasy.

Vlastní koncové body, které nastavíte, můžete zobrazit tak, že vyberete kartu vlastní koncové body .

Zavřete podokno Směrování zpráv a vraťte se do podokna Skupina prostředků.
Vytvoření simulovaného zařízení
V dalším kroku vytvořte identitu zařízení a uložte její klíč pro pozdější použití. Tuto identitu zařízení používá simulační aplikace k odesílání zpráv do centra IoT. Tato funkce není dostupná v PowerShellu nebo při použití Azure Resource Manager šablony. Následující kroky vám poví, jak vytvořit simulované zařízení pomocí Azure Portal.
Otevřete Azure Portal a přihlaste se ke svému účtu Azure.
Vyberte Skupiny prostředků a pak zvolte vaši skupinu prostředků. Tento kurz používá ContosoResources.
V seznamu prostředků vyberte své centrum IoT. Tento kurz používá ContosoTestHub. Vyberte v podokně Hub volbu Zařízení IoT.
V podokně Zařízení IoT vyberte + Přidat zařízení. V podokně Přidat zařízení zadejte ID zařízení. Tento kurz používá Contoso-Test-Device. Ponechte klíče prázdné a zaškrtněte Automaticky vygenerovat klíče. Zkontrolujte, že je povoleno Připojit zařízení k centru IoT. Vyberte Uložit.

Teď, když je vytvořené, vyberte zařízení a zobrazte vygenerované klíče. Vyberte ikonu Kopírovat u primárního klíče a uložte si ji někam, Poznámkový blok pro testovací fázi tohoto kurzu.

Další kroky
Teď, když máte nastavené prostředky a nakonfigurované trasy zpráv, přejděte k dalšímu kurzu, kde se dozvíte, jak odesílat zprávy do centra IoT a jak je směrovat do různých cílů.


