Delen via


Taken plannen en uitzenden (Azure CLI)

Gebruik Azure IoT Hub om taken te plannen en bij te houden die miljoenen apparaten bijwerken. Taken gebruiken om:

  • Gewenste eigenschappen bijwerken
  • Tags bijwerken
  • Directe methoden aanroepen

Conceptueel verpakt een taak een van deze acties en houdt de voortgang van de uitvoering bij op een set apparaten. De set apparaten waarmee een taak communiceert, wordt gedefinieerd door een apparaatdubbelquery. Een back-end-app kan bijvoorbeeld een taak gebruiken om een methode voor opnieuw opstarten aan te roepen op 10.000 apparaten, opgegeven door een apparaatdubbelquery en gepland op een later tijdstip. Deze toepassing kan vervolgens de voortgang bijhouden terwijl elk van deze apparaten de methode voor opnieuw opstarten ontvangt en uitvoert.

Meer informatie over elk van deze mogelijkheden vindt u in deze artikelen:

Notitie

De functies die in dit artikel worden beschreven, zijn alleen beschikbaar in de standaardlaag van de IoT Hub. Zie De juiste IoT Hub-laag voor uw oplossing kiezen voor meer informatie over de Basic- en Standard-/gratis IoT Hub-lagen.

In dit artikel leest u hoe u twee Azure CLI-sessies maakt:

  • Een sessie waarmee een gesimuleerd apparaat wordt gemaakt. Het gesimuleerde apparaat is geconfigureerd om een statuscode en JSON-nettolading te retourneren wanneer een directe methode wordt aangeroepen.

  • Een sessie waarmee twee geplande taken worden gemaakt. De eerste taak roept een directe methode aan en de tweede taak werkt een gewenste eigenschap van een apparaatdubbel bij op het gesimuleerde apparaat dat in de andere sessie is gemaakt.

Vereisten

  • Azure CLI. U kunt de opdrachten in dit artikel ook uitvoeren met behulp van De Azure Cloud Shell, een interactieve CLI-shell die wordt uitgevoerd in uw browser of in een app zoals Windows Terminal. Als u de Cloud Shell gebruikt, hoeft u niets te installeren. Als u de CLI liever lokaal gebruikt, is voor dit artikel Versie 2.36 of hoger van Azure CLI vereist. Voer az --version uit om de versie te bekijken. Zie Azure CLI installeren of upgraden om Azure CLI lokaal te installeren of bij te werken.

  • Een IoT-hub in uw Azure-abonnement. Als u nog geen hub hebt, kunt u de stappen volgen in Een IoT-hub maken.

  • Zorg ervoor dat de poort 8883 is geopend in uw firewall. Het apparaatvoorbeeld in dit artikel maakt gebruik van het MQTT-protocol, dat via poort 8883 communiceert. Deze poort is in sommige netwerkomgevingen van bedrijven en onderwijsinstellingen mogelijk geblokkeerd. Zie Verbinding maken met IoT Hub (MQTT) voor meer informatie en manieren om dit probleem te omzeilen.

Cloud Shell voorbereiden

Als u De Azure Cloud Shell wilt gebruiken, moet u deze eerst starten en configureren. Als u de CLI lokaal gebruikt, gaat u verder met de sectie Twee CLI-sessies voorbereiden.

  1. Selecteer het Cloud Shell-pictogram in de paginakoptekst in Azure Portal.

    Schermopname van de algemene besturingselementen in de paginakoptekst van Azure Portal, waarin het Cloud Shell-pictogram wordt gemarkeerd.

    Notitie

    Als de Cloud Shell voor het eerst gebruikt, wordt u gevraagd opslag te maken. Dit is nodig om de Cloud Shell te gebruiken. Selecteer een abonnement om een opslagaccount en een Microsoft Azure Files-share te maken.

  2. Gebruik de omgevingskiezer in de Cloud Shell-werkbalk om uw gewenste CLI-omgeving te selecteren. In dit artikel wordt de Bash-omgeving gebruikt. U kunt ook de PowerShell-omgeving gebruiken.

    Notitie

    Voor sommige opdrachten zijn verschillende syntaxis of opmaak vereist in de Bash- en PowerShell-omgevingen. Zie Tips voor het gebruik van de Azure CLI voor meer informatie.

    Schermopname van een Azure Cloud Shell-venster waarin de omgevingskiezer op de werkbalk wordt gemarkeerd.

Twee CLI-sessies voorbereiden

Vervolgens moet u twee Azure CLI-sessies voorbereiden. Als u Cloud Shell gebruikt, voert u deze sessies uit op afzonderlijke Cloud Shell-tabbladen. Als u een lokale CLI-client gebruikt, voert u afzonderlijke CLI-exemplaren uit. Gebruik de afzonderlijke CLI-sessies voor de volgende taken:

  • De eerste sessie simuleert een IoT-apparaat dat communiceert met uw IoT-hub.
  • De tweede sessie plant taken voor uw gesimuleerde apparaat met uw IoT-hub.

Notitie

Voor Azure CLI moet u zijn aangemeld bij uw Azure-account. Als u Cloud Shell gebruikt, wordt u automatisch aangemeld bij uw Azure-account. Als u een lokale CLI-client gebruikt, moet u zich aanmelden bij elke CLI-sessie. Alle communicatie tussen uw Azure CLI-shell-sessie en uw IoT-hub wordt geverifieerd en versleuteld. Als gevolg hiervan heeft dit artikel geen extra verificatie nodig die u zou gebruiken met een echt apparaat, zoals een verbindingsreeks. Zie Aanmelden met Azure CLI voor meer informatie over aanmelden met Azure CLI.

  1. Voer in de eerste CLI-sessie de opdracht az extension add uit . Met de opdracht wordt de Microsoft Azure IoT-extensie voor Azure CLI toegevoegd aan uw CLI-shell. Met de extensie worden specifieke opdrachten voor IoT Hub, IoT Edge en IoT Device Provisioning Service (DPS) toegevoegd aan Azure CLI. Nadat u de extensie hebt geïnstalleerd, hoeft u deze niet opnieuw te installeren in een Cloud Shell-sessie.

    az extension add --name azure-iot
    

    Notitie

    In dit artikel wordt gebruikgemaakt van de nieuwste versie van de Azure IoT-extensie, azure-iot. De verouderde versie heet azure-cli-iot-ext. Zorg ervoor dat er maar één versie is geïnstalleerd. U kunt de opdracht az extension list gebruiken om de momenteel geïnstalleerde extensies te valideren.

    Gebruik az extension remove --name azure-cli-iot-ext om de verouderde versie van de extensie te verwijderen.

    Gebruik az extension add --name azure-iot om de nieuwe versie van de extensie toe te voegen.

    Gebruik az extension list om te bekijken welke installaties u hebt geïnstalleerd.

  2. Open de tweede CLI-sessie. Als u Cloud Shell in een browser gebruikt, selecteert u het pictogram Nieuwe sessie openen op de werkbalk van uw eerste CLI-sessie. Als u de CLI lokaal gebruikt, opent u een tweede CLI-exemplaar.

    Schermopname van een Azure Cloud Shell-venster met het pictogram Nieuwe sessie openen op de werkbalk gemarkeerd.

Een apparaat maken en simuleren

In deze sectie maakt u een apparaat-id voor uw IoT-hub in de eerste CLI-sessie en simuleert u vervolgens een apparaat met die apparaat-id. Het gesimuleerde apparaat reageert op de taken die u in de tweede CLI-sessie plant.

Zo maakt en start u een gesimuleerd apparaat:

  1. Voer in de eerste CLI-sessie de opdracht az iot hub device-identity create uit, waarbij u de volgende tijdelijke aanduidingen vervangt door de bijbehorende waarden. Met deze opdracht maakt u de apparaat-id voor uw gesimuleerde apparaat.

    {DeviceName}. De naam van uw gesimuleerde apparaat.

    {HubName}. De naam van uw IoT-hub.

    az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName} 
    
  2. Voer in de eerste CLI-sessie de opdracht az iot device simulate uit, waarbij u de volgende tijdelijke aanduidingen vervangt door de bijbehorende waarden. Met deze opdracht wordt het apparaat gesimuleerd dat u in de vorige stap hebt gemaakt. Het gesimuleerde apparaat is geconfigureerd om een statuscode en payload te retourneren wanneer een directe methode wordt aangeroepen.

    {DeviceName}. De naam van uw gesimuleerde apparaat.

    {HubName}. De naam van uw IoT-hub.

    az iot device simulate --device-id {DeviceName} --hub-name {HubName} \
                           --method-response-code 201 \
                           --method-response-payload '{"result":"Direct method successful"}'
    

    Tip

    De opdracht az iot device simulate verzendt standaard 100 apparaat-naar-cloud-berichten met een interval van 3 seconden tussen berichten. De simulatie eindigt nadat alle berichten zijn verzonden. Als u wilt dat de simulatie langer wordt uitgevoerd, kunt u de --msg-count parameter gebruiken om meer berichten op te geven of de --msg-interval parameter om een langer interval tussen berichten op te geven. U kunt de opdracht ook opnieuw uitvoeren om het gesimuleerde apparaat opnieuw op te starten.

Een taak plannen om een directe methode aan te roepen

In deze sectie plant u een taak in de tweede CLI-sessie om een directe methode aan te roepen op het gesimuleerde apparaat dat wordt uitgevoerd in de eerste CLI-sessie.

  1. Controleer of het gesimuleerde apparaat in de eerste CLI-sessie wordt uitgevoerd. Zo niet, start u deze opnieuw door de opdracht az iot device simulate opnieuw uit te voeren vanuit Create en simuleer een apparaat.

  2. Voer in de tweede CLI-sessie de opdracht az iot hub job create uit, waarbij u de volgende tijdelijke aanduidingen vervangt door de bijbehorende waarden. In dit voorbeeld is er geen bestaande methode voor het apparaat. Met de opdracht wordt een taak gepland die een voorbeeldmethodenaam aanroept op het gesimuleerde apparaat, waarbij een null-waarde wordt opgegeven voor de nettolading van de methode. De methode biedt een statuscode en nettolading in het antwoord.

    {HubName}. De naam van uw IoT-hub.

    {JobName}. De naam van uw geplande taak. Taaknamen zijn uniek, dus kies elke keer dat u deze opdracht uitvoert een andere taaknaam.

    {MethodName}. De naam van uw directe methode. Het gesimuleerde apparaat heeft geen bestaande methode, dus u kunt elke gewenste naam voor deze opdracht kiezen.

    {DeviceName}. De naam van uw gesimuleerde apparaat.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleDeviceMethod \
                          --method-name {MethodName} --method-payload 'null' \
                          --query-condition "deviceId = '{DeviceName}'"
    

    Tip

    Bij het plannen van een taak az iot hub job create command die een directe methode aanroept, moet u waarden opgeven voor zowel de --method-name als --method-payload optionele parameters. Geef null voor directe methoden die geen nettolading accepteren op voor de --method-payload parameter.

  3. Controleer in de eerste CLI-sessie of de uitvoer de aanroep van de methode weergeeft. In de volgende schermopname hebben we respectievelijk SampleDevice de CLI-opdracht gebruikt enSampleMethod voor de {DeviceName} {MethodName} tijdelijke aanduidingen in az iot hub job create de CLI-opdracht uit de vorige stap.

    Schermopname van een gesimuleerd apparaat dat uitvoer weergeeft nadat een methode is aangeroepen.

Een taak plannen om de eigenschappen van een apparaatdubbel bij te werken

In deze sectie plant u een taak in de tweede CLI-sessie om een gewenste eigenschap van een apparaatdubbel bij te werken op het gesimuleerde apparaat dat wordt uitgevoerd in de eerste CLI-sessie.

  1. Controleer of het gesimuleerde apparaat in de eerste CLI-sessie wordt uitgevoerd. Zo niet, start u deze opnieuw door de opdracht az iot device simulate opnieuw uit te voeren vanuit Create en simuleer een apparaat.

  2. Voer in de tweede CLI-sessie de opdracht az iot hub job create uit, waarbij u de volgende tijdelijke aanduidingen vervangt door de bijbehorende waarden. In dit voorbeeld plannen we een taak om de waarde van de gewenste dubbeleigenschap BuildingNo in te stellen op 45 voor ons gesimuleerde apparaat.

    {HubName}. De naam van uw IoT-hub.

    {JobName}. De naam van uw geplande taak. Taaknamen zijn uniek, dus kies elke keer dat u deze opdracht uitvoert een andere taaknaam.

    {DeviceName}. De naam van uw gesimuleerde apparaat.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleUpdateTwin \
                          --twin-patch '{"properties":{"desired": {"BuildingNo": 45}}}' \
                          --query-condition "deviceId = '{DeviceName}'"
    
  3. Controleer in de eerste CLI-sessie of de uitvoer de geslaagde update weergeeft voor de gerapporteerde eigenschap van de apparaatdubbel, waarmee wordt aangegeven dat de gewenste eigenschap van de apparaatdubbel ook is bijgewerkt.

    Schermopname van een gesimuleerd apparaat dat uitvoer weergeeft nadat een eigenschap van een apparaatdubbel is bijgewerkt.

Volgende stappen

In dit artikel hebt u Azure CLI gebruikt om een apparaat te simuleren en taken te plannen om een directe methode uit te voeren en de eigenschappen van de apparaatdubbel voor dat gesimuleerde apparaat bij te werken.

Als u ioT-hub- en apparaatbeheerpatronen wilt blijven verkennen, werkt u een afbeelding bij in de zelfstudie Apparaatupdate voor Azure IoT Hub met behulp van de Raspberry Pi 3 B+ Reference Image.