Megosztás a következőn keresztül:


Oktatóanyag: Végpontok közötti megoldás létrehozása

Ez az Azure Digital Twins-oktatóanyag bemutatja, hogyan hozhat létre olyan végpontok közötti megoldást, amely bemutatja a szolgáltatás működését. Ha teljes körű, a környezetből származó élő adatokon alapuló megoldást szeretne beállítani, csatlakoztathatja az Azure Digital Twins-példányt más Azure-szolgáltatásokhoz az eszközök és adatok kezelése érdekében.

Ebben az oktatóanyagban...

  • Azure Digital Twins-példány beállítása
  • Megismerheti a mintaépítési forgatókönyvet, és példányosíthatja az előre megírt összetevőket
  • Szimulált telemetriai adatok IoT Hub-eszközről digitális ikertulajdonságokra való átirányítása Azure Functions-alkalmazással
  • Módosítások propagálása az ikergráfon keresztül digitális ikerértesítések azure Functions-, végpont- és útvonal-feldolgozásával

Előfeltételek

Az oktatóanyag megkezdése előtt kezdje az alábbi előfeltételekkel:

  • Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
  • Ez az oktatóanyag a .NET-et használja. A .NET SDK legújabb verzióját több platformra is letöltheti a .NET letöltéséből.

Ezután folytassa a szakasz többi részével a fennmaradó előfeltételek beállításához.

Mintaerőforrások lekérése

Az oktatóanyagot egy C#-ban írt, teljes körű Azure Digital Twins-mintaprojekt vezérli. A mintaprojekt lekéréséhez navigáljon a mintahivatkozásra, és válassza a cím alatti Kód tallózása gombot.

Ekkor megnyílik a minták GitHub-adattára, amelyet .zip formátumban tölthet le a Kód gombra kattintva, majd a ZIP letöltése gombra kattintva.

Screenshot of the digital-twins-samples repo on GitHub, highlighting the steps to download it as a zip.

Ez letölt egy .zip mappát a gépére digital-twins-samples-main.zip formátumban. Bontsa ki a mappát, és bontsa ki a fájlokat.

Azure Digital Twins-példány előkészítése

Az Azure Digital Twins ebben a cikkben való használatához szüksége lesz egy Azure Digital Twins-példányra és a használatához szükséges engedélyekre. Ha már beállított egy Azure Digital Twins-példányt, használhatja ezt a példányt, és ugorjon a következő szakaszra. Ellenkező esetben kövesse a példány és a hitelesítés beállítása című témakör utasításait. Az utasítások olyan információkat tartalmaznak, amelyek segítenek ellenőrizni, hogy sikeresen végrehajtotta-e az egyes lépéseket.

A példány beállítása után jegyezze fel a példány állomásnevét. A gazdagép nevét az Azure Portalon találja.

A környezet előkészítése az Azure CLI-hez

Parancssori felületi munkamenet beállítása

Az Azure Digital Twins parancssori felületen való használatának megkezdéséhez először be kell jelentkeznie, és be kell állítania a CLI-környezetet az előfizetéséhez ehhez a munkamenethez. Futtassa az alábbi parancsokat a parancssori felület ablakában:

az login
az account set --subscription "<your-Azure-subscription-ID>"

Tipp.

A fenti parancsban szereplő azonosító helyett az előfizetés nevét is használhatja.

Ha ez az első alkalom, hogy ezt az előfizetést az Azure Digital Twins szolgáltatással használja, futtassa ezt a parancsot az Azure Digital Twins névtérben való regisztrációhoz. (Ha nem biztos benne, akkor is nyugodtan futtathatja újra, ha valamikor a múltban tette.)

az provider register --namespace 'Microsoft.DigitalTwins'

Ezután hozzáadja az Azure CLI-hez készült Microsoft Azure IoT-bővítményt, hogy lehetővé tegye az Azure Digital Twins és más IoT-szolgáltatások közötti interakció parancsait. Futtassa ezt a parancsot, és győződjön meg arról, hogy a bővítmény legújabb verziójával rendelkezik:

az extension add --upgrade --name azure-iot

Most már készen áll az Azure Digital Twins azure CLI-ben való kezelésére.

Ezt bármikor ellenőrizheti az dt --help , és megtekintheti az elérhető legfelső szintű Azure Digital Twins-parancsok listáját.

A mintaprojekt konfigurálása

Ezután állítson be egy mintaügyfél-alkalmazást, amely az Azure Digital Twins-példányt fogja használni.

Navigáljon a számítógépen a korábban letöltött mappára az Azure Digital Twins végpontok közötti mintáiból (és bontsa ki, ha még nem tette meg).

