De Azure Blob Storage op de IoT Edge-module implementeren naar uw apparaat
Van toepassing op: IoT Edge 1.5 IoT Edge 1.4
Belangrijk
IoT Edge 1.5 LTS en IoT Edge 1.4 LTS worden ondersteund releases. IoT Edge 1.4 LTS eindigt op 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
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.
Vereisten
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 de Azure-portal en ga 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:
- Naam ioT Edge-module:
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.
- Naam ioT Edge-module:
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 GeneratePlus. U gebruikt deze referenties voor toegang tot de blobopslag 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 wijst een locatie toe aan uw apparaat dat u opgeeft op een ingestelde locatie in de module.
Voor Linux-containers is <de indeling uw opslagpad of -volume>:/blobroot. Voorbeeld:
- Volumekoppeling gebruiken:
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 opslagkoppelingswaarde, die verwijst naar een specifieke locatie in de Blob Storage op 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 het tabblad Instellingen voor moduledubbel 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.
Tip
De naam voor uw
target
container heeft naambeperkingen, bijvoorbeeld het gebruik van een$
voorvoegsel wordt niet ondersteund. Als u alle beperkingen wilt zien, bekijkt u Containernamen.Notitie
Als uw containerdoel niet-benoemd of null
storageContainersForUpload
is binnen, wordt er een standaardnaam toegewezen aan het doel. Als u het uploaden naar een container wilt stoppen, moet deze volledig worden verwijderd.storageContainersForUpload
Zie dedeviceToCloudUploadProperties
sectie opslaggegevens aan de rand met Azure Blob Storage in IoT Edge voor meer informatie.Zie De moduledubbel bewerken voor meer informatie over het configureren van deviceToCloudUploadProperties en deviceAutoDeleteProperties nadat uw module is geïmplementeerd. 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 sectie Controleren.
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 Vervolgens 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 even duren voordat de module op het apparaat is gestart en vervolgens wordt gerapporteerd 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 Opdrachtpalet weergeven>.
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 URL van de volledige installatiekopieën in). Een modulenaam opgeven Voer een naam in voor 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 wordt standaard kleine letters gebruikt.Docker-installatiekopieën opgeven voor de module 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 installatiekopieën van de Blob Storage-module bevat, maar u moet de opties voor het maken van de module configureren.
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
createOptions
veld 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 GeneratePlus. U gebruikt deze referenties voor toegang tot de blobopslag 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 wijst een locatie toe aan uw apparaat dat u opgeeft op een ingestelde locatie in de module.Voor Linux-containers is <de indeling uw opslagpad of -volume>:/blobroot. Voorbeeld:
- Volumekoppeling gebruiken:
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 opslagkoppelingswaarde, die verwijst naar een specifieke locatie in de Blob Storage op 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.
- Volumekoppeling gebruiken:
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> } } }
Zie De moduledubbel bewerken voor meer informatie over het configureren van deviceToCloudUploadProperties en deviceAutoDeleteProperties nadat uw module is geïmplementeerd. 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_PROXY
toe 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.