Tárolólétrehozási beállítások konfigurálása IoT Edge-modulokhoz
A következőkre vonatkozik: IoT Edge 1.5 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:
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:
- Modulok hozzáférésének biztosítása a gazdagéptárolóhoz
- Gazdagépport leképezése modulportra
- Modulmemória és processzorhasználat korlátozása
- IoT Edge-modul GPU-optimalizálása
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: