Externí transformace dat pro IoT Central
Zařízení IoT odesílají data v různých formátech. Pokud chcete používat data zařízení s aplikací IoT Central, budete možná muset použít transformaci na:
- Nastavte formát dat, který je kompatibilní s vaší aplikací IoT Central.
- Převod jednotek
- Vypočítá nové metriky.
- Obohacení dat z jiných zdrojů
V tomto článku se dozvíte, jak transformovat data zařízení mimo IoT Central při příchozím nebo výchozím přenosu dat.
Poznámka:
IoT Central může také interně transformovat data. Další informace najdete v tématu Mapování telemetrie při příchozím přenosu dat do IoT Central a transformace dat uvnitř aplikace IoT Central pro export.
Následující diagram znázorňuje tři trasy pro data, která zahrnují transformace:
Následující tabulka ukazuje tři příklady typů transformace:
Transformace | Popis | Příklad | Notes |
---|---|---|---|
Formát zprávy | Převeďte zprávy JSON nebo s nimi manipulovat. | CSV do FORMÁTU JSON | Při příchozím přenosu dat. IoT Central přijímá pouze zprávy JSON s hodnotou. Další informace najdete v tématu Telemetrie, vlastnost a datové části příkazů. |
Výpočty | Matematické funkce, které může Azure Functions spouštět. | Převod jednotek z Fahrenheita na Stupně Celsia. | Transformujte pomocí vzorce výchozího přenosu dat a využijte škálovatelné příchozí přenosy dat zařízení prostřednictvím přímého připojení ke službě IoT Central. Transformace dat umožňuje používat funkce IoT Central, jako jsou vizualizace a úlohy. |
Obohacení zpráv | Obohacení z externích zdrojů dat se nenašlo ve vlastnostech zařízení nebo telemetrii. Další informace o interních rozšiřováních najdete v tématu Export dat IoT do cloudových cílů pomocí služby Blob Storage. | Přidejte do zpráv informace o počasí pomocí dat o poloze ze zařízení. | Transformujte pomocí vzorce výchozího přenosu dat a využijte škálovatelné příchozí přenosy dat zařízení prostřednictvím přímého připojení ke službě IoT Central. |
Požadavky
K dokončení kroků v tomto průvodci postupy potřebujete:
Aktivní předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Aplikace IoT Central vytvořená ze šablony vlastní aplikace Další informace najdete v tématu Vytvoření aplikace IoT Central a Informace o vaší aplikaci.
Transformace dat při příchozím přenosu dat
Pokud chcete transformovat data zařízení při příchozím přenosu dat, existují dvě možnosti:
IoT Edge: Před odesláním dat do aplikace IoT Central pomocí modulu IoT Edge transformujte data z podřízených zařízení.
Most zařízení IoT Central: Most zařízení IoT Central propojuje další cloudy zařízení IoT, jako je Sigfox, Částice a Síť Věcí, k IoT Central. Most zařízení používá funkci Azure k předávání dat a funkci můžete přizpůsobit tak, aby transformovala data zařízení.
Transformace dat zařízení pomocí IoT Edge
V tomto scénáři modul IoT Edge transformuje data z podřízených zařízení před jejich předáním do aplikace IoT Central. Na vysoké úrovni jsou kroky konfigurace tohoto scénáře následující:
Nastavení zařízení IoT Edge: Nainstalujte a zřiďte zařízení IoT Edge jako bránu a připojte bránu k aplikaci IoT Central.
Připojte podřízené zařízení k zařízení IoT Edge: Připojte podřízená zařízení k zařízení IoT Edge a zřiďte je pro aplikaci IoT Central.
Transformace dat zařízení ve službě IoT Edge: Vytvořte modul IoT Edge pro transformaci dat. Nasaďte modul do zařízení brány IoT Edge, které předává transformovaná data zařízení do aplikace IoT Central.
Ověření: Odesílání dat z podřízeného zařízení do brány a ověření dat transformovaných zařízení do vaší aplikace IoT Central.
V příkladu popsaném v následujících částech odesílá podřízené zařízení data JSON v následujícím formátu do zařízení brány IoT Edge:
{
"device": {
"deviceId": "<downstream-deviceid>"
},
"measurements": {
"temp": <temperature>,
"pressure": <pressure>,
"humidity": <humidity>,
"scale": "celsius",
}
}
K transformaci dat a převodu hodnoty teploty z Celsius
Fahrenheit
modulu IoT Edge do IoT Central použijete modul IoT Edge:
{
"device": {
"deviceId": "<downstream-deviceid>"
},
"measurements": {
"temp": <temperature>,
"pressure": <pressure>,
"humidity": <humidity>,
"scale": "fahrenheit"
}
}
Následující kroky ukazují, jak nastavit a nakonfigurovat tento scénář:
Sestavení vlastního modulu
V tomto scénáři spustí zařízení IoT Edge vlastní modul, který transformuje data z podřízeného zařízení. Před nasazením a konfigurací zařízení IoT Edge musíte:
- Sestavte vlastní modul.
- Přidejte vlastní modul do registru kontejneru.
Modul runtime IoT Edge stáhne vlastní moduly z registru kontejneru, jako je registr kontejneru Azure nebo Docker Hub. Azure Cloud Shell obsahuje všechny nástroje, které potřebujete k vytvoření registru kontejneru, sestavení modulu a nahrání modulu do registru:
Vytvoření registru kontejneru:
Otevřete Azure Cloud Shell a přihlaste se k předplatnému Azure.
Vyberte prostředí Bash.
Spuštěním následujících příkazů vytvořte registr kontejneru Azure:
REGISTRY_NAME="{your unique container registry name}" az group create --name ingress-scenario --location eastus az acr create -n $REGISTRY_NAME -g ingress-scenario --sku Standard --admin-enabled true az acr credential show -n $REGISTRY_NAME
Poznamenejte
username
si hodnoty apassword
poznamenejte si je později. Potřebujete jenom jedno z hesel zobrazených ve výstupu příkazu.
Vytvoření vlastního modulu v Azure Cloud Shellu:
V Azure Cloud Shellu naklonujte úložiště GitHub, které obsahuje zdrojový kód modulu:
git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
Pokud chcete vytvořit vlastní modul, spusťte v Azure Cloud Shellu následující příkazy:
cd iot-central-transform-with-iot-edge/custommodule/transformmodule az acr build --registry $REGISTRY_NAME --image transformmodule:0.0.1-amd64 -f Dockerfile.amd64 .
Spuštění předchozích příkazů může trvat několik minut.
Nastavení zařízení IoT Edge
Tento scénář používá zařízení brány IoT Edge k transformaci dat z jakéhokoli podřízeného zařízení. Tato část popisuje, jak vytvořit šablonu zařízení IoT Central pro zařízení brány v aplikaci IoT Central. Zařízení IoT Edge používají manifest nasazení ke konfiguraci modulů.
V tomto příkladu podřízené zařízení nepotřebuje šablonu zařízení. Podřízené zařízení je zaregistrované ve službě IoT Central, takže můžete vygenerovat přihlašovací údaje, které potřebuje k připojení zařízení IoT Edge. Vzhledem k tomu, že modul IoT Edge transformuje data, veškerá telemetrie podřízených zařízení dorazí do IoT Central, jako by ho zařízení IoT Edge odeslalo.
Vytvoření šablony zařízení pro zařízení brány IoT Edge:
Uložte kopii manifestu nasazení do místního vývojového počítače: moduledeployment.json.
Otevřete místní kopii souboru manifestu moduledeployment.json v textovém editoru.
registryCredentials
Vyhledejte oddíl a nahraďte zástupné symboly hodnotami, které jste si poznamenali při vytváření registru kontejneru Azure. Hodnotaaddress
vypadá takto{your username}.azurecr.io
.settings
Najděte oddíl protransformmodule
. Nahraďte{your username}
stejnou hodnotou, jakou jste použili v předchozím kroku. Uložte změny.V aplikaci IoT Central přejděte na stránku manifestů Edge.
Vyberte + Nové. Zadejte název, například Transformer pro manifest nasazení, a potom nahrajte soubor moduledeployment.json , který jste si stáhli dříve. Manifest nasazení obsahuje vlastní modul označovaný jako transformační modul.
Vyberte Další a pak Vytvořit.
V aplikaci IoT Central přejděte na stránku Šablony zařízení.
Vyberte + Nový, vyberte Azure IoT Edge a pak vyberte Další: Přizpůsobit.
Jako název šablony zařízení zadejte zařízení brány IoT Edge. Vyberte Toto je zařízení brány.
Vyberte Další: Zkontrolovat a pak vyberte Vytvořit.
Na stránce Vytvořit model vyberte Vlastní model.
V modelu vyberte Moduly a potom import modulů z manifestu. Vyberte manifest nasazení Transformer a pak vyberte Importovat.
Manifest nasazení nezadává telemetrii, která modul odesílá. Přidání definic telemetrie do šablony zařízení:
V části Moduly šablony zařízení brány IoT Edge vyberte modul transformmodule.
Vyberte Možnost Přidat a pomocí informací v následujících tabulkách přidejte nový typ telemetrie:
Nastavení Hodnota Zobrazované jméno Zařízení Název device Typ funkce Telemetrie Sémantický typ Nic Schéma Objekt Definice objektu:
Zobrazované jméno Jméno Schéma ID zařízení deviceId String Uložte provedené změny.
Vyberte Možnost Přidat a pomocí informací v následujících tabulkách přidejte nový typ telemetrie:
Nastavení Hodnota Zobrazované jméno Measurements Název měření Typ funkce Telemetrie Sémantický typ Nic Schéma Objekt Definice objektu:
Zobrazované jméno Jméno Schéma Teplota Teplota Hodnota s dvojitou přesností Tlak tlak Hodnota s dvojitou přesností Vlhkost vlhkost Hodnota s dvojitou přesností Měřítko scale String Uložte provedené změny.
V modelu vyberte Relace. Nevybírejte relace v modulu transformmodule .
Vyberte Přidat relaci.
Zadejte podřízený senzor jako zobrazovaný název, senzor jako název a vyberte Libovolný jako cíl. Zvolte Uložit.
Výběrem možnosti Publikovat publikujte šablonu zařízení.
Registrace zařízení brány v IoT Central:
V aplikaci IoT Central přejděte na stránku Zařízení .
Vyberte zařízení brány IoT Edge a vyberte + Nový. Jako název zařízení zadejte zařízení brány IoT Edge, jako ID zařízení zadejte gateway-01, ujistěte se, že je jako šablona zařízení vybráno zařízení IoT Edge a jako simulované toto zařízení není vybráno žádné. Jako manifest okraje vyberte Transformer . Vyberte Vytvořit.
V seznamu zařízení klikněte na zařízení brány IoT Edge a pak vyberte Připojit.
Poznamenejte si rozsah ID, ID zařízení a hodnoty primárního klíče pro zařízení brány IoT Edge. Použijete je později.
Registrace podřízeného zařízení v IoT Central:
V aplikaci IoT Central přejděte na stránku Zařízení .
Nevybírejte šablonu zařízení. Vyberte + Nové. Jako název zařízení zadejte podřízený 01, jako ID zařízení zadejte podřízený-01, ujistěte se, že je šablona zařízení nepřiřazená a není vybraná jako Simulovat toto zařízení? Vyberte Vytvořit.
V seznamu zařízení klikněte na podřízené zařízení 01 a pak vyberte Spravovat zařízení > Připojit k bráně.
V dialogovém okně Připojit k bráně vyberte šablonu zařízení zařízení brány IoT Edge a instanci zařízení zařízení brány IoT Edge. Vyberte možnost Připojit.
Na podřízené zařízení 01 vyberte Připojit.
Poznamenejte si rozsah ID, ID zařízení a hodnoty primárního klíče pro podřízené zařízení 01. Použijete je později.
Nasazení brány a podřízených zařízení
Pro usnadnění používání tohoto článku se k provozování brány a podřízených zařízení používají virtuální počítače Azure. Pokud chcete vytvořit dva virtuální počítače Azure, vyberte tlačítko Nasadit do Azure zobrazené po následující tabulce. Pomocí informací v tabulce vyplňte formulář Vlastní nasazení :
Pole | Hodnota |
---|---|
Skupina prostředků | ingress-scenario |
Brána předpony popisků DNS | Jedinečný název DNS pro tento počítač, například <your name>edgegateway |
Předpona popisku DNS – podřízená | Jedinečný název DNS pro tento počítač, například <your name>downstream |
ID Oboru | Rozsah ID, který jste si poznamenali dříve |
Brána IoT Edge ID zařízení | gateway-01 |
Brána IoT Edge klíče zařízení | Hodnota primárního klíče, kterou jste si poznamenali dříve |
Typ ověřování | Heslo |
Heslo správce nebo klíč | Vaše volba hesla pro účet AzureUser na obou virtuálních počítačích. |
Vyberte Zkontrolovat a vytvořit a pak Vytvořit. Vytvoření virtuálních počítačů ve skupině prostředků scénáře příchozího přenosu dat trvá několik minut.
Pokud chcete zkontrolovat, jestli je zařízení brány IoT Edge správně spuštěné:
Otevřete aplikaci IoT Central. Potom přejděte na zařízení brány IoT Edge v seznamu zařízení na stránce Zařízení .
Vyberte kartu Moduly a zkontrolujte stav tří modulů. Spuštění modulu runtime IoT Edge na virtuálním počítači trvá několik minut. Když je virtuální počítač spuštěný, stav tří modulů je spuštěný. Pokud se modul runtime IoT Edge nespustí, přečtěte si téma Řešení potíží se zařízením IoT Edge.
Aby vaše zařízení IoT Edge fungovalo jako brána, potřebuje některé certifikáty k prokázání své identity pro všechna podřízená zařízení. Tento článek používá ukázkové certifikáty. V produkčním prostředí použijte certifikáty z vaší certifikační autority.
Pokud chcete vygenerovat ukázkové certifikáty a nainstalovat je do zařízení brány:
Pomocí SSH se připojte k virtuálnímu počítači zařízení brány a přihlaste se k němu. Název DNS pro tento virtuální počítač najdete na webu Azure Portal. Přejděte na virtuální počítač edgegateway ve skupině prostředků scénáře příchozího přenosu dat.
Tip
Možná budete muset otevřít port 22 pro přístup přes SSH na obou virtuálních počítačích, abyste se mohli pomocí SSH připojit z místního počítače nebo z Azure Cloud Shellu.
Spuštěním následujících příkazů naklonujte úložiště IoT Edge a vygenerujte ukázkové certifikáty:
# Clone the repo cd ~ git clone https://github.com/Azure/iotedge.git # Generate the demo certificates mkdir certs cd certs cp ~/iotedge/tools/CACertificates/*.cnf . cp ~/iotedge/tools/CACertificates/certGen.sh . ./certGen.sh create_root_and_intermediate ./certGen.sh create_edge_device_ca_certificate "mycacert"
Po spuštění předchozích příkazů jsou následující soubory připravené k použití v dalších krocích:
- ~/certs/certs/azure-iot-test-only.root.ca.cert.pem – kořenový certifikát certifikační autority použitý k vytvoření všech ostatních ukázkových certifikátů pro testování scénáře IoT Edge.
- ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem – Certifikát certifikační autority zařízení, na který odkazuje soubor config.yaml . Ve scénáři brány tento certifikát certifikační autority označuje způsob, jakým zařízení IoT Edge ověřuje svou identitu na podřízená zařízení.
- ~/certs/private/iot-edge-device-mycacert.key.pem – privátní klíč přidružený k certifikátu certifikační autority zařízení.
Další informace o těchto ukázkových certifikátech najdete v tématu Vytvoření ukázkových certifikátů pro testování funkcí zařízení IoT Edge.
Otevřete soubor config.toml v textovém editoru. Příklad:
sudo nano /etc/aziot/config.toml
Zrušte komentář a upravte nastavení certifikátu následujícím způsobem:
trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem" ... [edge_ca] cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem" pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
Předchozí příklad předpokládá, že jste přihlášení jako AzureUser a vytvořili certifikační autoritu zařízení s názvem "mycacert".
Uložte změny a spuštěním následujícího příkazu ověřte správnost souboru config.toml :
sudo iotedge check
Restartujte modul runtime IoT Edge:
sudo iotedge config apply
Pokud se modul runtime IoT Edge po provedení změn úspěšně spustí, změní se stav $edgeAgent a $edgeHub modulů na Spuštěno. Tyto stavové hodnoty můžete zobrazit na stránce Moduly pro vaše zařízení brány v IoT Central.
Pokud se modul runtime nespustí, zkontrolujte změny provedené v souboru config.toml a přečtěte si téma Řešení potíží se zařízením IoT Edge.
Připojení podřízené zařízení k zařízení IoT Edge
Připojení podřízeného zařízení k zařízení brány IoT Edge:
Pomocí SSH se připojte k virtuálnímu počítači podřízených zařízení a přihlaste se k němu. Název DNS pro tento virtuální počítač najdete na webu Azure Portal. Ve skupině prostředků ingress-scenario přejděte na virtuální počítač leafdevice.
Tip
Možná budete muset otevřít port 22 pro přístup přes SSH na obou virtuálních počítačích, abyste se mohli pomocí SSH připojit z místního počítače nebo z Azure Cloud Shellu.
Pokud chcete naklonovat úložiště GitHub se zdrojovým kódem pro ukázkové podřízené zařízení, spusťte následující příkaz:
cd ~ git clone https://github.com/iot-for-all/iot-central-transform-with-iot-edge
Pokud chcete zkopírovat požadovaný certifikát ze zařízení brány, spusťte následující
scp
příkazy. Tentoscp
příkaz používá názevedgegateway
hostitele k identifikaci virtuálního počítače brány. Zobrazí se výzva k zadání hesla:cd ~/iot-central-transform-with-iot-edge scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem leafdevice/certs
Přejděte do složky leafdevice a nainstalujte požadované balíčky. Potom spusťte skripty
build
astart
zřiďte a připojte zařízení k bráně:cd ~/iot-central-transform-with-iot-edge/leafdevice sudo apt update curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt-get install nodejs npm install npm run-script build npm run-script start
Během
sudo apt-get install nodejs
příkazů můžete být požádáni o povolení instalací: po zobrazení výzvy stiskněteY
.Zadejte ID zařízení, ID oboru a klíč SAS pro podřízené zařízení, které jste vytvořili dříve. Jako název hostitele zadejte
edgegateway
. Výstup příkazu vypadá takto:Registering device downstream-01 with scope 0ne00284FD9 Registered device downstream-01. Connecting device downstream-01 Connected device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01 Sent telemetry for device downstream-01
Kvůli jednoduchosti kód podřízeného zařízení zřídí zařízení v IoT Central. Podřízená zařízení se obvykle připojují přes bránu, protože se nemůžou připojit k internetu, takže se nemůžou připojit ke koncovému bodu služby Device Provisioning. Další informace najdete v tématu Jak připojit zařízení prostřednictvím transparentní brány IoT Edge.
Ověření
Pokud chcete ověřit, že scénář běží, přejděte do zařízení brány IoT Edge v IoT Central:
Vyberte moduly. Ověřte, že jsou spuštěné tři moduly IoT Edge $edgeAgent, $edgeHub a transformmodule .
Vyberte Nezpracovaná data. Telemetrická data ve sloupci Zařízení vypadají takto:
{"deviceId":"downstream-01"}
Telemetrická data ve sloupci Měření vypadají takto:
{"temperature":85.21208,"pressure":59.97321,"humidity":77.718124,"scale":"fahrenheit"}
Teplota je odeslána v Fahrenheita. Vzhledem k tomu, že zařízení IoT Edge transformuje data z podřízeného zařízení, je telemetrie přidružená k zařízení brány v IoT Central. Pokud chcete vizualizovat transformovanou telemetrii, vytvořte zobrazení v šabloně zařízení brány IoT Edge a znovu ji publikujte.
Transformace dat při výchozích přenosech dat
Svá zařízení můžete připojit ke službě IoT Central, exportovat data zařízení do výpočetního modulu, aby je transformoval, a pak transformovaná data odeslat zpět do IoT Central pro správu a analýzu zařízení. Příklad:
- Vaše zařízení odesílají data o poloze do IoT Central.
- IoT Central exportuje data do výpočetního modulu, který vylepšuje data o poloze informacemi o počasí.
- Výpočetní modul odesílá rozšířená data zpět do IoT Central.
Most zařízení IoT Central můžete použít jako výpočetní modul k transformaci dat exportovaných z IoT Central.
Výhodou transformace dat při výchozím přenosu dat je, že se vaše zařízení připojují přímo ke službě IoT Central, což usnadňuje odesílání příkazů do zařízení nebo aktualizaci vlastností zařízení. S touto metodou ale můžete použít více zpráv než měsíční přidělení a zvýšit náklady na používání Azure IoT Central.
Použití mostu zařízení IoT Central k transformaci dat zařízení
V tomto scénáři výpočetní modul transformuje data zařízení exportovaná ze služby IoT Central před jejich odesláním zpět do aplikace IoT Central. Na vysoké úrovni jsou kroky konfigurace tohoto scénáře následující:
Nastavení výpočetního modulu: Vytvořte most zařízení IoT Central, který bude fungovat jako výpočetní modul pro transformaci dat.
Transformace dat zařízení v mostě zařízení: Transformujte data v mostě zařízení úpravou kódu funkce mostu zařízení pro případ použití transformace dat.
Povolení toku dat z IoT Central do mostu zařízení: Exportuje data z IoT Central do mostu zařízení pro transformaci. Pak přeposlejte transformovaná data zpět do IoT Central. Při vytváření exportu dat použijte filtry vlastností zprávy k exportu pouze nepřetransformovaných dat.
Ověření: Připojte zařízení k aplikaci IoT Central a zkontrolujte nezpracovaná data zařízení a transformovaná data v IoT Central.
V příkladu popsaném v následujících částech zařízení odesílá data CSV v následujícím formátu do zařízení brány IoT Edge:
"<temperature in degrees C>, <humidity>, <latitude>, <longitude>"
Pomocí mostu zařízení můžete transformovat data zařízení pomocí následujících:
- Změna jednotky teploty z centigradu na fahrenheit.
- Obohacení dat zařízení o data o počasí vytažená ze služby Open Weather pro hodnoty zeměpisné šířky a délky.
Most zařízení pak odešle transformovaná data do IoT Central v následujícím formátu:
{
"temp": <temperature in degrees F>,
"humidity": <humidity>,
"lat": <latitude>,
"lon": <longitude>,
"weather": {
"weather_temp": <temperature at lat/lon>,
"weather_humidity": <humidity at lat/lon>,
"weather_pressure": <pressure at lat/lon>,
"weather_windspeed": <wind speed at lat/lon>,
"weather_clouds": <cloud cover at lat/lon>,
"weather_uvi": <UVI at lat/lon>
}
}
Následující kroky ukazují, jak nastavit a nakonfigurovat tento scénář:
Načtení nastavení připojení IoT Central
Před nastavením tohoto scénáře potřebujete získat některá nastavení připojení z aplikace IoT Central:
Přihlaste se k aplikaci IoT Central.
Přejděte do skupin připojení zařízení oprávnění>.
Poznamenejte si obor ID. Tuto hodnotu použijete později.
Vyberte skupinu registrací SaS-IoT-Devices. Poznamenejte si primární klíč sdíleného přístupového podpisu. Tuto hodnotu použijete později.
Nastavení výpočetního modulu
Tento scénář používá stejné nasazení Azure Functions jako most zařízení IoT Central. Pokud chcete nasadit most zařízení, vyberte tlačítko Nasadit do Azure zobrazené po následující tabulce. Pomocí informací v tabulce vyplňte formulář Vlastní nasazení :
Pole | Hodnota |
---|---|
Skupina prostředků | Vytvoření nové skupiny prostředků s názvem egress-scenario |
Oblast | Vyberte oblast, která je k vám nejblíže. |
ID Oboru | Použijte obor ID, který jste si předtím poznamenali. |
Klíč SAS ioT Central | Pro skupinu registrací SaS-IoT-Devices použijte primární přístupový klíč sdíleného přístupového podpisu. Tuto hodnotu jste si předtím poznamenali. |
Vyberte Zkontrolovat a vytvořit a pak Vytvořit. Vytvoření funkce Azure a souvisejících prostředků ve skupině prostředků výchozího scénáře trvá několik minut.
Transformace dat zařízení v mostu zařízení
Konfigurace mostu zařízení pro transformaci exportovaných dat zařízení:
Získejte klíč rozhraní API aplikace ze služby Open Weather. Účet je bezplatný s omezeným využitím služby. Pokud chcete vytvořit klíč rozhraní API aplikace, vytvořte účet na portálu služby Open Weather a postupujte podle pokynů. Klíč rozhraní Open Weather API použijete později.
Na webu Azure Portal přejděte do aplikace funkcí ve skupině prostředků výchozího scénáře přenosu dat.
V levém navigačním panelu ve vývojových nástrojích vyberte Editor služby App Service (Preview).
Výběrem možnosti Přejít → otevřete stránku Editor služby App Service. Proveďte následující změny:
Otevřete soubor wwwroot/IoTCIntegration/index.js. Nahraďte veškerý kód v tomto souboru kódem v index.js.
V novém index.js aktualizujte
openWeatherAppId
soubor proměnné pomocí klíče rozhraní Open Weather API, který jste získali dříve.const openWeatherAppId = '<Your Open Weather API Key>'
Přidejte do dat odesílaných funkcí do IoT Central vlastnost zprávy. IoT Central tuto vlastnost používá k zabránění exportu transformovaných dat. Pokud chcete tuto změnu provést, otevřete soubor wwwroot/IoTCIntegration/lib/engine.js . Vyhledejte následující kód:
if (timestamp) { message.properties.add('iothub-creation-time-utc', timestamp); }
Přidejte následující kód těsně za kód v předchozím fragmentu kódu:
// add a message property that we can look for in data export to not re-compute computed telemetry message.properties.add('computed', true);
Pro referenci můžete zobrazit dokončený příklad souboru engine.js .
V Editoru služby App Service vyberte konzolu v levém navigačním panelu. Spuštěním následujících příkazů nainstalujte požadované balíčky:
cd IoTCIntegration npm install
Spuštění tohoto příkazu může trvat několik minut.
Vraťte se na stránku Přehled funkce Azure a restartujte funkci:
V levém navigačním panelu vyberte Funkce . Pak vyberte IoTCIntegration. Vyberte kód + test.
Poznamenejte si adresu URL funkce. Tuto hodnotu budete potřebovat později:
Povolení toku dat z IoT Central do mostu zařízení
Tato část popisuje, jak nastavit aplikaci Azure IoT Central.
Nejprve uložte soubor modelu zařízení do místního počítače.
Pokud chcete do aplikace IoT Central přidat šablonu zařízení, přejděte do aplikace IoT Central a pak:
Přihlaste se k aplikaci IoT Central a přejděte na stránku Šablony zařízení.
Vyberte + Nový, vyberte Zařízení IoT, vyberte Další: Přizpůsobit, jako název šablony zadejte výpočetní model . Vyberte Další: Zkontrolovat. Pak vyberte Vytvořit.
Vyberte Importovat model a přejděte do souboru model.json , který jste si stáhli dříve.
Po importu modelu vyberte Publikovat a publikujte šablonu zařízení s výpočetním modelem .
Nastavte export dat pro odesílání dat do mostu zařízení:
V aplikaci IoT Central vyberte Export dat.
Vyberte + Nový cíl a vytvořte cíl, který se má použít s mostem zařízení. Volání cílové výpočetní funkce pro typ cíle vyberte Webhook. Jako adresu URL zpětného volání vyberte vložit adresu URL funkce, kterou jste si předtím poznamenali. Autorizaci ponechte bez ověřování.
Uložte změny.
Vyberte + Nový export a vytvořte export dat s názvem Výpočetní export.
Přidejte filtr, který exportuje jenom data zařízení pro šablonu zařízení, kterou používáte. Vyberte + Filtr, vyberte položku Šablona zařízení, vyberte operátor Rovná se a vyberte šablonu zařízení modelu compute , kterou jste vytvořili.
Přidejte filtr zpráv, který umožňuje rozlišovat mezi transformovanými a nepřetvářenými daty. Tento filtr zabraňuje odesílání transformovaných hodnot zpět do mostu zařízení. Vyberte filtr vlastností + Zpráva a zadejte vypočítanou hodnotu názvu a pak vyberte operátor Neexistuje. Řetězec
computed
se používá jako klíčové slovo v ukázkovém kódu mostu zařízení.Jako cíl vyberte cíl výpočetní funkce , kterou jste vytvořili dříve.
Uložte změny. Po minutě nebo tak se stav exportu zobrazí jako V pořádku.
Ověření
Ukázkové zařízení, které použijete k otestování scénáře, je napsané v Node.js. Ujistěte se, že máte na místním počítači nainstalovaný Node.js a npm. Pokud tyto požadavky nechcete nainstalovat, použijte Azure Cloud Shell , kde jsou předinstalované.
Spuštění ukázkového zařízení, které testuje scénář:
Naklonujte úložiště GitHub, které obsahuje ukázkový kód, a spusťte následující příkaz:
git clone https://github.com/Azure/iot-central-compute
Pokud chcete ukázkové zařízení připojit k aplikaci IoT Central, upravte nastavení připojení v souboru iot-central-compute/device/device.js . Nahraďte ID oboru a klíč SAS skupiny hodnotami, které jste si poznamenali dříve:
// These values need to be filled in from your Azure IoT Central application // const scopeId = "<IoT Central Scope Id value>"; const groupSasKey = "<IoT Central Group SAS key>"; //
Uložte změny.
Pomocí následujících příkazů nainstalujte požadované balíčky a spusťte zařízení:
cd ~/iot-central-compute/device npm install node device.js
Výsledek tohoto příkazu vypadá jako následující výstup:
registration succeeded assigned hub=iotc-2bd611b0....azure-devices.net deviceId=computeDevice Client connected send status: MessageEnqueued [{"data":"33.23, 69.09, 30.7213, -61.1192"}] send status: MessageEnqueued [{"data":"2.43, 75.86, -2.6358, 162.935"}] send status: MessageEnqueued [{"data":"6.19, 76.55, -14.3538, -82.314"}] send status: MessageEnqueued [{"data":"33.26, 48.01, 71.9172, 48.6606"}] send status: MessageEnqueued [{"data":"40.5, 36.41, 14.6043, 14.079"}]
V aplikaci IoT Central přejděte na zařízení s názvem computeDevice. V zobrazení nezpracovaných dat existují dva různé streamy telemetrie, které se zobrazují přibližně každých pět sekund. Stream s nemodelovanými daty je původní telemetrie. Datový proud s modelovanými daty je data, která funkce transformovala:
Vyčištění prostředků
Pokud už nepotřebujete prostředky Azure, které jste vytvořili, a postupujte podle kroků v této příručce, odstraňte skupiny prostředků na webu Azure Portal.
Dvě skupiny prostředků, které jste použili v tomto průvodci, jsou scénářem příchozího přenosu dat a scénářem výchozího přenosu dat.
Shrnutí
V tomto článku jste se seznámili s různými možnostmi transformace dat zařízení pro IoT Central, a to jak při příchozím přenosu dat, tak při výchozím přenosu dat. Článek obsahuje návody pro dva konkrétní scénáře:
- Před odesláním dat do aplikace IoT Central použijte modul IoT Edge k transformaci dat z podřízených zařízení.
- Azure Functions slouží k transformaci dat mimo IoT Central. V tomto scénáři ioT Central používá export dat k odesílání příchozích dat do funkce Azure, která se má transformovat. Funkce odešle transformovaná data zpět do aplikace IoT Central.