Aracılığıyla paylaş


Azure CLI kullanarak IoT Hub modül kimliklerini ve modül ikizlerini kullanmaya başlama

Modül kimlikleri ve modül ikizleri , Azure IoT Hub cihaz kimliklerine ve cihaz ikizlerine benzer, ancak daha ayrıntılı bir ayrıntı sağlar. Azure IoT Hub cihaz kimlikleri ve cihaz ikizleri, bir arka uç uygulamasının cihazı yapılandırmasına ve cihazın koşullarına görünürlük sağlamasına olanak sağladığı gibi modül kimlikleri ve modül ikizleri de bir cihazın tek tek bileşenleri için bu özellikleri sağlar. İşletim sistemi cihazları veya üretici yazılımı cihazları gibi birden çok bileşeni olan yetenekli cihazlarda modül kimlikleri ve modül ikizleri, her bileşen için yalıtılmış yapılandırma ve koşullar sağlar.

Not

Bu makalede açıklanan özellikler yalnızca IoT Hub'ın standart katmanında kullanılabilir. Temel ve standart/ücretsiz IoT Hub katmanları hakkında daha fazla bilgi için bkz. Çözümünüz için doğru IoT Hub katmanını seçme.

Bu makalede şunları yaptığınız bir Azure CLI oturumu oluşturma adımları gösterilmektedir:

  • Bir cihaz kimliği oluşturun ve ardından bu cihaz için bir modül kimliği oluşturun.

  • Modül kimliğiyle ilişkili modül ikizi için istenen özellikler kümesini güncelleştirin.

Önkoşullar

  • Azure CLI. Bu makaledeki komutları, tarayıcınızda veya Windows Terminali gibi bir uygulamada çalışan etkileşimli bir CLI kabuğu olan Azure Cloud Shell'i kullanarak da çalıştırabilirsiniz. Cloud Shell kullanıyorsanız herhangi bir şey yüklemeniz gerekmez. CLI'yi yerel olarak kullanmayı tercih ediyorsanız, bu makalede Azure CLI sürüm 2.36 veya üzeri gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Azure CLI'yı yerel olarak yüklemek veya yükseltmek için bkz . Azure CLI'yi yükleme.

  • Azure aboneliğinizde bir IoT hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.

  • Güvenlik duvarınızda 8883 numaralı bağlantı noktasının açık olduğundan emin olun. Bu makaledeki örneklerde 8883 numaralı bağlantı noktası üzerinden iletişim kuran MQTT protokolü kullanılır. Bu bağlantı noktası bazı kurumsal ve eğitim ağı ortamlarında engellenebilir. Bu sorunu çözmenin daha fazla bilgi ve yolları için bkz . IoT Hub'a (MQTT) Bağlanma.

Modül kimlik doğrulaması

Modül kimliklerinin kimliğini doğrulamak için simetrik anahtarları veya X.509 sertifikalarını kullanabilirsiniz. X.509 sertifika kimlik doğrulaması için modülün sertifikasının gibi CN=<deviceid>/<moduleid>biçimlendirilmiş ortak adı (CN) olmalıdır. Örneğin:

openssl req -new -key d1m1.key.pem -out d1m1.csr -subj "/CN=device01\/module01"

Cloud Shell'i hazırlama

Azure Cloud Shell'i kullanmak istiyorsanız önce başlatmanız ve yapılandırmanız gerekir. CLI'yi yerel olarak kullanıyorsanız, CLI oturumu hazırlama bölümüne atlayın.

  1. Azure portalındaki sayfa üst bilgisinden Cloud Shell simgesini seçin.

    Azure portalının sayfa üst bilgisindeki cloud shell simgesini vurgulayan genel denetimlerin ekran görüntüsü.

    Not

    Cloud Shell'i ilk kez kullanıyorsanız, Cloud Shell'i kullanmak için gereken depolama alanını oluşturmanızı ister. Depolama hesabı ve Microsoft Azure Dosyaları paylaşımı oluşturmak için bir abonelik seçin.

  2. Tercih ettiğiniz CLI ortamını seçmek için Cloud Shell araç çubuğundaki ortam seçiciyi kullanın. Bu makalede Bash ortamı kullanılır. PowerShell ortamını da kullanabilirsiniz.

    Not

    Bazı komutlar Bash ve PowerShell ortamlarında farklı söz dizimi veya biçimlendirme gerektirir. Daha fazla bilgi için bkz . Azure CLI'yi başarıyla kullanmaya yönelik ipuçları.

    Araç çubuğundaki ortam seçiciyi vurgulayan Bir Azure Cloud Shell penceresinin ekran görüntüsü.

CLI oturumu hazırlama

Ardından bir Azure CLI oturumu hazırlamanız gerekir. Cloud Shell kullanıyorsanız, oturumu bir Cloud Shell sekmesinde çalıştırırsınız. Yerel CLI istemcisi kullanıyorsanız, oturumu bir CLI örneğinde çalıştırırsınız.

  1. Cloud Shell kullanıyorsanız sonraki adıma geçin. Aksi takdirde, Azure hesabınızda oturum açmak için CLI oturumunda az login komutunu çalıştırın.

    Cloud Shell kullanıyorsanız Azure hesabınızda otomatik olarak oturum açmış olursunuz. Azure CLI oturumunuz ile IoT hub'ınız arasındaki tüm iletişimlerin kimliği doğrulanır ve şifrelenir. Sonuç olarak, bu makalenin bağlantı dizesi gibi gerçek bir cihazla kullanacağınız fazladan kimlik doğrulamasına ihtiyacı yoktur. Azure CLI ile oturum açma hakkında daha fazla bilgi için bkz . Azure CLI ile oturum açma.

    az login
    
  2. CLI oturumunda az extension add komutunu çalıştırın. Komutu, AZURE CLI için Microsoft Azure IoT Uzantısı'nı CLI kabuğunuza ekler. Uzantı, Azure CLI'ya IoT Hub, IoT Edge ve IoT Cihaz Sağlama Hizmeti'ne (DPS) özgü komutlar ekler. Uzantıyı yükledikten sonra, herhangi bir Cloud Shell oturumunda yeniden yüklemeniz gerekmez.

    az extension add --name azure-iot
    

    Not

    Bu makalede Azure IoT uzantısının adlı azure-ioten yeni sürümü kullanılır. Eski sürüm olarak adlandırılır azure-cli-iot-ext. Bir kerede yalnızca bir sürümünüz yüklü olmalıdır. Şu anda yüklü olan uzantıları doğrulamak için komutunu az extension list kullanabilirsiniz.

    Uzantının eski sürümünü kaldırmak için kullanın az extension remove --name azure-cli-iot-ext .

    Uzantının yeni sürümünü eklemek için kullanın az extension add --name azure-iot .

    Hangi uzantıları yüklediğinizi görmek için kullanın az extension list.

Cihaz kimliği ve modül kimliği oluşturma

Bu bölümde, CLI oturumunda IoT hub'ınız için bir cihaz kimliği oluşturacak ve ardından bu cihaz kimliğini kullanarak bir modül kimliği oluşturacaksınız. Her cihaz kimliği altında en fazla 50 modül kimliği oluşturabilirsiniz.

Cihaz kimliği ve modül kimliği oluşturmak için:

  1. CLI oturumunda, aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirerek az iot hub device-identity create komutunu çalıştırın. Bu komut modülünüzün cihaz kimliğini oluşturur.

    {DeviceName}. Cihazınızın adı.

    {HubName}. IoT hub'ınızın adı.

    az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName} 
    
  2. CLI oturumunda, aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirerek az iot hub module-identity create komutunu çalıştırın. Bu komut, önceki adımda oluşturduğunuz cihaz kimliği altında modülünüzün modül kimliğini oluşturur.

    {DeviceName}. Cihazınızın adı.

    {HubName}. IoT hub'ınızın adı.

    {ModuleName}. Cihazınızın modülünün adı.

    az iot hub module-identity create --device-id {DeviceName} --hub-name {HubName} \
                                      --module-id {ModuleName}
    

Modül ikizini güncelleştirme

Bir modül kimliği oluşturulduktan sonra, IoT Hub’ında örtük olarak bir modül ikizi oluşturulur. Bu bölümde, CLI oturumunu kullanarak önceki bölümde oluşturduğunuz modül kimliğiyle ilişkili modül ikizinde istenen özellikler kümesini güncelleştireceksiniz.

  1. CLI oturumunda az iot hub module-twin update komutunu çalıştırarak aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirin. Bu örnekte, önceki bölümde oluşturduğumuz modül kimliği için modül ikizinde istenen birden çok özelliği güncelleştiriyoruz.

    {DeviceName}. Cihazınızın adı.

    {HubName}. IoT hub'ınızın adı.

    {ModuleName}. Cihazınızın modülünün adı.

    az iot hub module-twin update --device-id {DeviceName} --hub-name {HubName} \
                                  --module-id {ModuleName} \
                                  --desired '{"conditions":{"temperature":{"warning":75, "critical":100}}}'
    
  2. CLI oturumunda JSON yanıtının güncelleştirme işleminin sonuçlarını gösterdiğini onaylayın. Aşağıdaki JSON yanıt örneğinde, CLI komutunda sırasıyla ve {ModuleName} yer tutucularını kullandık SampleDevice SampleModule.{DeviceName} az iot hub module-twin update

    {
      "authenticationType": "sas",
      "capabilities": null,
      "cloudToDeviceMessageCount": 0,
      "connectionState": "Disconnected",
      "deviceEtag": "Mzg0OEN1NzW=",
      "deviceId": "SampleDevice",
      "deviceScope": null,
      "etag": "AAAAAAAAAAI=",
      "lastActivityTime": "0001-01-01T00:00:00+00:00",
      "modelId": "",
      "moduleId": "SampleModule",
      "parentScopes": null,
      "properties": {
        "desired": {
          "$metadata": {
            "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
            "$lastUpdatedVersion": 2,
            "conditions": {
              "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
              "$lastUpdatedVersion": 2,
              "temperature": {
                "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                "$lastUpdatedVersion": 2,
                "critical": {
                  "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                  "$lastUpdatedVersion": 2
                },
                "warning": {
                  "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                  "$lastUpdatedVersion": 2
                }
              }
            }
          },
          "$version": 2,
          "conditions": {
            "temperature": {
              "critical": 100,
              "warning": 75
            }
          }
        },
        "reported": {
          "$metadata": {
            "$lastUpdated": "0001-01-01T00:00:00Z"
          },
          "$version": 1
        }
      },
      "status": "enabled",
      "statusReason": null,
      "statusUpdateTime": "0001-01-01T00:00:00+00:00",
      "tags": null,
      "version": 3,
      "x509Thumbprint": {
        "primaryThumbprint": null,
        "secondaryThumbprint": null
      }
    }
    

Sonraki adımlar

IoT çözümünüzü genişletmek ve cihazlarda güncelleştirmeleri zamanlamak için Azure CLI'yı kullanmayı öğrenmek için bkz . İşleri zamanlama ve yayınlama.

IoT Hub'ı ve uçtan uca görüntü tabanlı güncelleştirme gibi cihaz yönetimi desenlerini kullanmaya devam etmek için Raspberry Pi 3 B+ Başvuru Görüntüsünü kullanarak Azure IoT Hub için Cihaz Güncelleştirmesi makalesine bakın.