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.
Azure portalındaki sayfa üst bilgisinden Cloud Shell simgesini seçin.
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.
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ı.
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.
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
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-iot
en yeni sürümü kullanılır. Eski sürüm olarak adlandırılırazure-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 komutunuaz 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:
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}
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.
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}}}'
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ıkSampleDevice
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin