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őkre vonatkozik: IoT Edge 1.5 pipa IoT Edge 1.5 IoT Edge 1.4 pipa IoT Edge 1.4

Fontos

Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.

A createOptions paraméter az üzembe helyezési jegyzékben lehetővé teszi a modultárolók futásidőben történő konfigurálását. Ez a paraméter kibővíti a modulok feletti vezérlést, és lehetővé teszi az olyan feladatokat, mint a modul hozzáférésének engedélyezése vagy korlátozása a gazdaeszköz erőforrásaihoz, vagy a hálózatkezelés konfigurálása.

Az IoT Edge-modulok Docker-kompatibilis tárolóként vannak implementálva 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 az IoT Edge-modulokra is érvényesek. További információ: Docker-tároló létrehozási beállításai.

Létrehozási beállítások formázása

Az IoT Edge üzembehelyezési jegyzék jSON-ként formázott 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 gazdagépeszköz egy portjára.

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

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

Fontos

Az Azure IoT Edge Visual Studio Code bővítmény karbantartási módban van. Az iotedgedev eszköz az IoT Edge-modulok fejlesztéséhez ajánlott eszköz.

A létrehozási lehetőségek írásának egyik tippje a docker inspect parancs használata. A fejlesztési folyamat részeként futtassa a modult helyileg a docker run <container name>használatával. Ha a modul a kívánt módon működik, futtassa 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 a JSON-t. Példa:

Képernyőkép a docker parancs eredményeiről az edgeHub vizsgálatához.

Gyakori forgatókönyvek

A tároló-létrehozási lehetőségek számos forgatókönyvet tesznek lehetővé, de íme néhány, amely leggyakrabban az IoT Edge-megoldások létrehozásakor merül fel:

Gazdagépport leképezése modulportra

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

Tipp.

Ez a portleképezés nem szükséges a modul–modul kommunikációhoz ugyanazon az eszközön. 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: 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 port ki van 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 nincs megadva, a közzétett utasítás alapértelmezés szerint TCP protokollra van beadva, vagy megadhat UDP-t.

Ezután a Docker-tároló HostConfig csoportjában található PortBindings beállítással rendelje le a modulban lévő közzétett portot a gazdagépeszköz egyik portjára. Ha például a modulban közzétette a 8080-at, és le szeretné képezni azt a gazdaeszköz 80-ai portjára, a template.json fájl létrehozási beállításai a következő példához hasonlóan néznek ki:

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

Miután sztringezte az üzembehelyezési jegyzékben, ugyanez a konfiguráció a következő példához hasonlóan fog kinézni:

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

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

Megadhatja, hogy egy modul mennyi gazdaerőforrást használhat. Ez a vezérlő segít annak biztosításában, hogy egy modul nem használhat túl sok memóriát vagy processzort, és megakadályozza, hogy más folyamatok fussanak az eszközön. Ezeket a beállításokat a Docker-tároló létrehozási beállításaival kezelheti a HostConfig csoportban, beleértve a 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
  }
}

A végleges üzembehelyezési jegyzék sztringezése után ezek az értékek a következő példához hasonlóan néznek ki:

"createOptions":"{\"HostConfig\":{\"Memory\":268435456,\"MemorySwap\":536870912,\"CpuPeriod\":25000}}"

IoT Edge-modul GPU-optimalizálása

Ha az IoT Edge-modult GPU-ra optimalizált virtuális gépen futtatja, engedélyezheti, hogy az IoT Edge-modul is csatlakozzon a GPU-hoz. Ha ezt 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"]]}]}}

A beállítások sikeres hozzáadásának ellenőrzéséhez használja a Docker-vizsgálat parancsot 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, hogy az eszköz és a virtuális gép hogyan csatlakozik GPU-hoz, olvassa el a GPU IoT Edge-moduljának konfigurálását, csatlakoztatását és ellenőrzését ismertető témakört.

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: