Zelfstudie: Een end-to-end-oplossing bouwen

In Azure Digital Twins zelfstudie 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 zelfstudie gaat u...

  • Een Azure Digital Twins-instantie instellen
  • Het voorbeeldgebouwscenario leren kennen en de vooraf geschreven componenten instantiëren
  • Een Azure Functions-app gebruiken om gesimuleerde telemetrie te routeren van een IoT Hub-apparaat naar digitale-tweelingeigenschappen
  • Wijzigingen doorvoeren in de tweelinggrafiek door digitale-tweelingmeldingen te verwerken met Azure Functions, eindpunten en routes

Vereisten

Als u de stappen in deze zelfstudie wilt voltooien, moet u eerst aan de volgende vereisten voltooien.

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Vereiste resources op halen

Voor het voltooien van deze zelfstudie installeert Visual Studio versie 2019, versie 16.5 of hoger op uw ontwikkelmachine. Als u al een oudere versie hebt geïnstalleerd, kunt u de app Visual Studio Installer op uw machine openen en de prompts volgen om uw installatie bij te werken.

Notitie

Zorg ervoor dat uw installatie van Visual Studio 2019 de Azure Development Workload bevat. Met deze workload kan een toepassing Azure-functies publiceren en andere Azure-ontwikkeltaken uitvoeren.

De zelfstudie wordt aangestuurd door Azure Digital Twins end-to-end voorbeeldprojectdat is geschreven in C# . Haal het voorbeeldproject op uw computer op door naar de voorbeeldkoppeling te gaan en de knop Bladeren in code onder de titel te selecteren. Hiermee gaat u naar de GitHub voor de voorbeelden, die u als een .zip kunt downloaden door de knop Code te selecteren, gevolgd door ZIP downloaden.

Schermopname van de repo digital-twins-samples op GitHub, waarin de stappen voor het downloaden als zip zijn belicht.

Hiermee downloadt u .zip map naar uw computer als digital-twins-samples-master.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, moet u eerst een Azure Digital Twins instellen. U hebt ook de vereiste machtigingen nodig om deze te kunnen gebruiken. Als u al een Azure Digital Twins hebt ingesteld, kunt u deze in plaats daarvan gebruiken.

Volg anders de instructies in Een instantie en verificatie instellen. De instructies bevatten informatie om u te helpen controleren of u elke stap met succes hebt voltooid.

Nadat u uw exemplaar hebt ingesteld, noteert u de volgende waarden. U hebt deze waarden later nodig om verbinding te maken met het exemplaar:

  • De hostnaam van het exemplaar. U vindt de hostnaam in de Azure Portal.
  • Het Azure-abonnement dat u hebt gebruikt om het exemplaar te maken. De naam of id werkt. U vindt het abonnement op de pagina Overzicht van uw exemplaar in Azure Portal.

De omgeving voorbereiden op de Azure CLI

  • Gebruik de bash-omgeving in Azure Cloud shell.

    Cloud Shell starten in een nieuw venster

  • Installeer de Azure CLI, indien gewenst, om CLI-referentieopdrachten uit te voeren.

    • 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. Raadpleeg Aanmelden bij de Azure CLI voor aanvullende aanmeldingsopties.

    • Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Raadpleeg Extensies gebruiken met Azure CLI voor 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.

Een Cloud Shell-sessie instellen

Om aan de slag te gaan met Azure Digital Twins in een open Azure Cloud Shell-venster, moet u zich eerst aanmelden en de shellcontext voor deze sessie instellen op uw abonnement. Voer de volgende opdrachten uit in uw Cloud Shell:

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

Tip

U kunt ook de naam van uw abonnement in plaats van de ID gebruiken in de bovenstaande opdracht.

Als dit de eerste keer is dat u dit abonnement met Azure Digital Twins gebruikt, voert u deze opdracht uit om u te registreren bij de naamruimte van Azure Digital Twins. (Als u het niet zeker weet, kunt u de opdracht opnieuw uitvoeren, zelfs als u dit in het verleden een keer hebt gedaan.)

az provider register --namespace 'Microsoft.DigitalTwins'

Vervolgens voegt u de Microsoft Azure IoT-extensie voor Azure CLI aan uw Cloud Shell toe om opdrachten voor interactie met Azure Digital Twins en andere IoT-Services in te schakelen. Voer deze opdracht uit om ervoor te zorgen dat u de nieuwste versie van de extensie hebt:

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

U bent nu klaar om aan de slag te gaan met Azure Digital Twins in de Cloud Shell.

U kunt dit controleren door az dt --help op elk gewenst moment uit te voeren om een lijst weer te geven van de Azure Digital Twins-opdrachten op het hoogste niveau die beschikbaar zijn.

Het voorbeeldproject configureren

Stel vervolgens een voorbeeldclienttoepassing in die gaat communiceren met uw instantie van Azure Digital Twins.

Navigeer op uw computer naar het bestand dat u eerder hebt gedownload Azure Digital Twins end-to-end-voorbeelden (en los het uit als u dat nog niet hebt gedaan).

Ga in de map naar AdtSampleApp. Open AdtE2ESample.sln in Visual Studio 2019.

Selecteer in Visual Studio SampleClientApp > bestand appSettings.json om het te openen in het bewerkingsvenster. Dit bestand fungeert als een vooraf ingesteld JSON-bestand met de benodigde configuratievariabelen om het project uit te voeren.

Wijzig in de hoofdbalk van het bestand de in de instanceUrl hostnaam-URL 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.

Configureer vervolgens het bestand appsettings.json dat moet worden gekopieerd naar de uitvoermap wanneer u de SampleClientApp compileert. Als u dit wilt doen, selecteert u met deappsettings.jsbestand en kiest u Eigenschappen. Zoek in de inspector Eigenschappen naar de eigenschap Naar uitvoermap kopiëren. Wijzig de waarde in Kopiëren indien nieuwer als deze nog niet is ingesteld op die waarde.

Schermopname van de Solution Explorer in Visual Studio met appsettings.jsen de eigenschap Kopiëren naar uitvoermap gemarkeerd in Eigenschappen.

Houd het project AdtE2ESample geopend in Visual Studio om dit in de rest van de zelfstudie te gebruiken.

Lokale Azure-referenties instellen

In dit voorbeeld wordt gebruikgemaakt van DefaultAzureCredential (onderdeel van de Azure.Identity-bibliotheek) om gebruikers te verifiëren bij de Azure Digital Twins-instantie wanneer u deze uitvoert op uw lokale machine. Voor meer informatie over verschillende manieren waarop een client-app kan verifiëren met Azure Digital Twins, raadpleegt u Verificatiecode voor app schrijven.

Met DefaultAzureCredential zoekt het voorbeeld naar referenties in uw lokale omgeving, zoals 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 gebruikmaakt van Visual Studio of Visual Studio Code om het codevoorbeeld uit te voeren, moet u ervoor zorgen dat u bent aangemeld bij die editor met dezelfde Azure-referenties die u wilt gebruiken om uw Azure Digital Twins-instantie te openen.

Anders kunt u de Azure-CLI lokaal installeren, de opdrachtprompt uitvoeren op uw machine en de opdracht az login uitvoeren om u aan te melden bij uw Azure-account. Wanneer u hierna uw codevoorbeeld moet uitvoeren, zou u automatisch aangemeld moeten worden.

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 vervolgens wordt verbonden met IoT Hub, Event Grid entwee Azure-functies om gegevens te verplaatsen.

Hieronder ziet u een diagram dat het volledige scenario weergeeft.

Eerst maakt u het Azure Digital Twins-exemplaar ( sectie A in het diagram) en stelt u vervolgens de telemetriegegevensstroom in de digitale tweelingen in (pijl B) en stelt u vervolgens de gegevensdoor doorgeven via de tweelinggrafiek in (pijl C).

Diagram van het volledige gebouwscenario, waarin de gegevens van een apparaat naar en van Azure Digital Twins verschillende Azure-services stromen.

Als u het scenario wilt doorwerken, werkt u met onderdelen van de vooraf geschreven voorbeeld-app die u eerder hebt gedownload.

Hier volgen de onderdelen die worden geïmplementeerd door de voorbeeld-app AdtSampleApp van 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 waarmee uw Azure Digital Twins grafiek wordt bijgewerkt op basis van telemetrie van IoT Hub en Azure Digital Twins gebeurtenissen

