Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak vizualizovat data snímačů v reálném čase, která vaše centrum IoT přijímá pomocí webové aplikace Node.js běžící na místním počítači. Po místním spuštění webové aplikace můžete webovou aplikaci hostovat ve službě Aplikace Azure Service.
Požadavky
Ukázka webové aplikace pro tento kurz je napsaná v Node.js. Kroky v tomto článku předpokládají vývojový počítač s Windows; Tyto kroky však můžete provést také v systému Linux ve vašem upřednostňovaném prostředí.
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Centrum IoT ve vašem předplatném Azure Pokud centrum ještě nemáte, můžete postupovat podle kroků v tématu Vytvoření centra IoT.
Zařízení zaregistrované ve službě IoT Hub. Pokud ve službě IoT Hub nemáte zařízení, postupujte podle pokynů v části Registrace zařízení.
Simulované zařízení, které odesílá telemetrické zprávy do centra IoT. Pomocí online simulátoru Raspberry Pi získáte simulované zařízení, které odesílá data o teplotě do IoT Hubu.
Node.js verze 14 nebo novější. Chcete-li zkontrolovat verzi Node.js, spusťte
node --version.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Začínáme s Azure Cloud Shellem.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Ověřování v Azure pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Použití a správa rozšíření pomocí Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Přidání skupiny příjemců do centra IoT
Skupiny příjemců poskytují nezávislá zobrazení do streamu událostí, která umožňují aplikacím a službám Azure nezávisle využívat data ze stejného koncového bodu služby Event Hubs. V této části přidáte skupinu příjemců do integrovaného koncového bodu centra IoT, který webová aplikace používá ke čtení dat.
Spuštěním následujícího příkazu přidejte skupinu příjemců do integrovaného koncového bodu centra IoT:
az iot hub consumer-group create --hub-name YOUR_IOT_HUB_NAME --name YOUR_CONSUMER_GROUP_NAME
Poznamenejte si název, který zvolíte, budete ho potřebovat později v tomto kurzu.
Získejte řetězec pro připojení služby pro centrum IoT
Centra IoT se vytvářejí s několika výchozími zásadami přístupu. Jednou z těchto zásad je zásada služby , která poskytuje dostatečná oprávnění ke čtení a zápisu koncových bodů centra IoT Hub. Spuštěním následujícího příkazu získejte připojovací řetězec pro centrum IoT, který dodržuje zásady služby:
az iot hub connection-string show --hub-name YOUR_IOT_HUB_NAME --policy-name service
Řetězec pro připojení ke službě by měl vypadat podobně jako v následujícím příkladu:
"HostName=YOUR_IOT_HUB_NAME.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey=YOUR_SHARED_ACCESS_KEY"
Poznamenejte si řetězec připojení ke službě, který budete potřebovat později v tomto kurzu.
Důležité
Tento článek obsahuje postup připojení ke službě pomocí sdíleného přístupového podpisu. Tato metoda ověřování je vhodná pro testování a vyhodnocení, ale ověřování ve službě pomocí MICROSOFT Entra ID nebo spravovaných identit je bezpečnější přístup. Další informace najdete v tématu Osvědčené postupy zabezpečení zabezpečení řešení > IoT v cloudu.
Stažení webové aplikace z GitHubu
Stáhněte nebo naklonujte ukázku webové aplikace z GitHubu: web-apps-node-iot-hub-data-visualization.
Prozkoumání kódu webové aplikace
Na vývojovém počítači přejděte do adresáře web-apps-node-iot-hub-data-visualization a pak otevřete webovou aplikaci ve svém oblíbeném editoru. Následující příklad ukazuje strukturu souborů zobrazenou v editoru Visual Studio Code:
Chvíli se podívejte na následující soubory:
server.js je skript na straně služby, který inicializuje webový soket a třídu obálky Event Hubs. Poskytuje zpětné volání do třídy obálky Event Hubs, kterou třída používá k vysílání příchozích zpráv do webového soketu.
skripty/event-hub-reader.js je skript na straně serveru, který se připojuje k vestavěnému koncovému bodu IoT Hubu pomocí zadaného připojovacího řetězce a skupiny příjemců. Extrahuje DeviceId a EnqueuedTimeUtc z metadat příchozích zpráv a pak předá zprávu pomocí metody zpětného volání registrované server.js.
public/js/chart-device-data.js je skript na straně klienta, který naslouchá na webovém soketu, sleduje každou id zařízení a ukládá posledních 50 bodů příchozích dat pro každé zařízení. Potom sváže vybraná data zařízení s objektem grafu.
public/index.html zpracovává rozložení uživatelského rozhraní webové stránky a odkazuje na nezbytné skripty pro logiku na straně klienta.
Konfigurace proměnných prostředí pro webovou aplikaci
Aby bylo možné číst data z centra IoT, potřebuje webová aplikace připojovací řetězec vašeho centra IoT a název skupiny příjemců, kterou by měla číst. Načte tyto řetězce z procesního prostředí v následujících řádcích v server.js:
const iotHubConnectionString = process.env.IotHubConnectionString;
if (!iotHubConnectionString) {
console.error(`Environment variable IotHubConnectionString must be specified.`);
return;
}
console.log(`Using IoT Hub connection string [${iotHubConnectionString}]`);
const eventHubConsumerGroup = process.env.EventHubConsumerGroup;
console.log(eventHubConsumerGroup);
if (!eventHubConsumerGroup) {
console.error(`Environment variable EventHubConsumerGroup must be specified.`);
return;
}
console.log(`Using event hub consumer group [${eventHubConsumerGroup}]`);
Nastavte proměnné prostředí v příkazovém okně pomocí následujících příkazů. Nahraďte zástupné hodnoty připojovacím řetězcem služby pro vaše IoT centrum a názvem skupiny příjemců, kterou jste vytvořili dříve. Nepoužívejte uvozovky.
set IotHubConnectionString=YOUR_IOT_HUB_CONNECTION_STRING
set EventHubConsumerGroup=YOUR_CONSUMER_GROUP_NAME
Spusťte webovou aplikaci
Ujistěte se, že je vaše zařízení spuštěné a odesílá data.
V příkazovém okně spusťte následující řádky, abyste stáhli a nainstalovali odkazované balíčky a spustili web:
npm install npm startV konzole by se měl zobrazit výstup, který značí, že webová aplikace byla úspěšně připojená k vašemu centru IoT a naslouchá na portu 3000:
Otevření webové stránky pro zobrazení dat z ioT Hubu
Otevřete prohlížeč na http://localhost:3000.
V seznamu Vybrat zařízení vyberte své zařízení, abyste viděli spuštěný graf posledních 50 datových bodů teploty a vlhkosti odesílaných zařízením do centra IoT.
Výstup by se měl zobrazit také v konzole, ve které se zobrazují zprávy, které webová aplikace vysílá klientovi prohlížeče:
Hostování webové aplikace ve službě App Service
Služba Aplikace Azure poskytuje platformu jako službu (PAAS) pro hostování webových aplikací. Webové aplikace hostované ve službě App Service můžou využívat funkce Azure, jako jsou zabezpečení, vyrovnávání zatížení a škálovatelnost. Webové aplikace můžou využívat také řešení Azure a Partner DevOps, jako je průběžné nasazování, správa balíčků atd. App Service podporuje webové aplikace vyvinuté v mnoha oblíbených jazycích a nasazené v infrastruktuře pro Windows nebo Linux.
V této části zřídíte webovou aplikaci ve službě App Service a nasadíte do ní kód pomocí příkazů Azure CLI. Podrobnosti o příkazech použitých v dokumentaci az webapp najdete.
Plán služby App Service definuje sadu výpočetních prostředků pro spuštění aplikace hostované ve službě App Service. V tomto kurzu používáme k hostování webové aplikace úroveň Developer/Free. S úrovní Free běží vaše webová aplikace na sdílených prostředcích Windows s jinými aplikacemi App Service, včetně aplikací jiných zákazníků. Azure také nabízí plány služby App Service pro nasazení webových aplikací do výpočetních prostředků Linuxu. Tento krok můžete přeskočit, pokud už máte plán služby App Service, který chcete použít.
Pokud chcete vytvořit plán služby App Service pomocí úrovně Windows Free, použijte příkaz az appservice plan create . Použijte stejnou skupinu prostředků, ve které je váš IoT hub. Název plánu služby může obsahovat velká a malá písmena, číslice a pomlčky.
az appservice plan create --name NEW_NAME_FOR_YOUR_APP_SERVICE_PLAN --resource-group YOUR_RESOURCE_GROUP_NAME --sku FREEPomocí příkazu az webapp create zřiďte webovou aplikaci v plánu služby App Service. Tento
--deployment-local-gitparametr umožňuje nahrávat a nasazovat kód webové aplikace z úložiště Git na místním počítači. Název webové aplikace musí být globálně jedinečný a může obsahovat velká a malá písmena, číslice a pomlčky. V závislosti na verzi Node.js modulu runtime, který používáte, nezapomeňte pro--runtimeparametr zadat Node.js verze 16 nebo novější. Pomocí příkazuaz webapp list-runtimesmůžete získat seznam podporovaných prostředí runtime.az webapp create -n NEW_NAME_FOR_YOUR_WEB_APP -g YOUR_RESOURCE_GROUP_NAME -p YOUR_APP_SERVICE_PLAN_NAME --runtime "NODE:16LTS" --deployment-local-gitPomocí příkazu az webapp config appsettings set přidejte nastavení aplikace pro proměnné prostředí, které určují připojovací řetězec centra IoT a skupinu příjemců centra událostí. Jednotlivá nastavení jsou v parametru
-settingsoddělená mezerami. Použijte připojovací řetězec služby pro centrum IoT a skupinu příjemců, kterou jste vytvořili dříve v tomto kurzu.az webapp config appsettings set -n YOUR_WEB_APP_NAME -g YOUR_RESOURCE_GROUP_NAME --settings EventHubConsumerGroup=YOUR_CONSUMER_GROUP_NAME IotHubConnectionString="YOUR_IOT_HUB_CONNECTION_STRING"Povolte pro webovou aplikaci protokol Web Sockets a nastavte webovou aplikaci tak, aby přijímala pouze požadavky HTTPS (požadavky HTTP se přesměrují na HTTPS).
az webapp config set -n YOUR_WEB_APP_NAME -g YOUR_RESOURCE_GROUP_NAME --web-sockets-enabled true az webapp update -n YOUR_WEB_APP_NAME -g YOUR_RESOURCE_GROUP_NAME --https-only trueK nasazení kódu do služby App Service použijete přihlašovací údaje pro nasazení na úrovni uživatele. Vaše přihlašovací údaje pro nasazení na úrovni uživatele se liší od přihlašovacích údajů Azure a používají se pro místní nasazení Gitu a nasazení FTP do webové aplikace. Po nastavení jsou platné ve všech vašich aplikacích App Service ve všech předplatných ve vašem účtu Azure. Pokud jste dříve nastavili přihlašovací údaje pro nasazení na úrovni uživatele, můžete je použít.
Pokud jste ještě nenastavili uživatelské přihlašovací údaje pro nasazení, nebo si nepamatujete své heslo, spusťte příkaz az webapp deployment user set. Uživatelské jméno nasazení musí být v rámci Azure jedinečné a nesmí obsahovat symbol „@“ pro lokální push na Git. Po zobrazení výzvy zadejte a potvrďte nové heslo. Heslo musí mít alespoň osm znaků, přičemž dva z následujících tří prvků: písmena, číslice a symboly.
az webapp deployment user set --user-name NAME_FOR_YOUR_USER_CREDENTIALSZískejte adresu URL Gitu, která se má použít k nasdílení kódu do služby App Service.
az webapp deployment source config-local-git -n YOUR_WEB_APP_NAME -g YOUR_RESOURCE_GROUP_NAMEPřidejte do svého klonu vzdálené úložiště, které odkazuje na úložiště Git pro webovou aplikaci ve službě App Service.
GIT_ENDPOINT_URLZástupný symbol nahraďte adresou URL vrácenou v předchozím kroku. Ujistěte se, že jste v ukázkovém adresáři, web-apps-code-iot-hub-data-visualization, a pak v příkazovém okně spusťte následující příkaz.git remote add webapp GIT_ENDPOINT_URLPokud chcete nasadit kód do služby App Service, zadejte do příkazového okna následující příkaz. Ujistěte se, že jste v ukázkovém adresáři web-apps-code-iot-hub-data-visualization. Pokud se zobrazí výzva k zadání přihlašovacích údajů, zadejte přihlašovací údaje pro nasazení na úrovni uživatele, které jste vytvořili v kroku 5. Odeslání na hlavní větev vzdáleného úložiště App Service.
git push webapp master:masterPrůběh aktualizací při nasazení v příkazovém okně. Úspěšné nasazení končí řádky podobnými následujícímu výstupu:
remote: remote: Finished successfully. remote: Running post deployment command(s)... remote: Deployment successful. To https://contoso-web-app-3.scm.azurewebsites.net/contoso-web-app-3.git 6b132dd..7cbc994 master -> masterSpuštěním následujícího příkazu zadejte dotaz na stav webové aplikace a ujistěte se, že je spuštěný:
az webapp show -n YOUR_WEB_APP_NAME -g YOUR_RESOURCE_GROUP_NAME --query stateV prohlížeči přejděte na
https://<your web app name>.azurewebsites.net. Webová stránka podobná té, kterou jste viděli, když jste aplikaci spustili lokálně. Za předpokladu, že zařízení běží a odesílá data, měli byste vidět spuštěný graf 50 nejnovějších hodnot teploty a vlhkosti odesílaných zařízením.
Řešení problému
Pokud narazíte na nějaké problémy s touto ukázkou, vyzkoušejte kroky v následujících částech. Pokud máte stále problémy, pošlete nám zpětnou vazbu v dolní části tohoto článku.
Problémy s klienty
Pokud se zařízení v seznamu nezobrazuje nebo se nevykreslí žádný graf, ujistěte se, že je na vašem zařízení spuštěný kód zařízení.
V prohlížeči otevřete vývojářské nástroje (v mnoha prohlížečích ho otevře klávesa F12) a vyhledejte konzolu. Vyhledejte všechna upozornění nebo chyby, které jsou tam uvedeny.
Skript na straně klienta můžete ladit v /js/chart-device-data.js.
Problémy s místním webem
Podívejte se na výstup v okně, ve kterém jste spustili Node.js pro výstup konzoly.
Odladit kód serveru, zejména kód v server.js a /scripts/event-hub-reader.js.
Problémy se službou Aplikace Azure
Na webu Azure Portal přejděte do své webové aplikace. V části Monitorování v levém podokně vyberte protokoly služby App Service. Zapněte Protokolování aplikace (Systém souborů), nastavte Úroveň na Chyba a pak zvolte Uložit. Pak otevřete protokolový stream (v části Monitorování).
Ve webové aplikaci na webu Azure Portal v části Vývojové nástroje vyberte konzolu a ověřte Node.js a verze npm pomocí
node -vanpm -v.Pokud dojde k chybě související s nenalezením balíčku, možná jste spustili kroky mimo pořadí. Po nasazení webu (s
git push) se spustínpm installApp Service, která běží na základě aktuálně nakonfigurované verze Node.js. Pokud se to později změní v konfiguraci, musíte provést bezvýznamnou změnu kódu a znovu odeslat.
Další kroky
Úspěšně jste použili webovou aplikaci k vizualizaci dat snímačů v reálném čase z centra IoT.
Další způsob interakce s daty z Azure IoT Hubu najdete v následujícím kurzu: