Wdrażanie modułów usługi IoT Edge na dużą skalę przy użyciu programu Visual Studio Code
Dotyczy: IoT Edge 1.5
IoT Edge 1.4
Ważne
Obsługiwane są wersje usługi IoT Edge 1.5 LTS i IoT Edge 1.4 LTS. Usługa IoT Edge 1.4 LTS kończy się 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.
Automatyczne wdrażanie usługi IoT Edge można utworzyć przy użyciu programu Visual Studio Code, aby zarządzać trwającymi wdrożeniami dla wielu urządzeń jednocześnie. Wdrożenia automatyczne dla usługi IoT Edge są częścią funkcji automatycznego zarządzania urządzeniami w usłudze IoT Hub. Wdrożenia to procesy dynamiczne, które umożliwiają wdrażanie wielu modułów na wielu urządzeniach. Możesz również śledzić stan i kondycję modułów oraz wprowadzać zmiany w razie potrzeby.
Aby uzyskać więcej informacji, zobacz Omówienie automatycznych wdrożeń usługi IoT Edge dla pojedynczych urządzeń lub na dużą skalę.
W tym artykule skonfigurujesz program Visual Studio Code i rozszerzenie IoT. Następnie dowiesz się, jak wdrożyć moduły w zestawie urządzeń usługi IoT Edge.
Wymagania wstępne
Centrum IoT w ramach subskrypcji platformy Azure.
Co najmniej jedno urządzenie usługi IoT Edge.
Jeśli nie masz skonfigurowanego urządzenia usługi IoT Edge, możesz go utworzyć na maszynie wirtualnej platformy Azure. Wykonaj kroki opisane w jednym z artykułów szybki start, aby utworzyć wirtualne urządzenie z systemem Linux lub utworzyć wirtualne urządzenie z systemem Windows.
Usługa Azure IoT Edge dla programu Visual Studio Code. Rozszerzenia usługi Azure IoT Edge dla programu Visual Studio Code są w trybie konserwacji.
Zaloguj się, aby uzyskać dostęp do centrum IoT
Rozszerzenia usługi Azure IoT dla programu Visual Studio Code umożliwiają wykonywanie operacji w centrum. Aby te operacje działały, musisz zalogować się do konta platformy Azure i wybrać centrum IoT Hub, nad którym pracujesz.
W programie Visual Studio Code otwórz widok Eksploratora .
W dolnej części Eksploratora rozwiń sekcję Azure IoT Hub .
Kliknij pozycję ... w nagłówku sekcji usługi Azure IoT Hub . Jeśli nie widzisz wielokropka, umieść kursor nad nagłówkiem.
Wybierz pozycję Wybierz centrum IoT Hub.
Jeśli nie zalogowasz się do konta platformy Azure, postępuj zgodnie z instrukcjami, aby to zrobić.
Wybierz subskrypcję platformy Azure.
Wybierz centrum IoT Hub.
Konfigurowanie manifestu wdrożenia
Manifest wdrożenia to dokument JSON opisujący moduły do wdrożenia. Opisuje również sposób przepływu danych między modułami i żądanymi właściwościami bliźniaczych reprezentacji modułu. Aby uzyskać więcej informacji, zobacz Dowiedz się, jak wdrażać moduły i ustanawiać trasy w usłudze IoT Edge.
Aby wdrożyć moduły przy użyciu programu Visual Studio Code, zapisz manifest wdrożenia lokalnie jako element . Plik JSON. Po uruchomieniu polecenia należy podać jego lokalizację, aby zastosować konfigurację do urządzenia.
Oto podstawowy manifest wdrożenia z jednym modułem jako przykład:
Uwaga
Ten przykładowy manifest wdrożenia używa schematu w wersji 1.1 dla agenta i centrum usługi IoT Edge. Wersja schematu 1.1 została wydana wraz z usługą IoT Edge w wersji 1.0.10 i włącza funkcje, takie jak kolejność uruchamiania modułu i priorytetyzacja tras.
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.5",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"upstream": "FROM /messages/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
Jeśli musisz określić, które urządzenia usługi IoT Edge można obecnie skonfigurować, uruchom polecenie IoT Edge: Pobierz informacje o urządzeniu.
Identyfikowanie urządzeń z warunkami docelowymi
Aby zidentyfikować urządzenia usługi IoT Edge, które mają odbierać wdrożenie, należy określić warunek docelowy. Warunek docelowy jest spełniony, gdy określone kryteria są zgodne z wartością deviceId, wartością tagu lub zgłoszoną wartością właściwości.
Tagi można skonfigurować w bliźniaczej reprezentacji urządzenia. Oto przykład bliźniaczej reprezentacji urządzenia z tagami:
"tags":{
"location":{
"building": "20",
"floor": "2"
},
"roomtype": "conference",
"environment": "prod"
}
To urządzenie otrzyma wdrożenie, jeśli warunek docelowy wdrożenia zawiera wyrażenie zgodne z jedną z wartości tagu, na przykład tag.location.building = '20'
.
Jeśli chcesz wskazać określone urządzenie niezależnie od jego tagów lub innych wartości, po prostu określ deviceId
warunek docelowy.
Oto kilka przykładów:
- deviceId ='linuxprod1'
- deviceId = "linuxprod1" OR deviceId = "linuxprod2" OR deviceId = "linuxprod3"
- tags.environment ='prod'
- tags.environment = 'prod' AND tags.location = 'westus2'
- tags.environment = 'prod' OR tags.location = 'westus2'
- tags.operator = 'John' AND tags.environment = 'prod' AND NOT deviceId = 'linuxprod1'
Aby uzyskać szczegółowe informacje, zobacz warunek docelowy. Aby uzyskać więcej informacji na temat bliźniaczych reprezentacji urządzeń i tagów, zobacz Omówienie bliźniaczych reprezentacji urządzeń i korzystanie z nich w usłudze IoT Hub.
Edytowanie bliźniaczej reprezentacji urządzenia
Bliźniacze reprezentacje urządzenia można edytować w programie Visual Studio Code, aby skonfigurować tagi. Z menu Widok wybierz pozycję Paleta poleceń i uruchom polecenie IoT Edge: Edytuj bliźniacze reprezentacje urządzenia. Wybierz urządzenie usługi IoT Edge i zostanie wyświetlona reprezentacja bliźniacza urządzenia.
W tym przykładzie nie zdefiniowano żadnych tagów. Zastąp bieżącą pustą sekcję "tags": {}
własną definicją tagów.
{
"deviceId": "myEdgeDevice",
"etag": "AAAAAAAAAAE=",
"deviceEtag": "NTgwMDg5MDAz",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00Z",
"connectionState": "Disconnected",
"lastActivityTime": "0001-01-01T00:00:00Z",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "2019-12-29T00:58:49.9315265Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "2019-12-29T00:58:49.9315265Z"
},
"$version": 1
}
},
"capabilities": {
"iotEdge": true
},
"deviceScope": "ms-azure-iot-edge://myEdgeDevice-637131779299315265",
"tags": {}
}
Po zapisaniu pliku lokalnego uruchom polecenie IoT Edge: Zaktualizuj bliźniacze reprezentacje urządzenia.
Tworzenie wdrożenia na dużą skalę
Po skonfigurowaniu manifestu wdrożenia i skonfigurowaniu tagów w bliźniaczej reprezentacji urządzenia możesz przystąpić do wdrożenia.
W menu Widok wybierz pozycję Paleta poleceń i wybierz polecenie Azure IoT Edge: Utwórz wdrożenie na dużą skalę.
Przejdź do pliku JSON manifestu wdrożenia, którego chcesz użyć, a następnie kliknij pozycję Wybierz manifest wdrożenia usługi Edge.
Podaj wartości zgodnie z monitem, zaczynając od identyfikatora wdrożenia.
Określ wartości tych parametrów:
Parametr | Opis |
---|---|
Identyfikator wdrożenia | Nazwa wdrożenia, które zostanie utworzone w centrum IoT. Nadaj wdrożeniu unikatową nazwę, która ma maksymalnie 128 małych liter. Unikaj spacji i następujących nieprawidłowych znaków: & ^ [ ] { } \ | " < > / . |
Warunek docelowy | Wprowadź warunek docelowy, aby określić, które urządzenia będą objęte tym wdrożeniem. Warunek jest oparty na tagach bliźniaczych reprezentacji urządzenia lub zgłoszonych właściwościach bliźniaczej reprezentacji urządzenia i powinien być zgodny z formatem wyrażenia. Na przykład tags.environment='test' and properties.reported.devicemodel='4000x' . |
Priorytet | Dodatnia liczba całkowita. Jeśli co najmniej dwa wdrożenia są przeznaczone dla tego samego urządzenia, wdrożenie o najwyższej wartości liczbowej dla priorytetu zostanie zastosowane. |
Po określeniu priorytetu terminal powinien wyświetlić dane wyjściowe podobne do przedstawionego poniżej:
[Edge] Start deployment with deployment id [{specified-value}] and target condition [{specified-value}]
[Edge] Deployment with deployment id [{specified-value}] succeeded.
Monitorowanie i modyfikowanie wdrożeń
Użyj witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure do monitorowania, modyfikowania i usuwania wdrożeń. Oba zapewniają metryki dotyczące wdrożeń.
Następne kroki
Dowiedz się więcej o wdrażaniu modułów na urządzeniach usługi IoT Edge.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla