Dela via


Distribuera Azure Blob Storage i IoT Edge-modulen till din enhet

Gäller för:Bockmarkering för IoT Edge 1.5 IoT Edge 1.5 Bockmarkering för IoT Edge 1.4 IoT Edge 1.4

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 LTS stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

Det finns flera sätt att distribuera moduler till en IoT Edge-enhet och alla fungerar för Azure Blob Storage på IoT Edge-moduler. De två enklaste metoderna är att använda Azure-portalen eller Visual Studio Code-mallar.

Förutsättningar

Distribuera från Azure-portalen

Azure-portalen vägleder dig genom att skapa ett distributionsmanifest och push-överföra distributionen till en IoT Edge-enhet.

Välj din enhet

  1. Logga in på Azure-portalen och gå till din IoT-hubb.
  2. Välj Enheter under menyn Enhetshantering .
  3. Välj IoT Edge-målenheten i listan.
  4. Välj Ange moduler.

Konfigurera ett distributionsmanifest

Ett distributionsmanifest är ett JSON-dokument som beskriver vilka moduler som ska distribueras, hur data flödar mellan modulerna och önskade egenskaper för modultvillingarna. Azure-portalen har en guide som vägleder dig genom att skapa ett distributionsmanifest. Den har tre steg ordnade i flikar: Moduler, Vägar och Granska + Skapa.

Lägga till moduler

  1. I avsnittet IoT Edge-moduler på sidan väljer du listrutan Lägg till och väljer IoT Edge-modul för att visa sidan Lägg till IoT Edge-modul.

  2. På fliken Inställningar anger du ett namn för modulen och anger sedan containeravbildningens URI:

    • IoT Edge-modulnamn: azureblobstorageoniotedge
    • Bild-URI: mcr.microsoft.com/azure-blob-storage:latest

    Skärmbild som visar fliken Modulinställningar på sidan Lägg till IoT Edge-modul. .

    Välj inte Lägg till förrän du har angett värden på flikarna Modulinställningar, Alternativ för containerskapande och Modultvilling enligt beskrivningen i den här proceduren.

    Viktigt!

    Azure IoT Edge är skiftlägeskänsligt när du gör anrop till moduler, och Storage SDK är också som standard gemener. Genom att ändra namnet till gemener ser du till att dina anslutningar till Azure Blob Storage på IoT Edge-modulen inte avbryts.

  3. Öppna fliken Alternativ för att skapa container.

  4. Kopiera och klistra in följande JSON i rutan för att ange information om lagringskontot och en montering för lagringen på enheten.

    {
      "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"}]
        }
      }
    }
    

    Skärmbild som visar fliken Alternativ för att skapa container på sidan Lägg till IoT Edge-modul..

  5. Uppdatera JSON som du kopierade till Alternativ för att skapa containrar med följande information:

    • Ersätt <local storage account name> med ett namn som du kan komma ihåg. Kontonamnen ska vara mellan 3 och 24 tecken långa, med gemener och siffror. Inga blanksteg.

    • Ersätt <local storage account key> med en 64-bytes base64-nyckel. Du kan generera en nyckel med verktyg som GeneratePlus. Du använder dessa autentiseringsuppgifter för att komma åt bloblagringen från andra moduler.

    • Ersätt <mount> enligt containeroperativsystemet. Ange namnet på en volym eller den absoluta sökvägen till en befintlig katalog på din IoT Edge-enhet där blobmodulen lagrar sina data. Lagringsmonteringen mappar en plats på enheten som du anger till en angivet plats i modulen.

    För Linux-containrar är <formatet din lagringssökväg eller volym>:/blobroot. Till exempel:

    Viktigt!

    • Ändra inte den andra halvan av lagringsmonteringsvärdet, som pekar på en specifik plats i Blob Storage på IoT Edge-modulen. Lagringsmonteringen måste alltid sluta med :/blobroot för Linux-containrar.

    • IoT Edge tar inte bort volymer som är anslutna till modulcontainrar. Det här beteendet är avsiktligt eftersom det gör att data kan bevaras mellan containerinstanser, till exempel uppgraderingsscenarier. Men om dessa volymer lämnas oanvända kan det leda till diskutrymmesöverbelastning och systemfel. Om du använder docker-volymer i ditt scenario rekommenderar vi att du använder docker-verktyg som docker-volymrensning och dockervolym rm för att ta bort de oanvända volymerna, särskilt för produktionsscenarier.

  6. På fliken Inställningar för modultvilling kopierar du följande JSON och klistrar in den i rutan.

    {
      "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>
      }
    }
    
  7. Konfigurera varje egenskap med ett lämpligt värde, enligt platshållarna. Om du använder IoT Edge-simulatorn anger du värdena till relaterade miljövariabler för dessa egenskaper enligt beskrivningen av deviceToCloudUploadProperties och deviceAutoDeleteProperties.

    Dricks

    Namnet på containern target har namngivningsbegränsningar, till exempel stöds inte användning av ett $ prefix. Om du vill se alla begränsningar kan du visa Containernamn.

    Kommentar

    Om ditt containermål är namnlöst eller null inom storageContainersForUploadtilldelas ett standardnamn till målet. Om du vill sluta ladda upp till en container måste den tas bort helt från storageContainersForUpload. Mer information finns i deviceToCloudUploadProperties avsnittet Lagra data vid gränsen med Azure Blob Storage på IoT Edge.

    Skärmbild som visar fliken Inställningar för modultvilling på sidan Lägg till IoT Edge-modul.

    Information om hur du konfigurerar deviceToCloudUploadProperties och deviceAutoDeleteProperties när modulen har distribuerats finns i Redigera modultvillingen. Mer information om önskade egenskaper finns i Definiera eller uppdatera önskade egenskaper.

  8. Markera Lägga till.

  9. Välj Nästa: Vägar för att fortsätta till avsnittet vägar.

Ange vägar

Behåll standardvägarna och välj Nästa: Granska + skapa för att fortsätta till granskningsavsnittet.

Granska distribution

Granskningsavsnittet visar JSON-distributionsmanifestet som skapades baserat på dina val i de föregående två avsnitten. Det finns också två moduler som du inte har lagt till: $edgeAgent och $edgeHub. Dessa två moduler utgör IoT Edge-körningen och krävs som standard i varje distribution.

Granska distributionsinformationen och välj sedan Skapa.

Verifiera distributionen

När du har skapat distributionen återgår du till sidan Enheter i din IoT-hubb.

  1. Välj den IoT Edge-enhet som du riktade in dig på med distributionen för att öppna dess information.
  2. I enhetsinformationen kontrollerar du att bloblagringsmodulen visas som både Angiven i distribution och Rapporterad av enhet.

Det kan ta en stund innan modulen startas på enheten och sedan rapporteras tillbaka till IoT Hub. Uppdatera sidan för att se en uppdaterad status.

Distribuera från Visual Studio Code

Azure IoT Edge innehåller mallar i Visual Studio Code som hjälper dig att utveckla gränslösningar. Använd följande steg för att skapa en ny IoT Edge-lösning med en bloblagringsmodul och konfigurera distributionsmanifestet.

Viktigt!

Azure IoT Edge Visual Studio Code-tillägget är i underhållsläge.

  1. Välj Visa>kommandopalett.

  2. Skriv och kör kommandot Azure IoT Edge: New IoT Edge solution (Ny IoT Edge-lösning) på kommandopaletten.

    Skärmbild som visar hur du kör den nya IoT Edge-lösningen.

    Skapa lösningen genom att följ anvisningarna på kommandopaletten.

    Fält Värde
    Välj mapp Välj platsen på utvecklingsdatorn för Visual Studio Code för att skapa lösningsfilerna.
    Ange ett namn på lösningen Ange ett beskrivande namn för lösningen eller acceptera standardnamnet EdgeSolution.
    Välj modulmall Välj Befintlig modul (Ange fullständig bild-URL).
    Ange ett modulnamn Ange ett helt gemener för modulen, till exempel azureblobstorageoniotedge.

    Det är viktigt att använda ett gemener för Azure Blob Storage på IoT Edge-modulen. IoT Edge är skiftlägeskänsligt när du refererar till moduler, och Storage SDK är som standard gemener.
    Ange Docker-avbildning för modulen Ange avbildningens URI: mcr.microsoft.com/azure-blob-storage:latest

    Visual Studio Code tar den information du angav, skapar en IoT Edge-lösning och läser sedan in den i ett nytt fönster. Lösningsmallen skapar en mall för distributionsmanifest som innehåller avbildningen av bloblagringsmodulen, men du måste konfigurera modulens alternativ för att skapa.

  3. Öppna deployment.template.json i din nya lösningsarbetsyta och leta reda på avsnittet moduler . Gör följande konfigurationsändringar:

    1. Kopiera och klistra in följande kod i fältet createOptions för bloblagringsmodulen:

      
      ```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"}]
        }
      }
      

      Skärmbild som visar hur du uppdaterar modulen createOptions i Visual Studio Code.

  4. Ersätt <local storage account name> med ett namn som du kan komma ihåg. Kontonamnen ska vara mellan 3 och 24 tecken långa, med gemener och siffror. Inga blanksteg.

  5. Ersätt <local storage account key> med en 64-bytes base64-nyckel. Du kan generera en nyckel med verktyg som GeneratePlus. Du använder dessa autentiseringsuppgifter för att komma åt bloblagringen från andra moduler.

  6. Ersätt <mount> enligt containeroperativsystemet. Ange namnet på en volym eller den absoluta sökvägen till en katalog på din IoT Edge-enhet där du vill att blobmodulen ska lagra sina data. Lagringsmonteringen mappar en plats på enheten som du anger till en angivet plats i modulen.

    För Linux-containrar är <formatet din lagringssökväg eller volym>:/blobroot. Till exempel:

    Viktigt!

    • Ändra inte den andra halvan av lagringsmonteringsvärdet, som pekar på en specifik plats i Blob Storage på IoT Edge-modulen. Lagringsmonteringen måste alltid sluta med :/blobroot för Linux-containrar.

    • IoT Edge tar inte bort volymer som är anslutna till modulcontainrar. Det här beteendet är avsiktligt eftersom det gör att data kan bevaras mellan containerinstanser, till exempel uppgraderingsscenarier. Men om dessa volymer lämnas oanvända kan det leda till diskutrymmesöverbelastning och systemfel. Om du använder docker-volymer i ditt scenario rekommenderar vi att du använder docker-verktyg som docker-volymrensning och dockervolym rm för att ta bort de oanvända volymerna, särskilt för produktionsscenarier.

  7. Konfigurera deviceToCloudUploadProperties och deviceAutoDeleteProperties för din modul genom att lägga till följande JSON i deployment.template.json-filen. Konfigurera varje egenskap med ett lämpligt värde och spara filen. Om du använder IoT Edge-simulatorn anger du värdena till relaterade miljövariabler för dessa egenskaper, som du hittar i förklaringsavsnittet i deviceToCloudUploadProperties och 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>
        }
      }
    }
    

    Skärmbild som visar hur du anger önskade egenskaper för azureblobstorageoniotedge i Visual Studio Code.

    Information om hur du konfigurerar deviceToCloudUploadProperties och deviceAutoDeleteProperties när modulen har distribuerats finns i Redigera modultvillingen. Mer information om alternativ för att skapa containrar, omstartsprincip och önskad status finns i Önskade egenskaper för EdgeAgent.

  8. Spara filen deployment.template.json.

  9. Högerklicka på deployment.template.json och välj Generera IoT Edge-distributionsmanifest.

  10. Visual Studio Code tar den information som du angav i deployment.template.json och använder den för att skapa en ny distributionsmanifestfil. Distributionsmanifestet skapas i en ny konfigurationsmapp på lösningsarbetsytan. När du har filen kan du följa stegen i Distribuera Azure IoT Edge-moduler från Visual Studio Code eller Distribuera Azure IoT Edge-moduler med Azure CLI 2.0.

Distribuera flera modulinstanser

Om du vill distribuera flera instanser av Azure Blob Storage på IoT Edge-modulen måste du ange en annan lagringssökväg och ändra värdet HostPort som modulen binder till. Bloblagringsmodulerna exponerar alltid port 11002 i containern, men du kan deklarera vilken port den är bunden till på värden.

Redigera alternativ för att skapa containrar (i Azure-portalen) eller fältet createOptions (i filen deployment.template.json i Visual Studio Code) för att ändra HostPort värdet:

"PortBindings":{
  "11002/tcp": [{"HostPort":"<port number>"}]
}

När du ansluter till ytterligare bloblagringsmoduler ändrar du slutpunkten så att den pekar på den uppdaterade värdporten.

Konfigurera proxyinställningar

Om din organisation använder en proxyserver måste du konfigurera proxystöd för edgeAgent- och edgeHub-runtime-modulerna. Den här processen omfattar två uppgifter:

  • Konfigurera körningsdaemonerna och IoT Edge-agenten på enheten.
  • Ange HTTPS_PROXY miljövariabeln för moduler i JSON-filen för distributionsmanifestet.

Den här processen beskrivs i Konfigurera en IoT Edge-enhet för kommunikation via en proxyserver.

Dessutom kräver en bloblagringsmodul även inställningen HTTPS_PROXY i manifestdistributionsfilen. Du kan redigera distributionsmanifestfilen direkt eller använda Azure-portalen.

  1. Gå till din IoT Hub i Azure-portalen och välj Enheter under menyn Enhetshantering

  2. Välj den enhet med modulen som ska konfigureras.

  3. Välj Ange moduler.

  4. I avsnittet IoT Edge-moduler på sidan väljer du bloblagringsmodulen.

  5. På sidan Uppdatera IoT Edge-modul väljer du fliken Miljövariabler .

  6. Lägg till HTTPS_PROXY för Namnet och proxy-URL:en för värdet.

    Skärmbild som visar fönstret Uppdatera IoT Edge-modul där du kan ange de angivna värdena.

  7. Välj Uppdatera och sedan Granska + Skapa.

  8. Se proxyn läggs till i modulen i distributionsmanifestet och välj Skapa.

  9. Kontrollera inställningen genom att välja modulen på sidan med enhetsinformation och välj fliken Miljövariabler på den nedre delen av sidan Information om IoT Edge-moduler.

    Skärmbild som visar fliken Miljövariabler.

Nästa steg

Läs mer om Azure Blob Storage på IoT Edge.

Mer information om hur distributionsmanifest fungerar och hur du skapar dem finns i Förstå hur IoT Edge-moduler kan användas, konfigureras och återanvändas.