De vooraf gemaakte tweelinggrafiek instantiëren

Eerst gebruikt u de AdtSampleApp-oplossing uit het voorbeeldproject om het Azure Digital Twins-deel van het end-to-end scenario (sectie A) te bouwen:

Diagram van een fragment uit het volledige gebouwscenariodiagram waarin de sectie Azure Digital Twins-exemplaar wordt belicht.

Voer in uw Visual Studio-venster met het voorbeeldproject AdtE2ESample open het project uit met deze knop op de werkbalk:

Schermopname van Visual Studio startknop met het project SampleClientApp geopend.

Er wordt een consolevenster geopend, de verificatie wordt uitgevoerd en er wordt gewacht 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 die door deze opdracht verwijderd en vervangen door de tweelingen en relaties voor het voorbeeldscenario.

SetupBuildingScenario

De uitvoer van deze opdracht is een reeks bevestigingsberichten wanneer er drie digitale tweelingen worden gemaakt en verbonden in uw Azure Digital Twins-exemplaar: een verdieping 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 via relaties verbonden met de volgende tweelinggrafiek. De tweelinggrafiek vertegenwoordigt de omgeving als geheel, met inbegrip van de relaties tussen de entiteiten en de manier waarop ze met elkaar interageren.

Diagram waarin wordt weergegeven dat floor1 room21 bevat en room21 thermostat67 bevat.

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

Notitie

Nadat u de gegevens in uw grafiek hebt gewijzigd, kan er een latentie van maximaal 10 seconden zijn voordat de wijzigingen worden doorgevoerd in query's.

De DigitalTwins-API weerspiegelt wijzigingen onmiddellijk, dus als u een direct antwoord nodig hebt, gebruikt u een API-aanvraag (DigitalTwins GetById) of een SDK-aanroep (GetDigitalTwin) om dubbele gegevens op te halen in plaats van een query.

U kunt nu stoppen met het uitvoeren van het project. Maar houd de oplossing open in Visual Studio, want u blijft deze gebruiken tijdens de zelfstudie.

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 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 er een Azure Active Directory-identiteit (Azure AD) aan toe te wijzen. Door deze stappen uit te voeren, kan de rest van de zelfstudie gebruikmaken van de functies in de functie-app.

Terug in het Visual Studio-venster waarin het AdtE2ESample-project is geopend, staat de functie-app in het projectbestand SampleFunctionsApp. U kunt deze weergeven in het deelvenster Solution Explorer.

Afhankelijkheden bijwerken

Voordat u de app publiceert, is het handig om ervoor te zorgen dat uw afhankelijkheden zijn bijgewerkt en dat u over de nieuwste versie van alle meegeleverde pakketten beschikt.

Vouw in Solution Explorer deelvenster SampleFunctionsApp de > Afhankelijkheden uit. Klik met de rechter muisknop op Pakketten en kies NuGet-pakketten beheren... .

Schermopname van Visual Studio met de menuknop NuGet-pakketten beheren voor het project SampleFunctionsApp.

Als u dit doet, wordt het NuGet-Pakketbeheer. Selecteer het tabblad Updates en als er pakketten moeten worden bijgewerkt, selecteert u het vakje Alle pakketten selecteren. Selecteer vervolgens Bijwerken.

Schermopname van Visual Studio hoe u selecteert om alle pakketten in de NuGet-Pakketbeheer.

De app publiceren

Als u de functie-app wilt publiceren naar Azure, moet u eerst een opslagaccount maken, vervolgens de functie-app maken in Azure en ten slotte de functies publiceren naar de Azure-functie-app. In deze sectie worden deze acties voltooid met behulp van de Azure CLI.

  1. 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_LRS
    
  2. Maak 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> --consumption-plan-location <location> --runtime dotnet --resource-group <resource-group>
    
  3. Vervolgens zipt u de functies in een zip-bestand en publiceert u ze naar uw nieuwe Azure-functie-app.

    1. Open een terminal zoals PowerShell op uw lokale computer en navigeer naar de Digital Twins voorbeelden die u eerder in de zelfstudie hebt gedownload. Navigeer in de gedownloade map van de repo naar digital-twins-samples-master\AdtSampleApp\SampleFunctionsApp.

    2. Voer in de terminal de volgende opdracht uit om het project te publiceren:

      dotnet publish -c Release
      

      Met deze opdracht wordt het project gepubliceerd naar de map digital-twins-samples-master\AdtSampleApp\SampleFunctionsApp\bin\Release\netcoreapp3.1\publish.

    3. Maak een zip van de gepubliceerde bestanden die zich bevinden in de map digital-twins-samples-master\AdtSampleApp\SampleFunctionsApp\bin\Release\netcoreapp3.1\publish.

      Als u PowerShell gebruikt, kunt u het zip-bestand maken door het volledige pad naar die map \publish te kopiëren en in de volgende opdracht te kopiëren:

      Compress-Archive -Path <full-path-to-publish-directory>\* -DestinationPath .\publish.zip
      

      De cmdlet maakt een publish.zip-bestand in de maplocatie van uw terminal met een host.json-bestand, evenals bin-, ProcessDTRoutedData- en ProcessHubToDTEvents-mappen.

      Als u PowerShell niet gebruikt en geen toegang hebt tot de cmdlet, moet u de bestanden zip-bestanden in een zip-bestand opslaan met de Verkenner of een Compress-Archive andere methode.

  4. Voer in de Azure CLI de volgende opdracht uit om de gepubliceerde en ingepakte functies te implementeren in 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>"
    

    Notitie

    Als u de Azure CLI lokaal gebruikt, hebt u rechtstreeks toegang tot het ZIP-bestand op uw computer via het pad op uw computer.

    Als u de Azure Cloud Shell gebruikt, uploadt u het ZIP-bestand naar Cloud Shell knop voordat u de opdracht gaat uitvoeren:

    Schermopname van de Azure Cloud Shell waarin wordt belicht hoe u bestanden uploadt.

    In dit geval wordt het bestand geüpload naar de hoofdmap van uw Cloud Shell-opslag, zodat u rechtstreeks op de naam van het bestand kunt verwijzen voor de parameter van de --src opdracht (zoals in --src publish.zip ).

    Een geslaagde implementatie reageert met statuscode 202 en geeft een JSON-object weer 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",
      ...
    }
    

U hebt de functies nu gepubliceerd naar een functie-app in Azure.

Vervolgens moet uw functie-app de juiste machtiging hebben om toegang te krijgen tot Azure Digital Twins-exemplaar. U configureert deze toegang in de volgende sectie.

Machtigingen configureren voor de functie-app

Er moeten twee instellingen worden ingesteld voor de functie-app om toegang te krijgen tot uw Azure Digital Twins-exemplaar. Beide kunnen worden uitgevoerd met behulp van de Azure CLI.

Toegangsrol toewijzen

Met de eerste instelling krijgt de functie-app Azure Digital Twins rol Gegevenseigenaar 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 beveiliging en roltoewijzingen vindt u in Security for Azure Digital Twins solutions.

  1. Gebruik de volgende opdracht om de details van de door het systeem beheerde identiteit voor de functie te bekijken. Noteer het veld principalId in de uitvoer.

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

    Notitie

    Als het resultaat leeg is in plaats van details van een identiteit weer te geven, maakt u een nieuwe door het systeem beheerde identiteit voor de functie met behulp van deze opdracht:

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>  
    

    In de uitvoer worden vervolgens details van de identiteit weergegeven, met inbegrip van de principalId-waarde die is vereist voor de volgende stap.

  2. 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 --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
    

Het resultaat van deze opdracht is uitgevoerde informatie over de roltoewijzing die u hebt gemaakt. De functie-app heeft nu machtigingen voor toegang tot gegevens in Azure Digital Twins-exemplaar.

Toepassingsinstellingen configureren

Met de tweede instelling maakt u een omgevingsvariabele voor de functie met de URL van uw Azure Digital Twins-instantie. 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 de onderstaande opdracht 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 met de naam ADT_SERVICE_URL.

Gesimuleerde telemetrie van een IoT Hub-apparaat verwerken

Een Azure Digital Twins-grafiek is bedoeld om te worden aangedreven door telemetrie van echte apparaten.

In deze stap verbindt u een gesimuleerd thermostaatapparaat dat is geregistreerd in IoT Hub met de digitale tweeling die het in de Azure Digital Twins. Wanneer het gesimuleerde apparaat telemetrie verzendt, worden de gegevens door de Azure-functie ProcessHubToDTEvents geleid, die een overeenkomstige update activeert in de digitale tweeling. 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 telemetrie vindt plaats in dit deel van het end-to-end-scenario (pijl B):

Diagram van een fragment van het volledige scenariodiagram waarin de sectie wordt belicht waarin elementen worden weergegeven voordat u Azure Digital Twins.

Dit zijn de acties die u moet uitvoeren om deze apparaatverbinding in te stellen:

  1. Een IoT-hub maken waarmee het gesimuleerde apparaat wordt beheerd
  2. De IoT-hub verbinden met de juiste Azure-functie door een gebeurtenisabonnement in te stellen
  3. Het gesimuleerde apparaat in IoT Hub registreren
  4. Het gesimuleerde apparaat uitvoeren en telemetrie genereren
  5. 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 die het voorbeeldapparaat in deze zelfstudie beheert.

Gebruik in Azure Cloud Shell deze opdracht 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 op die u aan uw IoT-hub hebt gegeven. U gebruikt deze later weer.

De IoT-hub verbinden met de Azure-functie

Koppel vervolgens uw IoT-hub aan de Azure-functie ProcessHubToDTEvents in de functie-app die u eerder hebt gepubliceerd, zodat gegevens van het apparaat in IoT Hub door de functie kunnen stromen, waardoor Azure Digital Twins wordt bijgewerkt.

Om dit te doen, 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.

Navigeer Azure Portalde zojuist gemaakte IoT-hub door in de bovenste zoekbalk te zoeken naar de naam. Selecteer Gebeurtenissen in het hubmenu en selecteer + Gebeurtenisabonnement.

Schermopname van de Azure Portal met het IoT Hub gebeurtenisabonnement.

Als u deze optie selecteert, wordt de pagina Gebeurtenisabonnement maken weergegeven.

Schermopname van de Azure Portal waarin wordt weergegeven hoe u een gebeurtenisabonnement maakt.

Vul de velden als volgt in (velden die standaard worden ingevuld, worden niet vermeld):

  • GEBEURTENISABONNEMENTDETAILS > Naam: Geef een naam op voor uw gebeurtenisabonnement.
  • DETAILS VAN HET ONDERWERP > Naam van systeemonderwerp: Geef een naam op voor het systeemonderwerp.
  • GEBEURTENISTYPEN > Filteren op gebeurtenistypen: Selecteer Apparaattelemetrie uit de menuopties.
  • DETAILS VAN EINDPUNT > Type eindpunt: Selecteer Azure-functie in de menuopties.
  • EINDPUNTDETAILS > Eindpunt: selecteer de koppeling Een eindpunt selecteren, waarmee het venster Azure-functie selecteren wordt geopend: Schermopname van het Azure Portal-gebeurtenisabonnement waarin het venster wordt weergegeven om een Azure-functie te selecteren.
    • Vul uw abonnement, resourcegroep, functie-app en functie in (ProcessHubToDTEvents). Sommige van deze waarden worden mogelijk automatisch ingevuld nadat u het abonnement hebt geselecteerd.
    • Selecteer Confirm Selection (Selectie bevestigen).

Selecteer Maken als u terug bent op de pagina Gebeurtenisabonnement maken.

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 telemetriegebeurtenissen van het apparaat naar de IoT Hub. 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 Azure Cloud Shell 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

Configureer vervolgens de apparaatsimulator om gegevens te verzenden naar uw IoT Hub-instance.

Begin door de IoT-hubverbindingsreeks op te halen met deze opdracht:

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>

U neemt deze waarden op in de apparaatsimulatorcode in uw lokale project om de simulator aan te sluiten op deze IoT-hub en dit IoT-hub-apparaat.

Open in een nieuw Visual Studio-venster (vanuit de map met de gedownloade oplossing) Apparaatsimulator > DeviceSimulator.sln.

Notitie

Als het goed is, hebt u nu twee Visual Studio-vensters: een met DeviceSimulator.sln en een van eerder met AdtE2ESample.sln.

Selecteer in het deelvenster Solution Explorer in dit nieuwe Visual Studio-venster DeviceSimulator/AzureIoTHub.cs om het te openen in het bewerkingsvenster. Wijzig de volgende verbindingsreekswaarden in de waarden die u hierboven hebt verzameld:

iotHubConnectionString = <your-hub-connection-string>
deviceConnectionString = <your-device-connection-string>

Sla het bestand op.

Voer nu met deze knop op de werkbalk het DeviceSimulator-project uit om de resultaten te zien van de gegevenssimulatie die u hebt ingesteld:

Schermopname van Visual Studio startknop met het project DeviceSimulator geopend.

Er wordt een consolevenster geopend waar gesimuleerde telemetrieberichten met temperaturen worden weergegeven. Deze berichten worden verzonden naar IoT Hub, waar ze vervolgens worden opgehaald en verwerkt door de Azure-functie.

Schermopname van de console-uitvoer van de apparaatsimulator met de verzonden temperatuur-telemetrie.

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 gegevens van IoT Hub en roept een Azure Digital Twins-API aan om de eigenschap Temperature van de tweeling thermostat67 bij te werken.

Ga naar uw Visual Studio-venster waar het project AdtE2ESample is geopend en voer het project uit om de gegevens van de kant van Azure Digital Twins te zien.

Voer in het projectconsolevenster dat wordt geopend de volgende opdracht uit om de temperaturen op te halen die door de digitale tweeling thermostat67 worden gerapporteerd:

ObserveProperties thermostat67 Temperature

U ziet dat de live bijgewerkte temperaturen van uw Azure Digital Twins worden geregistreerd in de console om de twee seconden.

Notitie

Het kan enkele seconden duren voordat de gegevens van het apparaat zijn doorgegeven aan de tweeling. De eerste paar temperatuurmetingen kunnen 0 zijn voordat de gegevens binnenkomen.

Schermopname van de console-uitvoer met het logboek van temperatuurberichten van digital twin thermostat67.

Nadat u hebt gecontroleerd of de logboekregistratie van de livetemperaturen werkt, kunt u stoppen met het uitvoeren van beide projecten. Houd de Visual Studio-vensters open, want u gaat deze in de rest van de zelfstudie gebruiken.

Azure Digital Twins-gebeurtenissen doorvoeren in de grafiek

Tot zover hebt u in deze zelfstudie gezien hoe Azure Digital Twins kan worden bijgewerkt met externe apparaatgegevens. Nu gaat u zien hoe wijzigingen in één digitale tweeling kunnen worden doorgevoerd in de Azure Digital Twins-grafiek; met andere woorden, hoe tweelingen kunnen worden bijgewerkt met interne gegevens van de service.

Om dit te doen, gebruikt u de Azure-functie ProcessDTRoutedData om een Room-tweeling bij te werken wanneer de verbonden Thermostaat-tweeling wordt bijgewerkt. De updatefunctionaliteit vindt plaats in dit deel van het end-to-end scenario (pijl C):

Diagram van een fragment uit het volledige diagram van het gebouwscenario waarin de sectie wordt belicht waarin de elementen na de Azure Digital Twins.

Dit zijn de acties die u moet uitvoeren om deze gegevensstroom in te stellen:

  1. Een Event Grid-onderwerp maken om het verplaatsen van gegevens tussen Azure-services mogelijk te maken
  2. Maak een eindpunt in Azure Digital Twins de instantie verbindt met het Event Grid-onderwerp
  3. Stel een route in binnen Azure Digital Twins gebeurtenissen voor het wijzigen van dubbel-eigenschappen naar het eindpunt verzendt
  4. Stel een Azure-functie in die luistert naar het Event Grid-onderwerp op het eindpunt, de wijzigingsgebeurtenissen van de dubbel-eigenschap ontvangt die daar worden verzonden en dienovereenkomstig andere tweelingen in de grafiek bij werkt

Het Event Grid-onderwerp maken

Event Grid is een Azure-service waarmee u gebeurtenissen van Azure-services naar andere plaatsen in Azure kunt doorverplaatsen en leveren. U kunt een gebeurtenisrasteronderwerp maken om bepaalde gebeurtenissen van een bron te verzamelen, waarna abonnees naar het onderwerp kunnen luisteren om de gegevens te ontvangen wanneer deze binnenkomen.

Voer de volgende opdrachten uit in Azure Cloud Shell om een gebeurtenisrasteronderwerp 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 gebeurtenisrasteronderwerp 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 instantie wordt verbonden met uw Event Grid-onderwerp. Gebruik de onderstaande opdracht en vul zo nodig de naam van uw Event Grid-onderwerp en de andere tijdelijke aanduidingen in.

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 hebt gemaakt.

Zoek het provisioningState veld in de uitvoer en controleer of de waarde Geslaagd is.

Schermopname van het resultaat van de eindpuntquery in de Cloud Shell van de Azure Portal, met het eindpunt met de provisioningState succeeded.

Het kan ook zijn dat er 'Inrichten' staat, wat betekent dat het eindpunt nog wordt gemaakt. Als dat het zo is, wacht u een paar seconden en voer u de volgende opdracht uit om de status van het eindpunt te controleren. Herhaal dit totdat provisioningState 'Geslaagd' wordt weer geven.

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 deze later gaat gebruiken.

De route maken

Maak vervolgens een Azure Digital Twins-route die gebeurtenissen verzendt naar het Event Grid-eindpunt dat u zojuist hebt gemaakt.

U kunt dit doen met de volgende CLI-opdracht (vul zo nodig de naam van uw eindpunt en de andere tijdelijke aanduidingen in). Met deze opdracht worden alle gebeurtenissen die optreden in de tweelinggrafiek doorgestuurd. 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 is 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.

Verbinding maken Azure-functie implementeren

Abonneer vervolgens de Azure-functie ProcessDTRoutedData op het gebeurtenisrasteronderwerp dat u eerder hebt gemaakt, zodat telemetriegegevens van de tweeling thermostat67 door het gebeurtenisrasteronderwerp naar de functie kan stromen, die teruggaat naar Azure Digital Twins en de tweeling room21 dienovereenkomstig bijwerkt.

Om dit te doen, maakt u een Event Grid-abonnement dat gegevens verzendt van het Event Grid-onderwerp dat u eerder hebt gemaakt naar de Azure-functie ProcessDTRoutedData.

Ga in de Azure-portalnaar uw gebeurtenisrasteronderwerp door de naam ervan te zoeken in de bovenste zoekbalk. Selecteer + Gebeurtenisabonnement.

Schermopname van de Azure Portal waarin wordt weergegeven hoe u een Event Grid gebeurtenisabonnement maakt.

De stappen voor het maken van dit gebeurtenisabonnement lijken op degene voor het abonneren van de eerste Azure-functie op IoT Hub eerder in deze zelfstudie. Deze keer hoeft u niet Apparaattelemetrie op te geven als het gebeurtenistype waarnaar moet worden geluisterd, en dat u verbinding maakt met een andere Azure-functie.

Vul op de pagina Gebeurtenisabonnement maken de velden als volgt in (velden die standaard worden ingevuld, worden niet vermeld):

  • GEBEURTENISABONNEMENTDETAILS > Naam: Geef een naam op voor uw gebeurtenisabonnement.
  • DETAILS VAN EINDPUNT > Type eindpunt: Selecteer Azure-functie in de menuopties.
  • EINDPUNTDETAILS > Eindpunt: selecteer de koppeling Een eindpunt selecteren, waarmee het venster Azure-functie selecteren wordt geopend:
    • Vul uw abonnement, resourcegroep, functie-app en functie in (ProcessDTRoutedData). Sommige van deze waarden worden mogelijk automatisch ingevuld nadat u het abonnement hebt geselecteerd.
    • Selecteer Confirm Selection (Selectie bevestigen).

Selecteer Maken als u terug bent op de pagina Gebeurtenisabonnement maken.

De simulatie uitvoeren en de resultaten bekijken

Nu moeten gebeurtenissen de mogelijkheid hebben om van het gesimuleerde apparaat naar Azure Digital Twins te stromen en door de Azure Digital Twins grafiek om tweelingen indien nodig bij te werken. In deze sectie gaat u de apparaatsimulator opnieuw uitvoeren om de volledige gebeurtenisstroom te laten beginnen die u hebt ingesteld en query's uit te voeren Azure Digital Twins de live resultaten te bekijken

Ga naar uw Visual Studio-venster waar het project DeviceSimulator open is, en voer het project uit.

Net als toen u eerder de apparaatsimulator hebt uitgevoerd, wordt er een consolevenster geopend waar gesimuleerde telemetrieberichten met temperaturen worden 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.

Schermopname van de console-uitvoer van de apparaatsimulator met de verzonden temperatuur-telemetrie.

U hoeft niets anders te doen in deze console, maar laat deze draaien terwijl u de volgende stappen voltooit.

Ga naar uw Visual Studio-venster waar het project AdtE2ESample is geopend en voer het project uit om de gegevens van de kant van Azure Digital Twins te zien.

Voer in het projectconsolevenster dat wordt geopend de volgende opdracht uit om de temperaturen op te halen die worden gerapporteerd door zowel de digitale tweeling thermostat67 als de digitale tweeling room21.

ObserveProperties thermostat67 Temperature room21 Temperature

U ziet dat de live bijgewerkte temperaturen van uw Azure Digital Twins worden geregistreerd in de console om de twee seconden. U ziet dat de temperatuur voor room21 wordt bijgewerkt overeenkomstig de updates van thermostat67.

Schermopname van de console-uitvoer met een logboek met temperatuurberichten, van een thermostaat en een ruimte.

Nadat u hebt gecontroleerd of de logboekregistratie van de livetemperaturen van uw exemplaar werkt, kunt u stoppen met het uitvoeren van beide projecten. U kunt de vensters van Visual Studio nu ook sluiten, want de zelfstudie is voltooid.

Beoordelen

Hier ziet u een overzicht van het scenario dat u in deze zelfstudie hebt ontwikkeld.

  1. Een Azure Digital Twins-instance is een digitale weergave van een verdieping, een ruimte en een thermostaat (vertegenwoordigd door sectie A in het onderstaande diagram)
  2. Er wordt gesimuleerde apparaattelemetrie verzonden naar IoT Hub, waar de Azure-functie ProcessHubToDTEvents luistert naar telemetriegebeurtenissen. De Azure-functie ProcessHubToDTEvents gebruikt de informatie in deze gebeurtenissen om de eigenschap Temperature van thermostat67 (pijl B in het diagram) in te stellen.
  3. Eigenschapswijzigingsgebeurtenissen in Azure Digital Twins worden doorgestuurd naar een gebeurtenisrasteronderwerp, waar de Azure-functie ProcessDTRoutedData luistert naar gebeurtenissen. De Azure-functie ProcessDTRoutedData gebruikt de informatie in deze gebeurtenissen om de eigenschap Temperature van room21 (pijl C in het diagram) in te stellen.

Diagram van het volledige gebouwscenario, waarin de gegevens van een apparaat naar en van Azure Digital Twins via verschillende Azure-services worden weergegeven.

Resources opschonen

Nadat u deze zelfstudie hebt doorlopen, kunt u kiezen welke resources u wilt verwijderen, afhankelijk van wat u hierna wilt doen.

  • Als u de resources die u in deze zelfstudie hebt gemaakt niet nodig hebt, kunt u de Azure Digital Twins-instantie en alle andere resources uit dit artikel verwijderen met de opdracht az group delete. 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 resources verwijdert.

    Open Azure Cloud Shellen 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 enkele of alle modellen, tweelingen en relaties wilt wissen, kunt u de opdrachten az dt CLI in een Azure Cloud Shell-venster 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, etc.). U kunt deze afzonderlijk verwijderen met behulp van de dt-opdrachten die geschikt zijn voor elk resourcetype.

U kunt ook de projectmap van uw lokale computer verwijderen.

Volgende stappen

In deze zelfstudie hebt u een end-to-end scenario gemaakt dat laat zien hoe Azure Digital Twins wordt aangedreven door live apparaatgegevens.

Ga vervolgens naar de conceptdocumentatie voor meer informatie over de elementen waarmee u in de zelfstudie hebt gewerkt: