Azure Device Update inrichten voor IoT Hub-agent

De Device Update-moduleagent kan samen met andere systeemprocessen en IoT Edge-modules worden uitgevoerd die verbinding maken met uw IoT Hub als onderdeel van hetzelfde logische apparaat. In dit artikel wordt beschreven hoe u de Device Update-agent inricht als een module-id.

Notitie

Gebruik de nieuwste 1.x-versie van de referentie-implementatie van de Device Update-agent om te profiteren van de nieuwste verbeteringen. Controleer de geïnstalleerde versie in de sectie Eigenschappen van uw IoT-apparaatdubbel. Zie de Device-update voor IoT Hub ondersteunde platforms voor meer informatie.

Module-id en apparaat-id

U kunt maximaal 50 module-id's maken onder elke Azure IoT Hub-apparaat-id. Elke module-id genereert impliciet een moduleidentiteitsdubbel. Aan de apparaatzijde kunt u de SDK's van het IoT Hub-apparaat gebruiken om modules te maken die elk een onafhankelijke verbinding met IoT Hub openen.

Moduleidentiteit en moduleidentiteitsdubbel bieden vergelijkbare mogelijkheden als apparaatidentiteit en apparaatdubbel, maar met een nauwkeurigere granulariteit. Zie Moduledubbels begrijpen en gebruiken in IoT Hub voor meer informatie.

Wanneer u de Device Update-agent inricht als module-id, moet alle communicatie tussen het apparaat en de Device Update-service plaatsvinden via de moduledubbel. Vergeet niet om de moduledubbel van het apparaat te taggen wanneer u apparaatgroepen maakt. Als u migreert van een agent op apparaatniveau naar een agent als module-identiteit, verwijdert u de oudere agent die via de apparaat-twin communiceerde.

Ondersteunde updatetypen

Device Update ondersteunt de volgende typen over-the-air-updates voor IoT-apparaten:

Voorbereiden op pakketupdates

Als u een IoT-apparaat of IoT Edge-apparaat wilt instellen voor het installeren van pakketgebaseerde updates, voegt u packages.microsoft.com toe aan de opslagbronnen van uw machine door de volgende stappen te volgen:

  1. Open een terminalvenster op de computer of het IoT-apparaat waarop u de Device Update-agent wilt installeren.

  2. Installeer de opslagplaatsconfiguratie die overeenkomt met het besturingssysteem van uw apparaat, bijvoorbeeld:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. Kopieer de gegenereerde lijst naar de map sources.list.d.

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. Installeer de openbare Microsoft GPG-sleutel.

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

De Device Update-agent inrichten

U kunt de Device Update-agent inrichten als een module-id op apparaten met IoT Edge of niet-IoT Edge IoT-apparaten. Zie Geregistreerde apparaten weergeven en inrichtingsgegevens ophalen om te controleren of IoT Edge is ingeschakeld op uw apparaat.

U kunt voorbeeldafbeeldingen downloaden die u kunt gebruiken vanuit de sectie Assets op de pagina Releases . In Tutorial_RaspberryPi3.zip is het swUpdate-bestand de basisafbeelding die u op een Raspberry Pi B3+ bord kunt knipperen. Het .gz-bestand is de update die u kunt importeren via Device Update. Zie Azure Device Update voor IoT Hub met een Raspberry Pi-image voor meer informatie.

Op apparaten waarop IoT Edge is ingeschakeld

Volg deze instructies om de Device Update-agent in te richten op apparaten met IoT Edge:

  1. Volg de instructies bij Handmatig inrichten van één Linux IoT Edge-apparaat.

  2. Installeer de updateagent voor de installatiekopieën van Device Update door de volgende opdracht uit te voeren:

    sudo apt-get install deviceupdate-agent
    
  3. Installeer de updateagent van het Device Update-pakket.

    • Voor de nieuwste agentversies van packages.microsoft.com werkt u pakketlijsten bij op uw apparaat en installeert u het Device Update-agentpakket en de bijbehorende afhankelijkheden met behulp van:

      sudo apt-get update
      
      sudo apt-get install deviceupdate-agent
      
    • Voor releasecandidateversies (rc) van de agent downloadt u het .deb-bestand van Releases naar de machine waarop u de Device Update-agent wilt installeren, en voert u vervolgens de volgende opdracht uit:

      sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
      
    • Als u een Microsoft Connected Cache (MCC) instelt voor een scenario met een niet-verbonden apparaat, installeert u de APT-invoegtoepassing Delivery Optimization als volgt:

      sudo apt-get install deliveryoptimization-plugin-apt
      

Op apparaten zonder IoT Edge-functionaliteit

Volg deze instructies voor het inrichten van de Device Update-agent op Linux IoT-apparaten zonder dat IoT Edge is geïnstalleerd. U kunt de agent inrichten met behulp van de Azure IoT Identity Service (AIS) of door referenties rechtstreeks op het apparaat te configureren.

Azure IoT Identity Service (AIS) gebruiken

  1. Installeer de nieuwste versie van de IoT Identity Service door de instructies te volgen in Het installeren van de Azure IoT Identity Service.

  2. Configureer de IoT Identity Service door de instructies te volgen in het configureren van de Azure IoT Identity Service. Zorg ervoor dat de service is geconfigureerd met de juiste apparaat- of module-id, zodat deze verbindingsgegevens kan verstrekken aan de Device Update-agent.

  3. Installeer de Device Update-agent door de volgende opdracht uit te voeren:

    sudo apt-get install deviceupdate-agent
    

Notitie

Als uw IoT-apparaat de IoT Identity Service of IoT Edge niet kan uitvoeren, waarin de IoT Identity Service is opgenomen, kunt u de Device Update-agent nog steeds installeren en configureren met behulp van een verbindingsreeks of x.509-certificaten.

Een verbindingsreeks gebruiken

Voor het testen of op beperkte apparaten kunt u de Device Update-agent configureren zonder de IoT Identity-service te gebruiken. U kunt een verbindingsreeks gebruiken om de Device Update-agent in te richten vanuit de module of het apparaat.

  1. Kopieer in Azure Portal de primaire verbindingsreeks. Als de Device Update-agent is geconfigureerd als een module-id, kopieert u de primaire verbindingsreeks van de module. Kopieer anders de primaire verbindingsreeks van het apparaat.

  2. Bewerk in een terminalvenster op de computer of het IoT-apparaat waarop u de Device Update-agent hebt geïnstalleerd het configuratiebestand voor Apparaatupdate door de volgende opdracht uit te voeren:

  3. Stel in het du-config.json bestand alle waarden in die een Place value here tijdelijke aanduiding hebben en voer de gekopieerde primaire verbindingsreeks in als de connectionData veldwaarde. Zie voorbeeld van de bestandsinhoud 'du-config.json'.

X.509-certificaten gebruiken

De Device Update-agent versie 1.3.0 en hoger ondersteunt verificatie bij IoT Hub met X.509-certificaten. Azure IoT Hub ondersteunt twee X.509-certificaatconfiguratiemethoden:

  • Door CA ondertekende certificaten (aanbevolen): Apparaten verifiëren met behulp van een certificaat dat is uitgegeven door een vertrouwde certificeringsinstantie (CA).
  • Zelfondertekende certificaten (op basis van vingerafdruk): Elke apparaat-id wordt geconfigureerd met een vingerafdruk van een certificaat die tijdens de verificatie IoT Hub valideert.

X.509-verificatie configureren

Registreer uw apparaat-id in IoT Hub met X.509-verificatie ingeschakeld.

  1. Configureer het apparaat met behulp van:
    • Een certificaat dat is uitgegeven door een vertrouwde certificeringsinstantie (CA).
    • Een zelfondertekend certificaat met een geregistreerde vingerafdruk.
  2. Installeer de Device Update-agent op het apparaat.

Device Provisioning Service (DPS) kan worden gebruikt voor het inrichten van apparaatidentiteiten en -certificaten. DPS richt echter geen module-id's in. De configuratie van de Device Update-agent moet nog steeds worden voltooid op het apparaat.

Voor stapsgewijze configuratie-instructies, waaronder geavanceerde scenario's zoals door hardware ondersteunde sleutels (bijvoorbeeld hardwarebeveiligingsmodules (HSM's) of op PKCS#11 gebaseerde sleutelopslag voor veilig sleutelbeheer), raadpleegt u de handleiding voor X.509-authenticatie: X.509-clientcertificaatauthenticatie gebruiken.

Notitie

X.509-verificatieondersteuning in de Device Update-agent maakt gebruik van standaard-Azure IoT Hub identiteitsconfiguratie. Deze mogelijkheid is niet geïntegreerd met het certificaatbeheer van Azure Device Registry (ADR) (preview).

De Device Update-agent configureren

Nadat u de Device Update-agent hebt geïnstalleerd, bewerkt u het configuratiebestand device update door de volgende opdracht uit te voeren.

sudo nano /etc/adu/du-config.json

Stel in het bestand du-config.json alle waarden in die een Place value here tijdelijke aanduiding hebben.

Azure IoT Identity Service (AIS)

  • "connectionType": "AIS"
  • "connectionData": "" (lege tekenreeks)

Notitie

Wanneer u Azure IoT Identity Service (AIS) gebruikt, moet de service worden geconfigureerd om de juiste identiteit op te geven aan de Device Update-agent. Dit omvat het configureren van identiteiten in config.toml en ervoor zorgen dat de agent is gekoppeld aan de juiste apparaat- of module-identiteit. Als de Device Update-agent wordt uitgevoerd als een module, moet een bijbehorende module-id worden geconfigureerd, zodat AIS de verbindingsgegevens van de module naar de agent kan retourneren. Zie Configuring the Azure IoT Identity Service voor configuratiedetails.

Verbindingsstring

  • "connectionType": "string"
  • "connectionData": "HostName=<hub>.azure-devices.net;DeviceId=<device>;SharedAccessKey=<key>" (vervang door uw IoT Hub hostnaam, apparaat-id en gedeelde toegangssleutel)

X.509-certificaten

  • "connectionType": "x509"
  • "connectionData": "HostName=<hub>.azure-devices.net;DeviceId=<device>;x509=true" (vervang door uw IoT Hub hostnaam en apparaat-id)
  • "connectionX509CertFilePath": "/etc/adu/certs/client.pem"
  • "connectionX509PrivateKeyFilePath": "/etc/adu/certs/client.key"
  • "connectionX509CaCertFilePath": "/etc/adu/certs/ca.pem"

Zie de configuratiehandleiding Azure Device Update Agent Configuration Guide voor volledige configuratiedetails.

Zie voor meer informatie: Configuratiebestand voor apparaatupdates. Zie voorbeeld van de bestandsinhoud 'du-config.json'.

De Device Update-agent starten

Start de Device Update-agent en controleer of deze wordt uitgevoerd op uw apparaat.

  1. Start de agent opnieuw op in een terminalvenster op de computer of het IoT-apparaat waarop u de Device Update-agent hebt geïnstalleerd door de volgende opdracht uit te voeren:

    sudo systemctl restart deviceupdate-agent
    
  2. Controleer de agentstatus door de volgende opdracht uit te voeren.

    sudo systemctl status deviceupdate-agent
    

    U zou status OK moeten zien.

  3. Ga op de portalpagina van IoT Hub naar Apparaten of IoT Edge om het apparaat te vinden dat u hebt geconfigureerd en zie de Device Update-agent die als module wordt uitgevoerd. Voorbeeld:

    Diagram van de modulenaam device update met de status Verbonden.

Device Update-agent inschakelen achter een proxyserver

Apparaten waarop de Device Update-agent wordt uitgevoerd, verzenden HTTPS-aanvragen om te communiceren met IoT Hub. Als u uw apparaat hebt verbonden met een netwerk dat gebruikmaakt van een proxyserver, moet u de systemd service Device Update configureren om via de server te communiceren.

Voordat u Device Update configureert, moet u ervoor zorgen dat u de proxy-URL hebt. Proxy-URL heeft de indeling protocol://proxy_host:proxy_port.

Maak een systemd-overschrijvingsconfiguratiemap en het overschrijvingsbestand door de volgende opdracht uit te voeren:

sudo mkdir -p /etc/systemd/system/deviceupdate-agent.service.d
sudo nano /etc/systemd/system/deviceupdate-agent.service.d/override.conf

De proxygegevens toevoegen aan de configuratie

[Service]
Environment="HTTP_PROXY=http://your.proxy.server:port"
Environment="HTTPS_PROXY=http://your.proxy.server:port"

Start de agent opnieuw om de wijzigingen toe te passen:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent

Vervolgens kunt u controleren of de omgevingsvariabelen worden toegepast met behulp van

sudo systemctl show deviceupdate-agent | grep -i proxy

Een Device Update-agent bouwen en uitvoeren

U kunt ook uw eigen aangepaste Device Update-agent bouwen en wijzigen. Volg de instructies op How To Build the Device Update Agent om de Device Update Agent vanuit de broncode op te bouwen.

Zodra de agent succesvol is gebouwd, raadpleegt u De Device Update voor IoT Hub Reference Agent uitvoeren om de agent uit te voeren. Als u de wijzigingen wilt aanbrengen die nodig zijn om de agent in uw image op te nemen, volgt u De code van de Device Update-agent wijzigen.

Probleemoplossing

Als u problemen ondervindt, raadpleegt u de handleiding voor het oplossen van problemen met De apparaatupdate voor IoT Hub om de problemen op te lossen en de benodigde informatie te verzamelen die microsoft moet verstrekken.