A mappában lépjen a digital-twins-samples-main\AdtSampleApp\SampleClientApp mappába, és nyissa meg az appsettings.json fájlt. Ez a JSON-fájl egy konfigurációs változót tartalmaz, amely a projekt futtatásához szükséges.

A fájl törzsében módosítsa az instanceUrl Azure Digital Twins-példány gazdagépnevének URL-címét (ha https:// a gazdagép neve előtt adja hozzá, ahogy az alább látható).

{
  "instanceUrl": "https://<your-Azure-Digital-Twins-instance-host-name>"
}

Mentse és zárja be a fájlt.

Helyi Azure-hitelesítő adatok beállítása

Ez a minta a DefaultAzureCredential (a tár része) használatával hitelesíti a Azure.Identity felhasználókat az Azure Digital Twins-példánysal, amikor a helyi gépen futtatja. Az ügyfélalkalmazások Azure Digital Twins-hitelesítésének különböző módjairól az alkalmazáshitelesítési kód írása című témakörben olvashat bővebben.

Ezzel DefaultAzureCredentiala példával a minta hitelesítő adatokat keres a helyi környezetben, például egy Azure-bejelentkezést egy helyi Azure CLI-ben vagy a Visual Studióban vagy a Visual Studio Code-ban. Ezért helyileg kell bejelentkeznie az Azure-ba ezen mechanizmusok egyikével a minta hitelesítő adatainak beállításához.

Ha a Visual Studio vagy a Visual Studio Code használatával futtat kódmintákat, győződjön meg arról , hogy ugyanazokkal az Azure-hitelesítő adatokkal jelentkezett be a szerkesztőbe , amelyeket az Azure Digital Twins-példány eléréséhez használni szeretne. Ha helyi CLI-ablakot használ, futtassa a parancsot az az login Azure-fiókba való bejelentkezéshez. Ezt követően a kódminta futtatásakor automatikusan hitelesíteni kell.

Ismerkedés az építési forgatókönyvkel

Az oktatóanyagban használt mintaprojekt egy valós építési forgatókönyvet jelöl, amely egy padlót, egy szobát és egy termosztátos eszközt tartalmaz. Ezek az összetevők digitálisan jelennek meg egy Azure Digital Twins-példányban, amely ezután csatlakozik az IoT Hubhoz, az Event Gridhez és két Azure-függvényhez az adatáthelyezés engedélyezéséhez.

Az alábbiakban a teljes forgatókönyvet ábrázoló diagram látható.

Először létre kell hoznia az Azure Digital Twins-példányt (a diagram A szakasza), majd be kell állítania az eszköz telemetriai adatfolyamát a digitális ikerpéldányokba (B nyíl), majd be kell állítania az adatok propagálását az ikergráfon keresztül (C nyíl).

Diagram of the full building scenario, which shows the data flowing from a device into and out of Azure Digital Twins through various Azure services.

A forgatókönyv végigdolgozásához a korábban letöltött előre megírt mintaalkalmazás összetevőivel fog dolgozni.

Az AdtSampleApp mintaalkalmazás építési forgatókönyve által implementált összetevők:

  • Eszközhitelesítés
  • .NET (C#) SDK-használati példák (a CommandLoop.cs-ben található)
  • Az Azure Digital Twins API meghívására használható konzolfelület
  • SampleClientApp – Minta Azure Digital Twins-megoldás
  • SampleFunctionsApp – Azure Functions-alkalmazás, amely az IoT Hub és az Azure Digital Twins eseményeinek eszköztelemetria alapján frissíti az Azure Digital Twins-gráfot

Az előre létrehozott ikergráf példányosítása

Először a mintaprojekt AdtSampleApp-megoldásával hozza létre az Azure Digital Twins-elemet a végpontok közötti forgatókönyvből (A szakasz):

Diagram of an excerpt from the full building scenario diagram highlighting the Azure Digital Twins instance section.

Nyisson meg egy helyi konzolablakot , és lépjen a digital-twins-samples-main\AdtSampleApp\SampleClientApp mappába. Futtassa a SampleClientApp projektet ezzel a dotnet paranccsal:

dotnet run

A projekt elindul, elvégzi a hitelesítést, és vár egy parancsot. Ebben a konzolban futtassa a következő parancsot a minta Azure Digital Twins-megoldás példányosításához.

Fontos

Ha már rendelkezik digitális ikerpéldányokkal és -kapcsolatokkal az Azure Digital Twins-példányban, a parancs futtatása törli őket, és lecseréli őket a mintaforgatókönyv ikerpéldányaira és kapcsolataira.

SetupBuildingScenario

A parancs kimenete megerősítést kérő üzenetek sorozata, mivel három digitális ikerpéldány jön létre és csatlakozik az Azure Digital Twins-példányban: egy emelet neve floor1, egy szoba21 nevű szoba és egy termosztát67 nevű hőmérséklet-érzékelő. Ezek a digitális ikerpéldányok azokat az entitásokat jelölik, amelyek valós környezetben léteznének.

Kapcsolatokon keresztül csatlakoznak a következő ikergráfhoz. Az ikerdiagram a környezet egészét jelöli, beleértve azt is, hogy az entitások hogyan kommunikálnak egymással, és hogyan kapcsolódnak egymáshoz.

Diagram showing that floor1 contains room21, and room21 contains thermostat67.

A létrehozott ikerpéldányokat az alábbi parancs futtatásával ellenőrizheti, amely lekérdezi a csatlakoztatott Azure Digital Twins-példányt az összes benne lévő digitális ikerpéldányhoz:

Query

Most már leállíthatja a projekt futtatását. Tartsa nyitva a konzolablakot ezen a helyen, mivel az oktatóanyag későbbi részében ismét használni fogja ezt az alkalmazást.

A mintafüggvényalkalmazás beállítása

A következő lépés egy Azure Functions-alkalmazás beállítása, amelyet az oktatóanyag során az adatok feldolgozására fogunk használni. A SampleFunctionsApp függvényalkalmazás két függvényt tartalmaz:

  • ProcessHubToDTEvents: feldolgozza a bejövő IoT Hub-adatokat, és ennek megfelelően frissíti az Azure Digital Twinst
  • ProcessDTRoutedData: feldolgozza a digitális ikerpéldányok adatait, és ennek megfelelően frissíti a szülő ikerpéldányokat az Azure Digital Twinsben

Ebben a szakaszban közzéteszi az előre megírt függvényalkalmazást, és egy Microsoft Entra-identitás hozzárendelésével biztosítja, hogy a függvényalkalmazás hozzáférhessen az Azure Digital Twinshez.

A függvényalkalmazás a letöltött mintaprojekt része, amely a digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp mappában található.

Az alkalmazás közzététele

A függvényalkalmazás Azure-ban való közzétételéhez létre kell hoznia egy tárfiókot, majd létre kell hoznia a függvényalkalmazást az Azure-ban, és végre közzé kell tennie a függvényeket az Azure-függvényalkalmazásban. Ez a szakasz az Azure CLI használatával hajtja végre ezeket a műveleteket. Minden parancsban cserélje le a szögletes zárójelben lévő helyőrzőket a saját erőforrásai részleteire.

  1. Hozzon létre egy Azure Storage-fiókot a következő parancs futtatásával:

    az storage account create --name <name-for-new-storage-account> --location <location> --resource-group <resource-group> --sku Standard_LRS
    
  2. Hozzon létre egy Azure-függvényalkalmazást a következő parancs futtatásával:

    az functionapp create --name <name-for-new-function-app> --storage-account <name-of-storage-account-from-previous-step> --functions-version 4 --consumption-plan-location <location> --runtime dotnet-isolated --runtime-version 7 --resource-group <resource-group>
    
  3. Ezután tömörítheti a függvényeket, és közzéteheti őket az új Azure-függvényalkalmazásban.

    1. Nyisson meg egy konzolablakot a számítógépen, és lépjen a digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp mappába a letöltött mintaprojektben.

    2. A konzolon futtassa a következő parancsot a projekt helyi közzétételéhez:

      dotnet publish -c Release -o publish
      

      Ez a parancs közzéteszi a projektet a digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish könyvtárban.

    3. Az előnyben részesített módszer használatával hozzon létre egy zip-t a közzétett fájlokból, amelyek a digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish könyvtárban találhatók. Nevezze el a tömörített mappát publish.zip néven.

      Fontos

      Győződjön meg arról, hogy a tömörített mappa nem tartalmaz külön réteget magának a közzétételi mappának. Csak a közzétételi mappában lévő tartalmat kell tartalmaznia.

      Íme egy kép a zip-tartalom megjelenéséről (a .NET verziójától függően változhat).

      Screenshot of File Explorer in Windows showing the contents of the publish zip folder.

    Most bezárhatja a projekt előkészítéséhez használt helyi konzolablakot. Az utolsó lépés az Azure CLI-ben lesz végrehajtva.

  4. Az Azure CLI-ben futtassa a következő parancsot a közzétett és tömörített függvények üzembe helyezéséhez az Azure-függvényalkalmazásban:

    az functionapp deployment source config-zip --resource-group <resource-group> --name <name-of-your-function-app> --src "<full-path-to-publish.zip>"
    

    Tipp.

    Ha helyileg használja az Azure CLI-t, a számítógépen lévő ZIP-fájlt közvetlenül a számítógépen lévő elérési út használatával érheti el.

    Ha az Azure Cloud Shellt használja, töltse fel a ZIP-fájlt a Cloud Shellbe ezzel a gombbal a parancs futtatása előtt:

    Screenshot of the Azure Cloud Shell highlighting how to upload files.

    Ebben az esetben a rendszer feltölti a fájlt a Cloud Shell-tároló gyökérkönyvtárába, így közvetlenül a parancs paraméteréhez tartozó név alapján hivatkozhat a fájlra --src (ahogy a következőben is). --src publish.zip

    A sikeres üzembe helyezés a 202-s állapotkóddal válaszol, és egy JSON-objektumot ad ki, amely az új függvény részleteit tartalmazza. Az üzembe helyezés sikerességét a következő mező eredményében ellenőrizheti:

    "provisioningState": "Succeeded",
    

A függvényeket most közzé kell tenni egy Azure-beli függvényalkalmazásban. A következő parancssori felületi parancsokkal ellenőrizheti, hogy mindkét függvény sikeres volt-e. Minden parancs helyőrzőkkel rendelkezik az erőforráscsoporthoz és a függvényalkalmazás nevéhez. A parancsok a közzétett ProcessDTRoutedData és ProcessHubToDTEvents függvényekkel kapcsolatos információkat nyomtatják ki.

az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessDTRoutedData
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessHubToDTEvents

Ezután a függvényalkalmazásnak megfelelő engedéllyel kell rendelkeznie az Azure Digital Twins-példány eléréséhez. Ezt a hozzáférést a következő szakaszban fogja konfigurálni.

A függvényalkalmazás engedélyeinek konfigurálása

A függvényalkalmazásnak két beállítást kell beállítania az Azure Digital Twins-példány eléréséhez, amelyek mindegyike az Azure CLI használatával végezhető el.

Hozzáférési szerepkör hozzárendelése

Az első beállítás azure Digital Twins-adattulajdonosi szerepkört ad a függvényalkalmazásnak az Azure Digital Twins-példányban. Ez a szerepkör minden olyan felhasználóhoz vagy függvényhez szükséges, aki sok adatsík-tevékenységet kíván végrehajtani a példányon. Az Azure Digital Twins-megoldások biztonsági és szerepkör-hozzárendeléseiről további információkat olvashat.

  1. A következő paranccsal hozzon létre egy rendszer által hozzárendelt identitást a függvényhez. A kimenet megjeleníti a létrehozott identitás részleteit. Jegyezze fel a kimenet principalId mezőjét, amelyet a következő lépésben szeretne használni.

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>
    
  2. Az alábbi parancsban a principalId érték használatával rendelje hozzá a függvényalkalmazás identitását az Azure Digital Twins-példány Azure Digital Twins-adattulajdonosi szerepköréhez.

    az dt role-assignment create --resource-group <your-resource-group> --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
    

Ennek a parancsnak az eredménye a létrehozott szerepkör-hozzárendeléssel kapcsolatos információ. A függvényalkalmazás mostantól rendelkezik az Azure Digital Twins-példány adatainak elérésére vonatkozó engedélyekkel.

Alkalmazásbeállítás konfigurálása

A második beállítás létrehoz egy környezeti változót a függvényhez az Azure Digital Twins-példány URL-címével. A függvénykód ennek a változónak az értékét használja a példányra való hivatkozáshoz. A környezeti változókról további információt a függvényalkalmazás kezelése című témakörben talál.

Futtassa az alábbi parancsot, és töltse ki a helyőrzőket az erőforrások részleteivel.

az functionapp config appsettings set --resource-group <your-resource-group> --name <your-function-app-name> --settings "ADT_SERVICE_URL=https://<your-Azure-Digital-Twins-instance-host-name>"

A kimenet az Azure-függvény beállításainak listája, amelynek most egy úgynevezett ADT_SERVICE_URLbejegyzést kell tartalmaznia.

Szimulált telemetria feldolgozása IoT Hub-eszközről

Az Azure Digital Twins-gráfokat valós eszközök telemetriai adatai vezérlik.

Ebben a lépésben egy IoT Hubban regisztrált szimulált termosztát-eszközt fog csatlakoztatni az Azure Digital Twinsben azt jelképező digitális ikerpéldányhoz. Mivel a szimulált eszköz telemetriát bocsát ki, az adatok a ProcessHubToDTEvents Azure-függvényen keresztül lesznek irányítva, amely elindít egy megfelelő frissítést a digitális ikerpéldányban. Ily módon a digitális ikerpéldány naprakész marad a valós eszköz adataival. Az Azure Digital Twinsben az események adatainak egyik helyről a másikra való irányításának folyamatát útválasztási eseményeknek nevezzük.

A szimulált telemetria feldolgozása a végpontok közötti forgatókönyv ezen részében történik (B nyíl):

Diagram of an excerpt from the full building scenario diagram highlighting the section that shows elements before Azure Digital Twins.

Az alábbi műveleteket fogja elvégezni az eszközkapcsolat beállításához:

  1. Hozzon létre egy IoT Hubot, amely felügyeli a szimulált eszközt
  2. Csatlakozás az IoT Hubot a megfelelő Azure-függvényre egy esemény-előfizetés beállításával
  3. A szimulált eszköz regisztrálása az IoT Hubon
  4. A szimulált eszköz futtatása és telemetria létrehozása
  5. Az Azure Digital Twins lekérdezése az élő eredmények megtekintéséhez

IoT Hub-példány létrehozása

Az Azure Digital Twins úgy lett kialakítva, hogy az IoT Hub mellett működjön, amely egy Azure-szolgáltatás az eszközök és adataik kezelésére. Ebben a lépésben beállít egy IoT Hubot, amely az oktatóanyagban kezeli a mintaeszközt.

Az Azure CLI-ben ezzel a paranccsal hozzon létre egy új IoT Hubot:

az iot hub create --name <name-for-your-IoT-hub> --resource-group <your-resource-group> --sku S1

A parancs kimenete a létrehozott IoT Hubra vonatkozó információk.

Mentse az IoT Hubnak adott nevet . Erre később még szüksége lesz.

Csatlakozás az IoT Hubot az Azure-függvényhez

Ezután csatlakoztassa az IoT Hubot a korábban közzétett függvényalkalmazás ProcessHubToDTEvents Azure-függvényéhez, hogy az adatok az IoT Hubban lévő eszközről a függvényen keresztül áramoljanak, amely frissíti az Azure Digital Twins szolgáltatást.

Ehhez létre fog hozni egy esemény-előfizetést az IoT Hubon, végpontként az Azure-függvénysel. Ez "előfizeti" a függvényt az IoT Hubban zajló eseményekre.

Az esemény-előfizetés létrehozásához használja a következő CLI-parancsot. Egy helyőrzővel megadhatja az esemény-előfizetés nevét, és vannak helyőrzők is, amelyek segítségével megadhatja az előfizetés azonosítóját, az erőforráscsoportot, az IoT Hub nevét és a függvényalkalmazás nevét.

az eventgrid event-subscription create --name <name-for-hub-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Devices/IotHubs/<your-IoT-hub> --included-event-types Microsoft.Devices.DeviceTelemetry --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessHubToDTEvents

A kimenet a létrehozott esemény-előfizetéssel kapcsolatos információkat jeleníti meg. Az eredményben szereplő érték ellenőrzésével provisioningState ellenőrizheti, hogy a művelet sikeresen befejeződött-e:

"provisioningState": "Succeeded",

Tipp.

Ha a parancs erőforrás-szolgáltatói hibát ad vissza, adja hozzá a Microsoft.EventGridet erőforrás-szolgáltatóként az előfizetéséhez. Ezt az Azure Portalon teheti meg az erőforrás-szolgáltató regisztrálása című témakör utasításait követve.

A szimulált eszköz regisztrálása az IoT Hubon

Ez a szakasz egy eszközábrázolást hoz létre az IoT Hubban az ID termosztát67 használatával. A szimulált eszköz csatlakozik ehhez a reprezentációhoz, így a telemetriai események az eszközről az IoT Hubra kerülnek. Az IoT Hub az, ahol az előző lépésben előfizetett Azure-függvény figyel, készen áll az események felvételére és a feldolgozás folytatására.

Az Azure CLI-ben hozzon létre egy eszközt az IoT Hubban a következő paranccsal:

az iot hub device-identity create --device-id thermostat67 --hub-name <your-IoT-hub-name> --resource-group <your-resource-group>

A kimenet a létrehozott eszközre vonatkozó információ.

A szimuláció konfigurálása és futtatása

Ezután konfigurálja az eszközszimulátort az IoT Hub-példányba való adatküldéshez.

Kezdje az IoT Hub kapcsolati sztring lekérésével az alábbi paranccsal. A kapcsolati sztring érték a következővel HostName=kezdődik: .

az iot hub connection-string show --hub-name <your-IoT-hub-name>

Az alábbi paranccsal szerezze be az eszközkapcsolati sztringet:

az iot hub device-identity connection-string show --device-id thermostat67 --hub-name <your-IoT-hub-name>

Ezután csatlakoztassa ezeket az értékeket az eszközszimulátor kódjához a helyi projektben, és csatlakoztassa a szimulátort ehhez az IoT Hub- és IoT Hub-eszközhöz.

Navigáljon a helyi gépen a letöltött mintamappához, majd a digital-twins-samples-main\DeviceSimulator\DeviceSimulator mappához. Nyissa meg az AzureIoTHub.cs fájlt szerkesztésre. Módosítsa a következő kapcsolati sztring értékeket a fent összegyűjtött értékekre:

private const string iotHubConnectionString = "<your-hub-connection-string>";
//...
private const string deviceConnectionString = "<your-device-connection-string>";

Mentse a fájlt.

A beállított adatszimuláció eredményeinek megtekintéséhez nyisson meg egy új helyi konzolablakot, és lépjen a digital-twins-samples-main\DeviceSimulator\DeviceSimulator elemre.

Megjegyzés:

Most két nyitott konzolablakot kell használnia: egyet a DeviceSimulator\DeviceSimulator mappába, egyet pedig az AdtSampleApp\SampleClientApp mappába.

Az eszközszimulátorprojekt futtatásához használja a következő dotnet parancsot:

dotnet run

A projekt elindul, és megkezdi a szimulált hőmérsékleti telemetriai üzenetek megjelenítését. Ezeket az üzeneteket a rendszer elküldi az IoT Hubnak, ahol az Azure-függvény felveszi és feldolgozja őket.

Screenshot of the console output of the device simulator showing temperature telemetry being sent.

Ebben a konzolban semmi mást nem kell tennie, de a következő lépések végrehajtása közben hagyja futni.

Az eredmények megtekintése az Azure Digital Twinsben

A korábban közzétett ProcessHubToDTEvents függvény figyeli az IoT Hub adatait, és meghív egy Azure Digital Twins API-t a Temperature termosztát67 ikerpéldány tulajdonságának frissítéséhez.

Az Azure Digital Twins oldaláról származó adatok megtekintéséhez váltson az AdtSampleApp\SampleClientApp mappára megnyitott másik konzolablakra. Futtassa a SampleClientApp projektet a következővel dotnet run: .

dotnet run

A projekt futtatása és a parancsok elfogadása után futtassa a következő parancsot a digitális ikertermosztát által jelentett hőmérsékletek lekéréséhez67:

ObserveProperties thermostat67 Temperature

Az Azure Digital Twins-példány élő frissített hőmérsékletét két másodpercenként kell naplózni a konzolra. Ezeknek tükrözniük kell az adatszimulátor által generált értékeket (a konzolablakokat egymás mellett helyezheti el, hogy ellenőrizze, hogy az értékek koordináta-e).

Megjegyzés:

Eltarthat néhány másodpercig, hogy az eszköz adatai továbbterjedjenek az ikerpéldányra. Az első néhány hőmérséklet-mérés 0-ként jelenhet meg, mielőtt az adatok megérkeznek.

Screenshot of the console output showing log of temperature messages from digital twin thermostat67.

Miután meggyőződött arról, hogy az élő hőmérséklet naplózása sikeresen működik, mindkét projektet leállíthatja. Tartsa nyitva a konzolablakokat, mivel az oktatóanyag későbbi részében ismét használni fogja őket.

Azure Digital Twins-események propagálása a gráfon keresztül

Ebben az oktatóanyagban eddig láthatta, hogyan frissíthető az Azure Digital Twins külső eszközadatokból. A következő lépésben láthatja, hogyan propagálja az egyik digitális ikerpéldány módosításait az Azure Digital Twins gráfja, vagyis hogyan frissítheti az ikerpéldányokat a szolgáltatás belső adataiból.

Ehhez a ProcessDTRoutedData Azure függvénnyel frissíthet egy szobai ikerpéldányt a csatlakoztatott termosztát ikerpéldányának frissítésekor. A frissítési funkció a végpontok közötti forgatókönyv (C nyíl) ezen részében történik:

Diagram of an excerpt from the full building scenario diagram highlighting the section that shows the elements after Azure Digital Twins.

Az alábbi műveleteket fogja elvégezni az adatfolyam beállításához:

  1. Event Grid-témakör létrehozása az adatok Azure-szolgáltatások közötti áthelyezésének engedélyezéséhez
  2. Hozzon létre egy végpontot az Azure Digital Twinsben, amely csatlakoztatja a példányt az Event Grid-témakörhöz
  3. Útvonal beállítása az Azure Digital Twinsben, amely ikertulajdonság-változási eseményeket küld a végpontnak
  4. Állítson be egy Azure-függvényt , amely figyeli az Event Grid témakört a végponton, fogadja az oda küldött ikertulajdonság-módosítási eseményeket, és ennek megfelelően frissíti a gráf többi ikerpéldányát

Az Event Grid-témakör létrehozása

Az Event Grid egy Azure-szolgáltatás, amely segít az Azure-szolgáltatásokból az Azure-szolgáltatásokból az Azure más pontjaira irányítani és továbbítani az eseményeket. Létrehozhat egy Event Grid-témakört, amely összegyűjt bizonyos eseményeket egy forrásból, majd az előfizetők meghallgathatják a témakört, hogy fogadják az eseményeket.

Az Azure CLI-ben futtassa a következő parancsot egy Event Grid-témakör létrehozásához:

az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>

A parancs kimenete a létrehozott Event Grid-témakörre vonatkozó információ. Mentse az Event Grid-témakörnek adott nevet , mert később fogja használni.

A végpont létrehozása

Ezután hozzon létre egy Event Grid-végpontot az Azure Digital Twinsben, amely csatlakoztatja a példányt az Event Grid-témakörhöz. Használja az alábbi parancsot, és szükség szerint töltse ki az Event Grid-témakör nevét az előző lépésből és a többi helyőrző mezőből.

az dt endpoint create eventgrid --dt-name <Azure-Digital-Twins-instance> --eventgrid-resource-group <your-resource-group> --eventgrid-topic <your-event-grid-topic> --endpoint-name <name-for-your-Azure-Digital-Twins-endpoint>

A parancs kimenete a létrehozott végpontra vonatkozó információ.

Keresse meg a provisioningState mezőt a kimenetben, és ellenőrizze, hogy az érték "Sikeres".

Screenshot of the result of the endpoint query in the Cloud Shell of the Azure portal, showing the endpoint with a provisioningState of Succeeded.

Azt is mondhatja, hogy "Kiépítés", ami azt jelenti, hogy a végpont még mindig létrejön. Ha igen, várjon néhány másodpercet, és futtassa a következő parancsot a végpont állapotának ellenőrzéséhez. Ismételje meg a műveletet, amíg a provisioningState "Sikeres" érték nem jelenik meg.

az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> 

Mentse a végpont nevét , mert később fogja használni.

Az útvonal létrehozása

Ezután hozzon létre egy Azure Digital Twins-útvonalat, amely eseményeket küld a létrehozott Event Grid-végpontnak.

Használja a következő CLI-parancsot, és szükség szerint töltse ki a végpont nevét az előző lépésből és a többi helyőrző mezőből. Ez a parancs az ikergráfban előforduló összes eseményt továbbítja.

Tipp.

Az eseményeket csak adott eseményekre korlátozhatja, ha szeretné, szűrők használatával.

az dt route create --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> --route-name <name-for-your-Azure-Digital-Twins-route>

A parancs kimenete néhány információ a létrehozott útvonalról.

Megjegyzés:

A végpontoknak (az előző lépésből) be kell fejezniük a kiépítést, mielőtt beállíthat egy olyan eseményútvonalat, amely azokat használja. Ha az útvonal létrehozása meghiúsul, mert a végpontok nem állnak készen, várjon néhány percet, majd próbálkozzon újra.

az Azure-függvény Csatlakozás

Ezután iratkozzon fel a ProcessDTRoutedData Azure-függvényre a korábban létrehozott Event Grid-témakörre, hogy a telemetriai adatok a termosztát67 ikerpéldánytól az Event Grid-témakörön keresztül a függvényre áramoljanak, amely visszakerül az Azure Digital Twinsbe, és ennek megfelelően frissíti a room21 ikerszobát.

Ehhez létre fog hozni egy Event Grid-előfizetést, amely adatokat küld a korábban létrehozott Event Grid-témakörből a ProcessDTRoutedData Azure-függvénybe.

Az esemény-előfizetés létrehozásához használja a következő CLI-parancsot. Van egy helyőrző, amely megadja az esemény-előfizetés nevét, és vannak helyőrzők is, amelyek segítségével megadhatja az előfizetés azonosítóját, erőforráscsoportját, az Event Grid-témakör nevét és a függvényalkalmazás nevét.

az eventgrid event-subscription create --name <name-for-topic-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessDTRoutedData

Futtassa a szimulációt, és tekintse meg az eredményeket

Most az eseményeknek képesnek kell lennie arra, hogy a szimulált eszközről az Azure Digital Twinsbe, valamint az Azure Digital Twins gráfon keresztül szükség szerint frissítsék az ikerpéldányokat. Ebben a szakaszban újra futtatja az eszközszimulátort a beállított teljes eseményfolyam elindításához, és lekérdezi az Azure Digital Twinst az élő eredmények megtekintéséhez

Nyissa meg a DeviceSimulator\DeviceSimulator mappához megnyitott konzolablakot, és futtassa az eszközszimulátor-projektet a következőveldotnet run: .

Az eszközszimulátor első futtatásakor is a projekt elindul, és szimulált hőmérsékleti telemetriai üzeneteket jelenít meg. Ezek az események a korábban beállított folyamaton haladnak végig a termosztát67 ikerpéldány frissítéséhez, majd a nemrég beállított folyamaton haladnak végig, hogy a szoba21 ikerszobát egyezni tudjanak.

Screenshot of the console output of the device simulator showing temperature telemetry being sent.

Ebben a konzolban semmi mást nem kell tennie, de a következő lépések végrehajtása közben hagyja futni.

Az Azure Digital Twins oldaláról származó adatok megtekintéséhez nyissa meg az AdtSampleApp\SampleClientApp mappában megnyitott másik konzolablakot, és futtassa a SampleClientApp projektet.dotnet run

A projekt futtatása és a parancsok elfogadása után futtassa a következő parancsot a digitális ikertermosztát67 és a digitális ikerszoba által jelentett hőmérsékletek lekéréséhez21.

ObserveProperties thermostat67 Temperature room21 Temperature

Az Azure Digital Twins-példány élő frissített hőmérsékletét két másodpercenként kell naplózni a konzolra. Figyelje meg, hogy a szoba21 hőmérséklete a termosztát67-nek megfelelően frissül.

Screenshot of the console output showing a log of temperature messages, from a thermostat and a room.

Miután meggyőződött arról, hogy a példány élő hőmérsékletének naplózása sikeresen működik, mindkét projektet leállíthatja. Mindkét konzolablakot bezárhatja, mivel az oktatóanyag befejeződött.

Review

Íme egy áttekintés az oktatóanyagban létrehozott forgatókönyvről.

  1. Az Azure Digital Twins-példányok digitálisan egy padlót, egy szobát és egy termosztátot jelölnek (az alábbi diagram A szakasza jelöli)
  2. A rendszer szimulált eszköztelemetria-adatokat küld az IoT Hubnak, ahol a ProcessHubToDTEvents Azure-függvény figyeli a telemetriai eseményeket. A ProcessHubToDTEvents Azure-függvény az események információi alapján állítja be a tulajdonságot a Temperature termosztát67-en (a diagram B nyílával).
  3. Az Azure Digital Twins tulajdonságváltozási eseményei egy Event Grid-témakörre vannak irányítva, ahol a ProcessDTRoutedData Azure-függvény figyeli az eseményeket. A ProcessDTRoutedData Azure-függvény az események információi alapján állítja be a tulajdonságot a Temperature 21. helyiségben (a diagram C nyílával).

Diagram from the beginning of the article showing the full building scenario.

Clean up resources

Az oktatóanyag elvégzése után kiválaszthatja, hogy mely erőforrásokat szeretné eltávolítani a következő lépéstől függően.

  • Ha nincs szüksége az oktatóanyagban létrehozott erőforrások egyikére sem, törölheti az Azure Digital Twins-példányt és az összes többi erőforrást ebből a cikkből az az group delete CLI paranccsal. Ez törli az erőforráscsoport összes Azure-erőforrását, valamint magát az erőforráscsoportot is.

    Fontos

    Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne foglalt erőforrások véglegesen törlődnek. Figyeljen, nehogy véletlenül rossz erőforráscsoportot vagy erőforrásokat töröljön.

    Nyissa meg az Azure Cloud Shellt vagy egy helyi CLI-ablakot, és futtassa a következő parancsot az erőforráscsoport és a benne található elemek törléséhez.

    az group delete --name <your-resource-group>
    
  • Ha továbbra is használni szeretné a cikkben beállított Azure Digital Twins-példányt, de törli annak néhány vagy az összes modelljét, ikerpéldányát és kapcsolatát, az az dt CLI-parancsokkal törölheti az eltávolítani kívánt elemeket.

    Ez a beállítás nem távolítja el az oktatóanyagban létrehozott többi Azure-erőforrást (IoT Hub, Azure Functions-alkalmazás stb.). Ezeket egyenként törölheti az egyes erőforrástípusoknak megfelelő dt parancsokkal .

Előfordulhat, hogy a projektmappát is törölni szeretné a helyi gépről.

További lépések

Ebben az oktatóanyagban egy végpontok közötti forgatókönyvet hozott létre, amely bemutatja, hogy az Azure Digital Twinst élő eszközadatok vezérlik.

Ezután tekintse meg a koncepciódokumentációt, hogy többet tudjon meg az oktatóanyagban használt elemekről: