Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie over Azure Digital Twins wordt beschreven hoe u een end-to-end-oplossing bouwt die de functionaliteit van de service demonstreert. Om een volledige end-to-end oplossing op basis van live data uit uw omgeving op te zetten, kunt u uw Azure Digital Twins-instantie verbinden met andere Azure-services voor het beheer van apparaten en data.
In deze handleiding leer je...
- Een Azure Digital Twins-instantie instellen
- Het voorbeeldgebouwscenario leren kennen en de vooraf geschreven componenten instantiëren
- Een Azure Functions-app gebruiken om gesimuleerde apparaatgegevens van een IoT Hub-apparaat te routeren naar eigenschappen van digitale dubbels
- Wijzigingen doorgeven via de tweelinggrafiek door digitale dubbelmeldingen te verwerken met Azure Functions, eindpunten en routes
Vereisten
Voordat u aan deze zelfstudie begint, begint u met deze vereisten:
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- In deze zelfstudie wordt .NET gebruikt. U kunt de nieuwste versie van de .NET SDK voor meerdere platforms downloaden via .NET downloaden.
Ga vervolgens door met de rest van deze sectie om de resterende vereisten in te stellen.
Voorbeeldbronnen ophalen
De zelfstudie wordt aangestuurd door een end-to-end voorbeeldproject van Azure Digital Twins dat in C# is geschreven. Haal het voorbeeldproject op uw computer binnen door naar de voorbeeldlink te gaan en de knop Code bladeren onder de titel te selecteren.
Met deze actie gaat u naar de GitHub-opslagplaats voor de voorbeelden, die u kunt downloaden als een .zip door de knop Code te selecteren, gevolgd door ZIP downloaden.
Met deze actie wordt een .zip map naar uw computer gedownload als digital-twins-samples-main.zip. Pak de map uit en extraheer de bestanden.
Een Azure Digital Twins-exemplaar voorbereiden
Als u met Azure Digital Twins in dit artikel wilt werken, hebt u een Azure Digital Twins-exemplaar en de vereiste machtigingen nodig voor het gebruik ervan. Als u al een Azure Digital Twins-exemplaar hebt ingesteld, kunt u dat exemplaar gebruiken en doorgaan naar de volgende sectie. Volg anders de instructies in Een instantie en authenticatie configureren. De instructies bevatten informatie om te controleren of u elke stap hebt voltooid.
Nadat u uw instantie hebt ingesteld, maakt u een notitie van de hostnaam van de instantie. U vindt de hostnaam in Azure Portal.
De omgeving voorbereiden op de Azure CLI
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie Aan de slag met Azure Cloud Shell voor meer informatie.
Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren. Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met behulp van de opdracht az login. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Zie Verifiëren bij Azure met behulp van Azure CLI voor andere aanmeldingsopties.
Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Zie Extensies gebruiken en beheren met de Azure CLIvoor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
CLI-sessie instellen
Als u met Azure Digital Twins in de CLI wilt werken, moet u zich eerst aanmelden en de CLI-context instellen op uw abonnement voor deze sessie. Voer deze opdrachten uit in het CLI-venster:
az login
az account set --subscription "<your-Azure-subscription-ID>"
Aanbeveling
U kunt uw abonnementsnaam ook gebruiken in plaats van de id in de vorige opdracht.
Als u dit abonnement voor het eerst met Azure Digital Twins gebruikt, voert u de volgende opdracht uit om u te registreren bij de Azure Digital Twins-naamruimte. (Als u het niet zeker weet, kunt u het opnieuw uitvoeren, zelfs als u het ergens in het verleden hebt uitgevoerd.)
az provider register --namespace 'Microsoft.DigitalTwins'
Vervolgens voegt u de Microsoft Azure IoT-extensie voor Azure CLI toe om opdrachten in te schakelen voor interactie met Azure Digital Twins en andere IoT-services. Voer deze opdracht uit om te controleren of u de nieuwste versie van de extensie hebt:
az extension add --upgrade --name azure-iot
U bent nu klaar om te werken met Azure Digital Twins in de Azure CLI.
U kunt deze status controleren door az dt --help op elk gewenst moment uit te voeren om een lijst van de beschikbare bovenliggende Azure Digital Twins-opdrachten te zien.
Het voorbeeldproject configureren
Stel vervolgens een voorbeeldclienttoepassing in die gaat communiceren met uw instantie van Azure Digital Twins.
Navigeer op uw computer naar de map die u eerder hebt gedownload van end-to-end-voorbeelden van Azure Digital Twins (en pak deze uit als u dat nog niet hebt gedaan).
Navigeer in de map naar digital-twins-samples-main\AdtSampleApp\SampleClientApp en open het bestand appsettings.json . Dit JSON-bestand bevat een configuratievariabele die nodig is om het project uit te voeren.
Wijzig in de hoofdtekst van het bestand de URL van de instanceUrl hostnaam van uw Azure Digital Twins-exemplaar (door https:// toe te voegen vóór de hostnaam, zoals hieronder wordt weergegeven).
{
"instanceUrl": "https://<your-Azure-Digital-Twins-instance-host-name>"
}
Sla het bestand op en sluit het bestand.
Stel lokale Azure-credenties in
In dit voorbeeld wordt DefaultAzureCredential (onderdeel van de Azure.Identity bibliotheek) gebruikt om te verifiëren bij het Azure Digital Twins-exemplaar wanneer u het voorbeeld uitvoert op uw lokale computer.
DefaultAzureCredential is een van de vele verificatieopties. Zie App-verificatiecode schrijven voor meer informatie over de verschillende manieren waarop een client-app kan worden geverifieerd met Azure Digital Twins.
In het voorbeeld met DefaultAzureCredential worden referenties in uw lokale omgeving gezocht, zoals bijvoorbeeld een Azure-aanmelding in een lokale Azure CLI of in Visual Studio of Visual Studio Code. Daarom moet u zich lokaal aanmelden bij Azure via een van deze mechanismen om referenties in te stellen voor het voorbeeld.
Als u Visual Studio of Visual Studio Code gebruikt om codevoorbeelden uit te voeren, moet u ervoor zorgen dat u bent aangemeld bij die editor met dezelfde Azure-referenties die u wilt gebruiken voor toegang tot uw Azure Digital Twins-exemplaar. Als u een lokaal CLI-venster gebruikt, voert u de az login opdracht uit om u aan te melden bij uw Azure-account. Zodra u bent aangemeld, verifieert uw voorbeeldcode u automatisch bij uitvoering.
Aan de slag met het gebouwscenario
Het voorbeeldproject dat in deze zelfstudie wordt gebruikt, is een realistisch gebouwscenario dat een verdieping, een ruimte en een thermostaatapparaat bevat. Deze onderdelen worden digitaal weergegeven in een Azure Digital Twins-exemplaar, dat is verbonden met IoT Hub, Event Grid en twee Azure-functies om het verplaatsen van gegevens mogelijk te maken.
Het volgende diagram vertegenwoordigt het volledige scenario.
Eerst maakt u het Azure Digital Twins-exemplaar (sectie A in het diagram), stelt u vervolgens de apparaatgegevensstroom in de digitale dubbels (pijl B) in en stelt u vervolgens de gegevensdoorgifte in via de dubbelgrafiek (pijl C).
Als u het scenario wilt doorlopen, communiceert u met onderdelen van de vooraf geschreven voorbeeld-app die u eerder hebt gedownload.
Hier zijn de componenten die worden geïmplementeerd door de AdtSampleApp, een voorbeeld-app in het gebouwscenario:
- Apparaatverificatie
- .NET (C#) SDK-gebruiksvoorbeelden (te vinden in CommandLoop.cs)
- Console-interface voor het aanroepen van de Azure Digital Twins-API
- SampleClientApp: een voorbeeld van een Azure Digital Twins-oplossing
- SampleFunctionsApp - Een Azure Functions-app die uw Azure Digital Twins-grafiek bijwerkt op basis van apparaatgegevens van IoT Hub en Azure Digital Twins-gebeurtenissen
De vooraf gemaakte tweelinggrafiek instantiëren
Eerst gebruikt u de AdtSampleApp-oplossing van het voorbeeldproject om het Azure Digital Twins-gedeelte van het end-to-end scenario (sectie A) te bouwen:
Open een lokaal consolevenster en navigeer naar de map digital-twins-samples-main\AdtSampleApp\SampleClientApp. Voer het SampleClientApp-project uit met deze dotnet-opdracht:
dotnet run
Het project wordt uitgevoerd, voert verificatie uit en wacht op een opdracht. Voer in deze console de volgende opdracht uit om de Azure Digital Twins-voorbeeldoplossing te instantiëren.
Belangrijk
Als u al digitale tweelingen en relaties in uw Azure Digital Twins-instantie hebt, worden deze verwijderd en vervangen door de tweelingen en relaties voor het voorbeeldscenario.
SetupBuildingScenario
De uitvoer van deze opdracht is een reeks bevestigingsberichten omdat er drie digitale dubbels worden gemaakt en verbonden in uw Azure Digital Twins-exemplaar: een vloer met de naam floor1, een ruimte met de naam room21 en een temperatuursensor met de naam thermostat67. Deze digitale tweelingen vertegenwoordigen de entiteiten die zouden bestaan in een werkelijke omgeving.
Ze zijn verbonden via relaties in de volgende dubbelgrafiek. De tweelinggrafiek vertegenwoordigt de omgeving als geheel, met inbegrip van de relaties tussen de entiteiten en de manier waarop ze met elkaar interageren.
U kunt de gemaakte tweelingen verifiëren door de volgende opdracht uit te voeren, waarmee alle digitale tweelingen uit de verbonden Azure Digital Twins-instantie worden opgevraagd:
Query
U kunt nu stoppen met het uitvoeren van het project. Houd het consolevenster echter open op deze locatie, omdat u deze app later in de zelfstudie opnieuw gebruikt.
De voorbeeldfunctie-app instellen
De volgende stap is het instellen van een Azure Functions-app- die tijdens deze zelfstudie wordt gebruikt om gegevens te verwerken. De functie-app, SampleFunctionsApp, bevat twee functies:
- ProcessHubToDTEvents: verwerkt inkomende IoT Hub-gegevens en werkt Azure Digital Twins dienovereenkomstig bij
- ProcessDTRoutedData: verwerkt gegevens van digitale tweelingen en werkt daarbij de bovenliggende tweelingen in Azure Digital Twins dienovereenkomstig bij.
In deze sectie publiceert u de vooraf geschreven functie-app en zorgt u ervoor dat de functie-app toegang heeft tot Azure Digital Twins door deze toe te wijzen aan een Microsoft Entra-identiteit.
In de map digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp bevindt zich de functie-app die deel uitmaakt van het voorbeeldproject dat je hebt gedownload.
Publiceer de app.
Als u de functie-app naar Azure wilt publiceren, moet u een opslagaccount maken, vervolgens de functie-app in Azure maken en ten slotte de functies publiceren naar de Azure-functie-app. In deze sectie worden deze acties voltooid met behulp van de Azure CLI. Vervang in elk commando de tijdelijke aanduidingen tussen hoekige haken door de details voor uw eigen resources.
Maak een Azure-opslagaccount door de volgende opdracht uit te voeren:
az storage account create --name <name-for-new-storage-account> --location <location> --resource-group <resource-group> --sku Standard_LRSMaak een Azure-functie-app door de volgende opdracht uit te voeren:
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 --resource-group <resource-group>Vervolgens gaat u de functies zippen en publiceren naar uw nieuwe Azure-functie-app.
Open een consolevenster op uw computer (als u de lokale Azure CLI gebruikt, kan dit hetzelfde venster zijn) en navigeert u naar de map digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp in uw gedownloade voorbeeldproject.
Voer in de console de volgende opdracht uit om het project lokaal te publiceren:
dotnet publish -c Release -o publishMet deze opdracht wordt het project gepubliceerd naar de digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish directory.
Maak met behulp van uw voorkeursmethode een zip van de gepubliceerde bestanden die zich in de map digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish bevinden. Noem de gezipte map publish.zip.
Belangrijk
Zorg ervoor dat de gezipte map geen extra laag bevat voor de publicatiemap zelf. Het mag alleen de inhoud bevatten die zich in de publicatiemap bevindt.
Hier volgt een afbeelding van hoe de zip-inhoud eruit kan zien (afhankelijk van uw versie van .NET).
De laatste stap wordt uitgevoerd in de Azure CLI.
Voer in de Azure CLI de volgende opdracht uit om de gepubliceerde en ingepakte functies te implementeren naar uw Azure-functie-app.
az functionapp deployment source config-zip --resource-group <resource-group> --name <name-of-your-function-app> --src "<full-path-to-publish.zip>"Aanbeveling
Als u de Azure CLI lokaal gebruikt, hebt u rechtstreeks via het pad op uw computer toegang tot het ZIP-bestand op uw computer.
Als u de Azure Cloud Shell gebruikt, uploadt u het ZIP-bestand naar Cloud Shell met deze knop voordat u de opdracht uitvoert:
In dit geval wordt het bestand geüpload naar de hoofdmap van uw Cloud Shell-opslag, zodat u rechtstreeks naar het bestand kunt verwijzen met de naam van de
--srcparameter van de opdracht (zoals in).--src publish.zipEen geslaagde implementatie reageert met statuscode 202 en voert een JSON-object uit met details van uw nieuwe functie. U kunt bevestigen dat de implementatie is geslaagd door te zoeken naar dit veld in het resultaat:
"provisioningState": "Succeeded",
De functies moeten nu worden gepubliceerd naar een functie-app in Azure. U kunt de volgende CLI-opdrachten gebruiken om te controleren of beide functies zijn gepubliceerd. Elk commando bevat plaatsaanduidingen voor uw resourcegroep en de naam van uw functie-app. De opdrachten drukken informatie af over de functies ProcessDTRoutedData en ProcessHubToDTEvents die u hebt gepubliceerd.
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
Vervolgens moet uw functie-app over de juiste machtigingen beschikken om toegang te krijgen tot uw Azure Digital Twins-exemplaar. U configureert deze toegang in de volgende sectie.
Machtigingen voor de functie-app configureren
Er zijn twee instellingen die moeten worden ingesteld voor de functie-app voor toegang tot uw Azure Digital Twins-exemplaar. Beide kunnen worden uitgevoerd met behulp van de Azure CLI.
Toegangsrol toewijzen
De eerste instelling geeft de functieapp de Azure Digital Twins-gegevens-eigenaarrol in het Azure Digital Twins-exemplaar. Deze rol is vereist voor alle gebruikers of functies die veel gegevensvlakactiviteiten op het exemplaar willen uitvoeren. Meer informatie over beveiligings- en roltoewijzingen vindt u in Security for Azure Digital Twins-oplossingen.
Gebruik de volgende opdracht om een door het systeem toegewezen identiteit voor de functie te maken. In de uitvoer worden details weergegeven van de door het systeem toegewezen identiteit. Noteer het principalId-veld in de uitvoer die u in de volgende stap wilt gebruiken.
az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>Gebruik de waarde principalId in de volgende opdracht om de identiteit van de functie-app toe te wijzen aan de rol Gegevenseigenaar van Azure Digital Twins voor uw Azure Digital Twins-exemplaar.
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"
Het resultaat van deze opdracht is uitvoergegevens over de roltoewijzing die u hebt gemaakt. De functie-app heeft nu machtigingen voor toegang tot gegevens in uw Azure Digital Twins-exemplaar.
Toepassingsinstelling configureren
Met de tweede instelling maakt u een omgevingsvariabele voor de functie met de URL van uw Azure Digital Twins-exemplaar. De functiecode gebruikt de waarde van deze variabele om naar uw exemplaar te verwijzen. Zie Uw functie-app beheren voor meer informatie over omgevingsvariabelen.
Voer het volgende commando uit en vul de tijdelijke aanduidingen in met de details van uw resources.
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>"
De uitvoer is de lijst met instellingen voor de Azure-functie, die nu een vermelding moet bevatten met de naam ADT_SERVICE_URL.
Gesimuleerde apparaatgegevens van een IoT Hub-apparaat verwerken
Apparaatgegevens van echte apparaten drijven doorgaans een Azure Digital Twins-netwerk aan.
In deze stap verbindt u een gesimuleerd thermostaatapparaat dat is geregistreerd in IoT Hub met de digitale dubbel die deze vertegenwoordigt in Azure Digital Twins. Wanneer het gesimuleerde apparaat gegevens verzendt, worden de gegevens doorgestuurd via de Azure-functie ProcessHubToDTEvents waarmee een bijbehorende update in de digitale dubbel wordt geactiveerd. Op deze manier blijft de digitale tweeling up-to-date met de gegevens van het echte apparaat. In Azure Digital Twins wordt het proces waar mee gebeurtenisgegevens van de ene plaats naar de andere worden geleid gebeurtenisroutering genoemd.
Het verwerken van de gesimuleerde apparaatgegevens vindt plaats in dit deel van het end-to-end-scenario (pijl B):
Dit zijn de acties die u uitvoert om deze apparaatverbinding in te stellen:
- Een IoT-hub maken waarmee het gesimuleerde apparaat wordt beheerd
- De IoT-hub verbinden met de juiste Azure-functie door een gebeurtenisabonnement in te stellen
- Het gesimuleerde apparaat in IoT Hub registreren
- Het gesimuleerde apparaat uitvoeren en apparaatgegevens genereren
- Query's uitvoeren op Azure Digital Twins om de live resultaten te bekijken
Een IoT-hub-instantie maken
Azure Digital Twins is bedoeld om te werken naast IoT Hub, een Azure-service voor het beheren van apparaten en hun gegevens. In deze stap stelt u een IoT-hub in waarmee het voorbeeldapparaat in deze zelfstudie wordt beheerd.
Gebruik deze opdracht in de Azure CLI om een nieuwe IoT-hub te maken:
az iot hub create --name <name-for-your-IoT-hub> --resource-group <your-resource-group> --sku S1
De uitvoer van deze opdracht is informatie over de IoT-hub die is gemaakt.
Sla de naam van uw IoT-hub op voor later gebruik.
De IoT-hub verbinden met de Azure-functie
Verbind vervolgens uw IoT-hub met de Azure-functie ProcessHubToDTEvents in de functie-app die u eerder hebt gepubliceerd. Met deze verbinding kunnen gegevens van het apparaat in IoT Hub stromen via de functie, waarmee Azure Digital Twins wordt bijgewerkt.
Hiervoor maakt u een gebeurtenisabonnement op uw IoT Hub, met de Azure-functie als eindpunt. Hiermee wordt de functie 'geabonneerd' op gebeurtenissen die zich in IoT Hub voordoen.
Gebruik de volgende CLI-opdracht om het gebeurtenisabonnement te maken. Er is een plaatsaanduiding voor u om een naam in te voeren voor het gebeurtenisabonnement, en er zijn ook plaatsaanduidingen voor het invoeren van uw abonnements-ID, resourcegroep, IoT-hubnaam en de naam van uw functie-applicatie.
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
In de uitvoer ziet u informatie over het gebeurtenisabonnement dat u hebt gemaakt. U kunt controleren of de bewerking is voltooid door de provisioningState waarde in het resultaat te controleren:
"provisioningState": "Succeeded",
Aanbeveling
Als de opdracht een resourceproviderfout retourneert, voegt u Microsoft.EventGrid toe als resourceprovider aan uw abonnement. U kunt Azure Portal gebruiken om deze resourceprovider toe te voegen aan uw abonnement door de instructies in Resourceprovider registreren te volgen.
Het gesimuleerde apparaat bij IoT Hub registreren
In deze sectie wordt in IoT Hub een apparaatweergave met de id thermostat67 gemaakt. Het gesimuleerde apparaat maakt verbinding met deze weergave. Dit is hoe apparaatgegevens van het apparaat naar IoT Hub stromen. De IoT-hub is waar de geabonneerde Azure-functie uit de vorige stap luistert, klaar is om de gebeurtenissen op te halen en door te gaan met verwerken.
Maak in de Azure CLI een apparaat in IoT Hub met de volgende opdracht:
az iot hub device-identity create --device-id thermostat67 --hub-name <your-IoT-hub-name> --resource-group <your-resource-group>
De uitvoer is informatie over het gemaakte apparaat.
De simulatie configureren en uitvoeren
Belangrijk
Dit artikel bevat stappen voor het verbinden van een apparaat met behulp van een Shared Access Signature, ook wel symmetrische sleutelverificatie genoemd. Deze verificatiemethode is handig voor testen en evalueren, maar het verifiëren van een apparaat met X.509-certificaten is een veiligere benadering. "Zie Beveiligingsbest practices voor IoT-oplossingen > Verbindingsbeveiliging voor meer informatie."
Configureer vervolgens de apparaatsimulator om gegevens te verzenden naar uw IoT Hub-instance.
Begin met het verkrijgen van de IoT-hub verbindingsketen met de volgende opdracht. De verbindingsreeks waarde begint met HostName=.
az iot hub connection-string show --hub-name <your-IoT-hub-name>
Haal vervolgens de apparaatverbindingsreeks op met deze opdracht:
az iot hub device-identity connection-string show --device-id thermostat67 --hub-name <your-IoT-hub-name>
Voer vervolgens deze waarden in de code van de apparaatsimulator in uw lokale project in om de simulator te verbinden met deze IoT hub en het IoT hub-apparaat.
Navigeer naar uw lokale computer naar de gedownloade voorbeeldmap en vervolgens naar de digital-twins-samples-main\DeviceSimulator\DeviceSimulator map. Open het AzureIoTHub.cs-bestand om te bewerken. Wijzig de waarden in de verbindingsreeks naar de waarden die u eerder hebt verzameld.
private const string iotHubConnectionString = "<your-hub-connection-string>";
//...
private const string deviceConnectionString = "<your-device-connection-string>";
Sla het bestand op.
Als u nu de resultaten wilt bekijken van de gegevenssimulatie die u hebt ingesteld, opent u een nieuw lokaal consolevenster en navigeert u naar digital-twins-samples-main\DeviceSimulator\DeviceSimulator.
Notitie
U hebt nu twee geopende consolevensters: één die is geopend in de map DeviceSimulator\DeviceSimulator, en een ander consolevenster van eerder dat nog steeds geopend is in de map AdtSampleApp\SampleClientApp.
Gebruik de volgende dotnet-opdracht om het apparaatsimulatorproject uit te voeren:
dotnet run
Het project wordt uitgevoerd en begint met het weergeven van gegevensberichten van gesimuleerde temperatuurapparaten. Deze berichten worden verzonden naar IoT Hub, waar ze vervolgens worden opgehaald en verwerkt door de Azure-functie.
U hoeft niets anders te doen in deze console, maar laat deze draaien terwijl u de volgende stappen voltooit.
De resultaten bekijken in Azure Digital Twins
De functie ProcessHubToDTEvents die u eerder hebt gepubliceerd, luistert naar de IoT Hub-gegevens en roept een Azure Digital Twins-API aan om de Temperature eigenschap op de thermostat67-dubbel bij te werken.
Als u de gegevens vanuit Azure Digital Twins wilt bekijken, schakelt u over naar het andere consolevenster dat geopend is naar de map AdtSampleApp\SampleClientApp. Voer het SampleClientApp-project uit met dotnet run.
dotnet run
Zodra het project wordt uitgevoerd en opdrachten accepteert, voert u de volgende opdracht uit om de temperaturen op te halen die worden gerapporteerd door de digitale dubbel thermostat67:
ObserveProperties thermostat67 Temperature
U ziet dat de live bijgewerkte temperaturen van uw Azure Digital Twins-exemplaar elke twee seconden in de console worden geregistreerd. Ze moeten de waarden weerspiegelen die door de gegevenssimulator worden gegenereerd (u kunt de consolevensters naast elkaar plaatsen om te controleren of de waarden coördinaat zijn).
Notitie
Het kan enkele seconden duren voordat de gegevens van het apparaat zijn doorgegeven aan de tweeling. De eerste paar temperatuurmetingen kunnen worden weergegeven als 0 voordat gegevens binnenkomen.
Zodra u hebt gecontroleerd of de logboekregistratie van livetemperatuur correct werkt, kunt u beide projecten stoppen. Houd de consolevensters open, omdat u ze later in de zelfstudie opnieuw gebruikt.
Azure Digital Twins-gebeurtenissen doorvoeren in de grafiek
Tot nu toe in deze zelfstudie ziet u hoe Azure Digital Twins kan worden bijgewerkt op basis van externe apparaatgegevens. Vervolgens ziet u hoe wijzigingen in één digitale dubbel kunnen worden doorgegeven via de Azure Digital Twins-grafiek, met andere woorden, hoe u tweelingen bijwerkt vanuit interne servicegegevens.
Hiervoor gebruikt u de Azure-functie ProcessDTRoutedData om een kamer-twin bij te werken wanneer de verbonden thermostaat-twin wordt bijgewerkt. De updatefunctionaliteit vindt plaats in dit deel van het end-to-end-scenario (pijl C):
Dit zijn de acties die u uitvoert om deze gegevensstroom in te stellen:
- Een Event Grid-onderwerp maken om het verplaatsen van gegevens tussen Azure-services mogelijk te maken
- Een eindpunt maken in Azure Digital Twins waarmee het exemplaar wordt verbonden met het Event Grid-onderwerp
- Een route instellen in Azure Digital Twins waarmee wijzigingsevenementen van dubbele eigenschappen naar het eindpunt worden verzonden
- Stel een Azure-functie in die luistert naar het Event Grid-onderwerp op het eindpunt, ontvangt de wijzigingsevenementen van de tweelingeigenschappen die daar worden verzonden en werkt andere tweelingen in de graf dienovereenkomstig bij.
Het Event Grid-onderwerp maken
Event Grid is een Azure-service waarmee gebeurtenissen van Azure-services naar andere locaties in Azure kunnen worden gerouteerd en geleverd. U kunt een Event Grid-onderwerp maken om bepaalde gebeurtenissen van een bron te verzamelen en vervolgens kunnen abonnees luisteren naar het onderwerp om de gebeurtenissen te ontvangen wanneer ze binnenkomen.
Voer in de Azure CLI de volgende opdracht uit om een Event Grid-onderwerp te maken:
az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>
De uitvoer van deze opdracht is informatie over het Event Grid-onderwerp dat u hebt gemaakt. Sla de naam op die u aan uw Event Grid-onderwerp hebt gegeven, omdat u deze later gaat gebruiken.
Het eindpunt maken
Maak vervolgens een Event Grid-eindpunt in Azure Digital Twins, waarmee uw exemplaar wordt verbonden met uw Event Grid-onderwerp. Gebruik de onderstaande opdracht om de naam van uw Event Grid-onderwerp in te vullen uit de vorige stap en de andere tijdelijke aanduidingenvelden, indien nodig.
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>
De uitvoer van deze opdracht is informatie over het eindpunt dat u heeft aangemaakt.
Zoek naar het provisioningState veld in de uitvoer en controleer of de waarde "Succeeded" is.
Het kan ook zijn dat er 'Inrichten' staat, wat betekent dat het eindpunt nog wordt gecreëerd. Zo ja, wacht u een paar seconden en voert u de volgende opdracht uit om de status van het eindpunt te controleren. Herhaal dit totdat ' provisioningState Geslaagd' wordt weergegeven.
az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint>
Sla de naam van uw eindpunt op, omdat u het later gaat gebruiken.
De route maken
Maak vervolgens een Azure Digital Twins-route waarmee gebeurtenissen worden verzonden naar het Event Grid-eindpunt dat u hebt gemaakt.
Gebruik de volgende CLI-opdracht om de naam van uw eindpunt vanuit de vorige stap in te vullen en vul indien nodig ook de andere tijdelijke aanduidingen in. Met deze opdracht worden alle gebeurtenissen doorgestuurd die in de tweelinggrafiek voorkomen.
Aanbeveling
U kunt de gebeurtenissen beperken tot alleen specifieke gebeurtenissen als u wilt, met behulp van filters.
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>
De uitvoer van deze opdracht bevat enige informatie over de route die u hebt gemaakt.
Notitie
Eindpunten (uit de vorige stap) moeten klaar zijn met inrichten voordat u een gebeurtenisroute kunt instellen die deze gebruikt. Als de route niet kan worden gemaakt omdat de eindpunten niet klaar zijn, dan wacht u een paar minuten en probeert u het opnieuw.
De Azure-functie verbinden
Abonneer vervolgens de Azure-functie ProcessDTRoutedData op het Event Grid-onderwerp dat u eerder hebt gemaakt. Met dit abonnement kunnen gesimuleerde apparaatgegevens van de thermostat67-dubbel via het Event Grid-onderwerp naar de functie stromen, die teruggaat naar Azure Digital Twins en de room21-dubbel dienovereenkomstig bijwerken.
Hiervoor maakt u een Event Grid-abonnement waarmee gegevens worden verzonden uit het Event Grid-onderwerp dat u eerder hebt gemaakt naar uw Azure-functie ProcessDTRoutedData .
Gebruik de volgende CLI-opdracht om het gebeurtenisabonnement te maken. Er is een veld waarin u een naam voor dit gebeurtenisabonnement kunt invoeren, en er zijn ook velden voor het invoeren van uw abonnements-id, resourcegroep, de naam van uw Event Grid-onderwerp en de naam van uw functie-app.
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
De simulatie uitvoeren en de resultaten bekijken
Nu moeten gebeurtenissen in staat zijn te stromen van het gesimuleerde apparaat naar Azure Digital Twins en via de Azure Digital Twins-graf om twins indien nodig bij te werken. In deze sectie voert u de apparaatsimulator opnieuw uit om de volledige gebeurtenisstroom te starten die u hebt ingesteld en query's uit te voeren op Azure Digital Twins om de liveresultaten te bekijken
Ga naar het consolevenster dat is geopend op de map DeviceSimulator\DeviceSimulator en run het apparaat simulator project met dotnet run.
Net als de eerste keer dat u de simulator voor apparaten hebt uitgevoerd, wordt het project uitgevoerd en worden gesimuleerde temperatuurapparaatgegevens weergegeven. Deze gebeurtenissen volgen de stroom die u eerder hebt ingesteld om de thermostat67-tweeling bij te werken, en vervolgens de stroom die u zojuist hebt ingesteld om de room21-tweeling dienovereenkomstig bij te werken.
U hoeft niets anders te doen in deze console, maar laat deze draaien terwijl u de volgende stappen voltooit.
Als u de gegevens van de Azure Digital Twins-kant wilt zien, gaat u naar het andere consolevenster dat is geopend naar de folder AdtSampleApp\SampleClientApp en voert u het project SampleClientApp uit met dotnet run.
Zodra het project draait en opdrachten accepteert, voert u de volgende opdracht uit om de temperaturen op te halen die worden gerapporteerd door zowel de digitale tweeling thermostaat67 als de digitale tweeling kamer21.
ObserveProperties thermostat67 Temperature room21 Temperature
U ziet dat de live bijgewerkte temperaturen van uw Azure Digital Twins-exemplaar elke twee seconden in de console worden geregistreerd. U ziet dat de temperatuur voor room21 wordt bijgewerkt overeenkomstig de updates van thermostat67.
Zodra u hebt gecontroleerd of de logboekregistratie van live temperaturen van uw exemplaar succesvol werkt, kunt u de beide projecten stoppen. U kunt beide consolevensters ook sluiten, omdat de zelfstudie nu is voltooid.
Beoordelen
Hier volgt een overzicht van het scenario dat u in deze zelfstudie hebt gemaakt.
- Een Azure Digital Twins-exemplaar vertegenwoordigt digitaal een verdieping, een ruimte en een thermostaat (vertegenwoordigd door sectie A in het volgende diagram)
- Gesimuleerde apparaatgegevens worden verzonden naar IoT Hub, waar de Azure-functie ProcessHubToDTEvents luistert naar apparaatgegevensgebeurtenissen . De Azure-functie ProcessHubToDTEvents gebruikt de informatie in deze gebeurtenissen om de
Temperatureeigenschap in te stellen op thermostat67 (pijl B in het volgende diagram). - Gebeurtenissen voor het wijzigen van eigenschappen in Azure Digital Twins worden doorgestuurd naar een Event Grid-onderwerp, waarbij de Azure-functie ProcessDTRoutedData luistert naar gebeurtenissen. De functie ProcessDTRoutedData Azure gebruikt de informatie in deze gebeurtenissen om de
Temperatureeigenschap in te stellen op room21 (pijl C in het volgende diagram).
Middelen opschonen
Nadat u deze zelfstudie hebt voltooid, kunt u kiezen welke resources u wilt verwijderen, afhankelijk van wat u hierna wilt doen.
Als u geen van de resources nodig hebt die u in deze zelfstudie hebt gemaakt, kunt u het Azure Digital Twins-exemplaar en alle andere resources uit dit artikel verwijderen met de opdracht az group delete CLI. Hiermee verwijdert u alle Azure-resources in een resourcegroep, evenals de resourcegroep zelf.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of middelen verwijdert.
Open Azure Cloud Shell of een lokaal CLI-venster en voer de volgende opdracht uit om de resourcegroep en alles wat deze bevat te verwijderen.
az group delete --name <your-resource-group>
Als u het Azure Digital Twins-exemplaar wilt blijven gebruiken dat u in dit artikel hebt ingesteld, maar sommige of alle bijbehorende modellen, tweelingen en relaties wilt wissen, kunt u de az dt CLI-opdrachten gebruiken om de elementen te verwijderen die u wilt verwijderen.
Met deze optie worden geen andere Azure-resources verwijderd die in deze zelfstudie zijn gemaakt (IoT Hub, Azure Functions-app, enzovoort). U kunt deze resources afzonderlijk verwijderen met behulp van de dt-opdrachten die geschikt zijn voor elk resourcetype.
U kunt de projectmap ook van uw lokale computer verwijderen.
Volgende stappen
In deze zelfstudie hebt u een end-to-end scenario gemaakt dat Azure Digital Twins toont op basis van live apparaatgegevens.
Ga vervolgens naar de conceptdocumentatie voor meer informatie over de elementen waarmee u in de zelfstudie hebt gewerkt: