Megosztás a következőn keresztül:


Tároló-létrehozási beállítások konfigurálása IoT Edge modulokhoz

A következőre vonatkozik:IoT Edge 1.5 jelölés IoT Edge 1.5

Fontos

IoT Edge 1.5 LTS a támogatott kiadás. IoT Edge 1,4 LTS 2024. november 12-én véget ért. Ha korábbi kiadást használ, tekintse meg a Update IoT Edge című témakört.

createOptions A modultárolók futásidőben való konfigurálásához használja az üzembehelyezési jegyzékben szereplő paramétert. Ezzel a paraméterrel korlátozhatja a modul hozzáférését a gazdaeszköz erőforrásaihoz, vagy konfigurálhatja a hálózatkezelést.

IoT Edge modulok Docker-kompatibilis tárolóként futnak az IoT Edge eszközön. A Docker számos lehetőséget kínál a tárolók létrehozására, és ezek a lehetőségek IoT Edge modulokra is érvényesek. További információ: Docker-tároló létrehozási beállításai.

Formátum létrehozási opciók

A IoT Edge üzembehelyezési jegyzék JSON formátumú létrehozási beállításokat fogad el. Vegyük például azokat a létrehozási beállításokat, amelyek minden edgeHub-modulhoz automatikusan bekerülnek:

"createOptions": {
  "HostConfig": {
    "PortBindings": {
      "5671/tcp": [
        {
          "HostPort": "5671"
        }
      ],
      "8883/tcp": [
        {
          "HostPort": "8883"
        }
      ],
      "443/tcp": [
        {
          "HostPort": "443"
        }
      ]
    }
  }
}

Ez az edgeHub-példa a HostConfig.PortBindings paraméterrel képezi le a tárolóban lévő közzétett portokat a gazdaeszköz egy portjára.

Ha a Azure IoT Edge bővítményt használja Visual Studio vagy Visual Studio Code, írja be a létrehozási beállításokat JSON formátumban a deployment.template.json fájlba. Ezután, amikor a bővítményt használja a IoT Edge-megoldás létrehozásához vagy az üzembehelyezési jegyzék létrehozásához, az a JSON-t a IoT Edge futtatókörnyezet által várt formátumban sztringezi. Példa:

"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"

Fontos

A Azure IoT Edge Visual Studio Code bővítmény aintenance módban van. A iotedgedev eszköz a IoT Edge modulok fejlesztéséhez ajánlott eszköz.

docker inspect A parancs használatával megírhatja a létrehozási beállításokat. A modult futtassa lokálisan docker run <container name> a fejlesztési folyamat részeként. Ha a modul a kívánt módon működik, futtassa a parancsot docker inspect <container name>. Ez a parancs JSON formátumban adja ki a modul részleteit. Keresse meg a konfigurált paramétereket, és másolja ki a JSON-t. Példa:

Képernyőkép a Docker inspect edgeHub parancs eredményeiről.

Gyakori forgatókönyvek

A tároló-létrehozási lehetőségek különböző forgatókönyveket támogatnak. A IoT Edge-megoldások készítésének leggyakoribb megoldásai:

Gazdagép port kiosztása modulportra

Ha a modulnak a IoT Edge megoldáson kívüli szolgáltatással kell kommunikálnia, és ehhez nem használ üzenet-útválasztást, rendeljen hozzá egy gazdagépportot egy modulporthoz.

Tipp

Az ugyanazon az eszközön lévő modul–modul kommunikációhoz nincs szükség portleképezésre. Ha az A modulnak le kell kérdeznie egy, a B modulban üzemeltetett API-t, ezt portleképezés nélkül is megteheti. A B modulnak közzé kell tennie egy portot a dockerfile-ban. Például elérhetővé teszi EXPOSE 8080. Az A modul ezután lekérdezheti az API-t a B modul nevével; például http://ModuleB:8080/api.

Először győződjön meg arról, hogy a modulon belüli portok ki vannak téve a kapcsolatok figyeléséhez. Ezt a dockerfile-ban található EXPOSE utasítással teheti meg; például EXPOSE 8080. Ha nem ad meg protokollt, vagy UDP-t adhat meg, a közzétett utasítás alapértelmezés szerint a TCP protokollra vonatkozik.

Ezután a PortBindingsHostConfig csoportjában található beállítással képezhesse le a modulban lévő közzétett portot a gazdaeszköz egyik portjára. Ha például a modulon belül hozzáférhetővé tette a 8080-as portot, és azt le szeretné képezni a gazdaeszközön lévő 80-as portra, a template.json fájl létrehozási beállításai így néznének ki:

"createOptions": {
  "HostConfig": {
    "PortBindings": {
      "8080/tcp": [
        {
          "HostPort": "80"
        }
      ]
    }
  }
}

Amikor a konfigurációt szövegformátumra alakítják a telepítési jegyzékhez, így néz ki:

"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"8080/tcp\":[{\"HostPort\":\"80\"}]}}}"

Modulmemória és processzorhasználat korlátozása

Deklarálja, hogy a modul mennyi gazdagéperőforrást használhat. Ez a vezérlő biztosítja, hogy egy modul ne használsson túl sok memóriát vagy processzort, ami megakadályozza, hogy más folyamatok fussanak az eszközön. Ezeket a beállításokat a csoport Docker-tároló létrehozási beállításaival kezelheti, többek között a HostConfig következőket:

  • Memória: Memóriakorlát bájtban. Például 268435456 bájt = 256 MB.
  • MemorySwap: Teljes memóriakorlát (memória + felcserélés). Például 536870912 bájt = 512 MB.
  • NanoCpus: CPU-kvóta 10–9 (1 milliárdos) processzoregységekben. Például: 250000000 nanocpus = 0,25 CPU.

A template.json formátumban ezek az értékek a következő példához hasonlóan néznek ki:

"createOptions": {
  "HostConfig": {
    "Memory": 268435456,
    "MemorySwap": 536870912,
    "NanoCpus": 250000000
  }
}

Miután a végleges üzembehelyezési jegyzékben ezek az értékek szöveges formára kerülnek, az alábbi példára hasonlítanak:

"createOptions":"{\"HostConfig\":{\"Memory\":268435456,\"MemorySwap\":536870912,\"NanoCpus\":250000000}}"

IOT EDGE modul GPU-optimalizálása

Ha a IoT Edge modult GPU-ra optimalizált virtuális gépen futtatja, engedélyezheti, hogy egy IoT Edge modul is csatlakozzon a GPU-hoz. Ha ezt a kapcsolatot egy meglévő modullal szeretné elvégezni, adjon hozzá néhány specifikációt a következőhöz createOptions:

{"HostConfig": {"DeviceRequests": [{"Count": -1,"Capabilities": [["gpu"]]}]}}

Erősítse meg ezeket a beállításokat a Docker inspect paranccsal az új beállítás JSON-nyomtatásban való megtekintéséhez:

sudo docker inspect <YOUR-MODULE-NAME>

Ha többet szeretne megtudni arról, hogyan csatlakozik az eszköz és a virtuális gép a GPU-hoz, olvassa el a GPU-ra vonatkozó IoT Edge modul konfigurálása, csatlakoztatása és ellenőrzése című részt.

Következő lépések

További példák a létrehozási lehetőségek működés közbeni használatára, lásd az alábbi IoT Edge mintákat: