Udostępnij za pośrednictwem


Wdrażanie modułów usługi IoT Edge na dużą skalę przy użyciu programu Visual Studio Code

Dotyczy: Znacznik wyboru usługi IoT Edge 1.5 IoT Edge 1.5 Znacznik wyboru usługi IoT Edge 1.4 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

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.

  1. W programie Visual Studio Code otwórz widok Eksploratora .

  2. W dolnej części Eksploratora rozwiń sekcję Azure IoT Hub .

  3. Kliknij pozycję ... w nagłówku sekcji usługi Azure IoT Hub . Jeśli nie widzisz wielokropka, umieść kursor nad nagłówkiem.

  4. Wybierz pozycję Wybierz centrum IoT Hub.

  5. Jeśli nie zalogowasz się do konta platformy Azure, postępuj zgodnie z instrukcjami, aby to zrobić.

  6. Wybierz subskrypcję platformy Azure.

  7. 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.

  1. W menu Widok wybierz pozycję Paleta poleceń i wybierz polecenie Azure IoT Edge: Utwórz wdrożenie na dużą skalę.

  2. Przejdź do pliku JSON manifestu wdrożenia, którego chcesz użyć, a następnie kliknij pozycję Wybierz manifest wdrożenia usługi Edge.

  3. Podaj wartości zgodnie z monitem, zaczynając od identyfikatora wdrożenia.

    Zrzut ekranu przedstawiający sposób określania 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.