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

Fontos

Az IoT Edge 1.5 LTS a támogatott kiadás. 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: