Azure CLI ile Azure IoT Edge modüllerini dağıtma

Şunlar için geçerlidir:IoT Edge 1.4 checkmark IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.

İş mantığınızla Azure IoT Edge modülleri oluşturduktan sonra uçta çalışmak üzere bunları cihazlarınıza dağıtmak istersiniz. Verileri toplamak ve işlemek için birlikte çalışan birden çok modüle sahipseniz hepsini tek seferde dağıtabilirsiniz. Bunları bağlayan yönlendirme kurallarını da bildirebilirsiniz.

Azure CLI , IoT Edge gibi Azure kaynaklarını yönetmek için kullanılan açık kaynak platformlar arası bir komut satırı aracıdır. Azure IoT Hub kaynaklarını, cihaz sağlama hizmeti örneklerini ve bağlı hub'ları kullanıma hazır şekilde yönetmenizi sağlar. Yeni IoT uzantısı, Azure CLI'yi cihaz yönetimi ve tam IoT Edge özelliği gibi özelliklerle zenginleştirir.

Bu makalede JSON dağıtım bildirimi oluşturma ve ardından bu dosyayı kullanarak dağıtımı bir IoT Edge cihazına gönderme gösterilmektedir. Paylaşılan etiketlerine göre birden çok cihazı hedefleyen bir dağıtım oluşturma hakkında bilgi için bkz . Büyük ölçekte IoT Edge modüllerini dağıtma ve izleme

Ön koşullar

Dağıtım bildirimi yapılandırma

Dağıtım bildirimi, dağıtılacak modülleri, modüller arasında verilerin nasıl aktığını ve modül ikizlerinin istenen özelliklerini açıklayan bir JSON belgesidir. Dağıtım bildirimlerinin nasıl çalıştığı ve nasıl oluşturulacağı hakkında daha fazla bilgi için bkz . IoT Edge modüllerinin nasıl kullanılabileceğini, yapılandırılabileceğini ve yeniden kullanılabileceğini anlama.

Azure CLI kullanarak modülleri dağıtmak için dağıtım bildirimini yerel olarak .json dosyası olarak kaydedin. Yapılandırmayı cihazınıza uygulamak için komutunu çalıştırdığınızda sonraki bölümdeki dosya yolunu kullanırsınız.

Aşağıda örnek olarak tek modül içeren temel bir dağıtım bildirimi verilmiştir:

Dekont

Bu örnek dağıtım bildirimi, IoT Edge aracısı ve hub'ı için şema sürümü 1.1'i kullanır. Şema sürümü 1.1, IoT Edge sürüm 1.0.10 ile birlikte yayımlandı ve modül başlatma sırası ve yol önceliklendirmesi gibi özellikleri etkinleştirir.

{
  "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.1",
                "createOptions": "{}"
              }
            },
            "edgeHub": {
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.1",
                "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
              }
            }
          },
          "modules": {
            "SimulatedTemperatureSensor": {
              "version": "1.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
                "createOptions": "{}"
              }
            }
          }
        }
      },
      "$edgeHub": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "routes": {
            "upstream": "FROM /messages/* INTO $upstream"
          },
          "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
          }
        }
      },
      "SimulatedTemperatureSensor": {
        "properties.desired": {
          "SendData": true,
          "SendInterval": 5
        }
      }
    }
  }
}

Cihazınıza dağıtma

Modül bilgileriyle yapılandırdığınız dağıtım bildirimini uygulayarak modülleri cihazınıza dağıtırsınız.

Dizinleri dağıtım bildiriminizi kaydettiğiniz klasöre değiştirin. Visual Studio Code IoT Edge şablonlarından birini kullandıysanız, deployment.json dosyayı değil çözüm dizininizin yapılandırma klasöründe kullanın deployment.template.json .

Yapılandırmayı bir IoT Edge cihazına uygulamak için aşağıdaki komutu kullanın:

az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]

Cihaz kimliği parametresi büyük/küçük harfe duyarlıdır. İçerik parametresi, kaydettiğiniz dağıtım bildirimi dosyasını gösterir.

Screenshot showing the az iot edge set-modules command line output.

Cihazınızda modülleri görüntüleme

Modülleri cihazınıza dağıttıktan sonra, aşağıdaki komutla bunların tümünü görüntüleyebilirsiniz:

IoT Edge cihazınızda modülleri görüntüleme:

az iot hub module-identity list --device-id [device id] --hub-name [hub name]

Cihaz kimliği parametresi büyük/küçük harfe duyarlıdır.

Screenshot showing the az iot hub module-identity list command output.

Sonraki adımlar

IoT Edge modüllerini büyük ölçekte dağıtmayı ve izlemeyi öğrenin