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.
Van toepassing op:
IoT Edge 1.4
Belangrijk
IoT Edge 1.5 LTS en IoT Edge 1.4 zijn ondersteunde versies. Zie IoT Edge bijwerken als u een eerdere versie gebruikt.
Er zijn verschillende manieren om modules te implementeren op een IoT Edge-apparaat en ze werken allemaal voor Azure Blob Storage in IoT Edge-modules. De twee eenvoudigste methoden zijn het gebruik van Azure Portal- of Visual Studio Code-sjablonen.
Vereiste voorwaarden
Een IoT-hub in uw Azure-abonnement.
Een IoT Edge-apparaat.
Als u geen IoT Edge-apparaat hebt ingesteld, kunt u er een maken in een virtuele Azure-machine. Volg de stappen in een van de quickstart-artikelen voor het maken van een virtueel Linux-apparaat of het maken van een virtueel Windows-apparaat.
Azure IoT Edge-extensie . De Azure IoT Edge-hulpprogramma's voor de Visual Studio Code-extensie bevindt zich in de onderhoudsmodus.
Azure IoT Hub-extensie als deze wordt geïmplementeerd vanuit Visual Studio Code.
Implementeren vanuit Azure Portal
Azure Portal begeleidt u bij het maken van een implementatiemanifest en het pushen van de implementatie naar een IoT Edge-apparaat.
Selecteer uw apparaat
- Meld u aan bij Azure Portal en navigeer naar uw IoT-hub.
- Selecteer Apparaten in het menu Apparaatbeheer .
- Selecteer het IoT Edge-doelapparaat in de lijst.
- Selecteer Modules instellen.
Een implementatiemanifest configureren
Een implementatiemanifest is een JSON-document waarin wordt beschreven welke modules moeten worden geïmplementeerd, hoe gegevens stromen tussen de modules en de gewenste eigenschappen van de moduledubbels. Azure Portal bevat een wizard waarmee u een implementatiemanifest kunt maken. Het bevat drie stappen die zijn ingedeeld in tabbladen: Modules, Routes en Beoordelen en Maken.
Modules toevoegen
Selecteer in de sectie IoT Edge-modules van de pagina de vervolgkeuzelijst Toevoegen en selecteer IoT Edge-module om de pagina IoT Edge-module toevoegen weer te geven.
Geef op het tabblad Instellingen een naam op voor de module en geef vervolgens de URI voor de containerinstallatiekopieën op:
-
IoT Edge-module Naam:
azureblobstorageoniotedge -
Afbeeldings-URI:
mcr.microsoft.com/azure-blob-storage:latest
Selecteer Toevoegen pas als u waarden hebt opgegeven op de tabbladen Module-instellingen, Opties voor container maken en Moduledubbelinstellingen , zoals beschreven in deze procedure.
Belangrijk
Azure IoT Edge is hoofdlettergevoelig wanneer u modules aanroept en de Storage SDK wordt ook standaard in kleine letters weergegeven. Als u de naam wijzigt in kleine letters, kunt u ervoor zorgen dat uw verbindingen met de Azure Blob Storage in IoT Edge-module niet worden onderbroken.
-
IoT Edge-module Naam:
Open het tabblad Opties voor container maken .
Kopieer en plak de volgende JSON in het vak om opslagaccountgegevens en een koppeling voor de opslag op uw apparaat op te geven.
{ "Env":[ "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>", "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>" ], "HostConfig":{ "Binds":[ "<mount>" ], "PortBindings":{ "11002/tcp":[{"HostPort":"11002"}] } } }
Werk de JSON die u naar Container Create Options hebt gekopieerd bij met de volgende informatie:
Vervang door
<local storage account name>een naam die u kunt onthouden. Accountnamen moeten 3 tot 24 tekens lang zijn, met kleine letters en cijfers. Geen spaties.Vervang door
<local storage account key>een base64-sleutel van 64 bytes. U kunt een sleutel genereren met hulpprogramma's zoals Base64 Generator. U gebruikt deze inloggegevens voor toegang tot de blob-opslag vanuit andere modules.Vervang
<mount>volgens uw containerbesturingssysteem. Geef de naam op van een volume of het absolute pad naar een bestaande map op uw IoT Edge-apparaat waar de blobmodule de gegevens opslaat. De opslagkoppeling mappt een door u opgegeven locatie op uw apparaat naar een vaste locatie in de module.
Voor Linux-containers is de indeling <het opslagpad of het volume>:/blobroot. Voorbeeld:
- Gebruik volumekoppeling:
my-volume:/blobroot - Gebruik bindingskoppeling:
/srv/containerdata:/blobroot. Zorg ervoor dat u de stappen volgt om directorytoegang te verlenen aan de containergebruiker
Belangrijk
Wijzig niet de tweede helft van de opslag-aansluitpuntwaarde, die verwijst naar een specifieke locatie in de Blob Storage in de IoT Edge-module. De opslagkoppeling moet altijd eindigen met :/blobroot voor Linux-containers.
IoT Edge verwijdert geen volumes die zijn gekoppeld aan de modulecontainers. Dit gedrag is standaard, omdat hiermee de gegevens kunnen worden bewaard in containerinstanties, zoals upgradescenario's. Als deze volumes echter ongebruikt blijven, kan dit leiden tot uitputting van de schijfruimte en daaropvolgende systeemfouten. Als u docker-volumes in uw scenario gebruikt, raden we u aan docker-hulpprogramma's zoals docker-volumes prune en docker volume rm te gebruiken om de ongebruikte volumes te verwijderen, met name voor productiescenario's.
Kopieer op de tab Module-twininstellingen de volgende JSON en plak deze in het vak.
{ "deviceAutoDeleteProperties": { "deleteOn": <true, false>, "deleteAfterMinutes": <timeToLiveInMinutes>, "retainWhileUploading": <true,false> }, "deviceToCloudUploadProperties": { "uploadOn": <true, false>, "uploadOrder": "<NewestFirst, OldestFirst>", "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>; EndpointSuffix=<your end point suffix>", "storageContainersForUpload": { "<source container name1>": { "target": "<your-target-container-name>" } }, "deleteAfterUpload": <true,false> } }Configureer elke eigenschap met een geschikte waarde, zoals aangegeven door de tijdelijke aanduidingen. Als u de IoT Edge-simulator gebruikt, stelt u de waarden in op de gerelateerde omgevingsvariabelen voor deze eigenschappen, zoals beschreven door deviceToCloudUploadProperties en deviceAutoDeleteProperties.
Aanbeveling
De naam voor uw
targetcontainer heeft naambeperkingen, bijvoorbeeld het gebruik van een$voorvoegsel wordt niet ondersteund. Als u alle beperkingen wilt zien, bekijkt u Containernamen.Opmerking
Als uw doelcontainer binnen
storageContainersForUploadonbenoemd of null is, wordt er een standaardnaam toegewezen aan het doel. Als u het uploaden naar een container wilt stoppen, moet deze volledig worden verwijderd.storageContainersForUploadZie dedeviceToCloudUploadPropertiessectie opslaggegevens aan de rand met Azure Blob Storage in IoT Edge voor meer informatie.
Voor meer informatie over het configureren van deviceToCloudUploadProperties en deviceAutoDeleteProperties nadat uw module is geïmplementeerd, zie Bewerk de moduletwin. Zie Gewenste eigenschappen definiëren of bijwerken voor meer informatie over gewenste eigenschappen.
Selecteer Toevoegen.
Selecteer Volgende: Routes om door te gaan naar de sectie Routes.
Routes opgeven
Behoud de standaardroutes en selecteer Volgende: Beoordelen en maken om door te gaan naar de review sectie.
Implementatie controleren
In de beoordelingssectie ziet u het JSON-implementatiemanifest dat is gemaakt op basis van uw selecties in de vorige twee secties. Er zijn ook twee modules gedeclareerd die u niet hebt toegevoegd: $edgeAgent en $edgeHub. Deze twee modules vormen de IoT Edge-runtime en zijn vereist voor elke implementatie.
Controleer uw implementatiegegevens en selecteer Maken.
Uw implementatie controleren
Nadat u de implementatie hebt gemaakt, keert u terug naar de pagina Apparaten van uw IoT-hub.
- Selecteer het IoT Edge-apparaat waarop u de implementatie hebt gericht om de details ervan te openen.
- Controleer in de apparaatdetails of de blob-opslagmodule wordt vermeld als zowel opgegeven in de implementatie als gerapporteerd door het apparaat.
Het kan enkele momenten duren voordat de module op het apparaat is gestart en vervolgens gerapporteerd wordt aan IoT Hub. Vernieuw de pagina om een bijgewerkte status te zien.
Implementeren vanuit Visual Studio Code
Azure IoT Edge biedt sjablonen in Visual Studio Code om u te helpen edge-oplossingen te ontwikkelen. Gebruik de volgende stappen om een nieuwe IoT Edge-oplossing te maken met een blob-opslagmodule en om het implementatiemanifest te configureren.
Belangrijk
De Azure IoT Edge Visual Studio Code-extensie bevindt zich in de onderhoudsmodus.
Selecteer >.
Voer in het opdrachtpalet de opdracht Azure IoT Edge: New IoT Edge solution in en voer deze uit.
Volg de aanwijzingen in het opdrachtpalet om uw oplossing te maken.
Veld Waarde Map selecteren Kies de locatie op uw ontwikkelcomputer voor Visual Studio Code om de oplossingsbestanden te maken. Een naam opgeven voor de oplossing Voer een beschrijvende naam voor de oplossing in of accepteer de standaardnaam EdgeSolution. Modulesjabloon selecteren Kies de bestaande module (voer de volledige afbeelding-URL in). Een modulenaam opgeven Voer een naam in, volledig in kleine letters, voor uw module, zoals azureblobstorageoniotedge.
Het is belangrijk om een kleine letter te gebruiken voor de Azure Blob Storage-module in IoT Edge. IoT Edge is hoofdlettergevoelig bij het verwijzen naar modules, en de Storage SDK gebruikt standaard kleine letters.Docker-afbeelding voor de module opgeven Geef de afbeeldings-URI op: mcr.microsoft.com/azure-blob-storage:latest Visual Studio Code gebruikt de informatie die u hebt opgegeven, maakt een IoT Edge-oplossing en laadt deze vervolgens in een nieuw venster. Met de oplossingssjabloon maakt u een implementatiemanifestsjabloon die de module-afbeelding van Blob Storage bevat, maar u moet de configuratie-opties voor de module instellen.
Open deployment.template.json in uw nieuwe oplossingswerkruimte en zoek de sectie modules . Breng de volgende configuratiewijzigingen aan:
Kopieer en plak de volgende code in het
createOptionsveld voor de blob-opslagmodule:```json "Env":[ "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>", "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>" ], "HostConfig":{ "Binds": ["<mount>"], "PortBindings":{ "11002/tcp": [{"HostPort":"11002"}] } }
Vervang door
<local storage account name>een naam die u kunt onthouden. Accountnamen moeten 3 tot 24 tekens lang zijn, met kleine letters en cijfers. Geen spaties.Vervang door
<local storage account key>een base64-sleutel van 64 bytes. U kunt een sleutel genereren met hulpprogramma's zoals Base64 Generator. U gebruikt deze inloggegevens voor toegang tot de blob-opslag vanuit andere modules.Vervang
<mount>volgens uw containerbesturingssysteem. Geef de naam op van een volume of het absolute pad naar een map op uw IoT Edge-apparaat waar u de blobmodule de gegevens wilt opslaan. De opslagkoppeling mappt een door u opgegeven locatie op uw apparaat naar een vaste locatie in de module.Voor Linux-containers is de indeling <het opslagpad of het volume>:/blobroot. Voorbeeld:
- Gebruik volumekoppeling:
my-volume:/blobroot - Gebruik bindingskoppeling:
/srv/containerdata:/blobroot. Zorg ervoor dat u de stappen volgt om directorytoegang te verlenen aan de containergebruiker
Belangrijk
Wijzig niet de tweede helft van de opslag-aansluitpuntwaarde, die verwijst naar een specifieke locatie in de Blob Storage in de IoT Edge-module. De opslagkoppeling moet altijd eindigen met :/blobroot voor Linux-containers.
IoT Edge verwijdert geen volumes die zijn gekoppeld aan de modulecontainers. Dit gedrag is standaard, omdat hiermee de gegevens kunnen worden bewaard in containerinstanties, zoals upgradescenario's. Als deze volumes echter ongebruikt blijven, kan dit leiden tot uitputting van de schijfruimte en daaropvolgende systeemfouten. Als u docker-volumes in uw scenario gebruikt, raden we u aan docker-hulpprogramma's zoals docker-volumes prune en docker volume rm te gebruiken om de ongebruikte volumes te verwijderen, met name voor productiescenario's.
- Gebruik volumekoppeling:
Configureer deviceToCloudUploadProperties en deviceAutoDeleteProperties voor uw module door de volgende JSON toe te voegen aan het deployment.template.json-bestand . Configureer elke eigenschap met een juiste waarde en sla het bestand op. Als u de IoT Edge-simulator gebruikt, stelt u de waarden in op de gerelateerde omgevingsvariabelen voor deze eigenschappen. Deze vindt u in de uitlegsectie van deviceToCloudUploadProperties en deviceAutoDeleteProperties
"<your azureblobstorageoniotedge module name>":{ "properties.desired": { "deviceAutoDeleteProperties": { "deleteOn": <true, false>, "deleteAfterMinutes": <timeToLiveInMinutes>, "retainWhileUploading": <true, false> }, "deviceToCloudUploadProperties": { "uploadOn": <true, false>, "uploadOrder": "<NewestFirst, OldestFirst>", "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>", "storageContainersForUpload": { "<source container name1>": { "target": "<target container name1>" } }, "deleteAfterUpload": <true, false> } } }
Voor meer informatie over het configureren van deviceToCloudUploadProperties en deviceAutoDeleteProperties nadat uw module is geïmplementeerd, zie Bewerk de moduletwin. Zie De gewenste eigenschappen van EdgeAgent voor meer informatie over opties voor het maken van containers, het beleid voor opnieuw opstarten en de gewenste status.
Sla het bestand deployment.template.json op.
Klik met de rechtermuisknop op deployment.template.json en selecteer IoT Edge-implementatiemanifest genereren.
Visual Studio Code gebruikt de informatie die u hebt opgegeven in deployment.template.json en gebruikt deze om een nieuw distributiemanifestbestand te maken. Het implementatiemanifest wordt gemaakt in een nieuwe configuratiemap in uw oplossingswerkruimte. Zodra u dat bestand hebt, kunt u de stappen volgen in Azure IoT Edge-modules implementeren met Azure CLI 2.0.
Meerdere module-exemplaren implementeren
Als u meerdere exemplaren van de Azure Blob Storage-module in IoT Edge wilt implementeren, moet u een ander opslagpad opgeven en de HostPort waarde wijzigen waarmee de module is verbonden. De Blob Storage-modules maken altijd poort 11002 beschikbaar in de container, maar u kunt aangeven aan welke poort deze is gebonden op de host.
Bewerk Opties voor container maken (in Azure Portal) of het veld createOptions (in het bestand deployment.template.json in Visual Studio Code) om de HostPort waarde te wijzigen:
"PortBindings":{
"11002/tcp": [{"HostPort":"<port number>"}]
}
Wanneer u verbinding maakt met aanvullende blobopslagmodules, wijzigt u het eindpunt zodat deze verwijst naar de bijgewerkte hostpoort.
Proxyondersteuning configureren
Als uw organisatie een proxyserver gebruikt, moet u proxyondersteuning configureren voor de edgeAgent- en edgeHub-runtimemodules. Dit proces omvat twee taken:
- Configureer de runtime-daemons en de IoT Edge-agent op het apparaat.
- Stel de omgevingsvariabele HTTPS_PROXY in voor modules in het JSON-bestand van het implementatiemanifest.
Dit proces wordt beschreven in Een IoT Edge-apparaat configureren om te communiceren via een proxyserver.
Daarnaast vereist een blob-opslagmodule ook de HTTPS_PROXY-instelling in het manifestimplementatiebestand. U kunt het manifestbestand voor de implementatie rechtstreeks bewerken of Azure Portal gebruiken.
Navigeer naar uw IoT Hub in Azure Portal en selecteer Apparaten in het menu Apparaatbeheer
Selecteer het apparaat met de module die u wilt configureren.
Selecteer Modules instellen.
Selecteer in de sectie IoT Edge-modules van de pagina de blobopslagmodule.
Selecteer op de pagina IoT Edge-module bijwerken het tabblad Omgevingsvariabelen .
Voeg
HTTPS_PROXYtoe voor de naam en de proxy-URL voor de waarde.
Selecteer Bijwerken en vervolgens Beoordelen en maken.
Zie dat de proxy is toegevoegd aan de module in het implementatiemanifest en selecteer Maken.
Controleer de instelling door de module te selecteren op de pagina met apparaatdetails en selecteer op het onderste deel van de pagina Details van IoT Edge-modules het tabblad Omgevingsvariabelen .
Volgende stappen
Meer informatie over Azure Blob Storage in IoT Edge.
Zie Begrijpen hoe IoT Edge-modules kunnen worden gebruikt, geconfigureerd en hergebruikt voor meer informatie over hoe implementatiemanifesten werken en hoe ze kunnen worden gemaakt.