Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik:
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:
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:
- Adjon moduloknak hozzáférést a gazda tárolóhoz
- Gazdagépi port leképezése modulportra
- Modulmemória és processzorhasználat korlátozása
- GPU optimalizálja IoT Edge modult
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: