Share via


İşleri zamanlama ve yayınlama (Azure CLI)

Milyonlarca cihazı güncelleştiren işleri zamanlamak ve izlemek için Azure IoT Hub kullanın. İşleri kullanarak:

  • İstenen özellikleri güncelleştirme
  • Etiketleri güncelleştirme
  • Doğrudan yöntemleri çağırma

Kavramsal olarak, bir iş bu eylemlerden birini sarmalar ve bir cihaz kümesinde yürütmenin ilerleme durumunu izler. bir işin etkileşim kurduğu cihaz kümesi, cihaz ikizi sorgusu tarafından tanımlanır. Örneğin bir arka uç uygulaması, bir cihaz ikizi sorgusu tarafından belirtilen ve gelecekte zamanlanan 10.000 cihazda yeniden başlatma yöntemini çağırmak için bir iş kullanabilir. Bu uygulama daha sonra bu cihazların her biri yeniden başlatma yöntemini aldığında ve yürütürken ilerleme durumunu izleyebilir.

Bu özelliklerin her biri hakkında daha fazla bilgiyi şu makalelerde bulabilirsiniz:

Not

Bu makalede açıklanan özellikler yalnızca standart IoT Hub 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ı seçme.

Bu makalede iki Azure CLI oturumu oluşturma adımları gösterilmektedir:

  • Simülasyon cihazı oluşturan oturum. Sanal cihaz, herhangi bir doğrudan yöntem çağrıldığında bir durum kodu ve JSON yükü döndürecek şekilde yapılandırılır.

  • İki zamanlanmış iş oluşturan bir oturum. İlk iş doğrudan bir yöntem çağırır ve ikinci iş, diğer oturumda oluşturulan simülasyon cihazında istenen cihaz ikizi özelliğini güncelleştirir.

Önkoşullar

  • Azure CLI. Bu makaledeki komutları, tarayıcınızda veya Windows Terminal gibi bir uygulamada çalışan etkileşimli bir CLI kabuğu olan Azure Cloud Shell 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 makale Azure CLI 2.36 veya sonraki bir sürümünü gerektirir. 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ğinizdeki bir IoT hub'ı. CLI veya Azure portal ile bir tane oluşturun.

  • Güvenlik duvarınızda 8883 numaralı bağlantı noktasının açık olduğundan emin olun. Bu makaledeki cihaz örneği, 8883 numaralı bağlantı noktası üzerinden iletişim kuran MQTT protokollerini kullanı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 bağlanma (MQTT).

Cloud Shell hazırlama

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

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

    Azure portal sayfa üst bilgisindeki Cloud Shell simgesini vurgulayan genel denetimlerin ekran görüntüsü.

    Not

    Cloud Shell ilk kez kullanıyorsanız, Cloud Shell kullanmak için gereken depolama alanı 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 Azure Cloud Shell penceresinin ekran görüntüsü.

İki CLI oturumu hazırlama

Ardından iki Azure CLI oturumu hazırlamanız gerekir. Cloud Shell kullanıyorsanız, bu oturumları ayrı Cloud Shell sekmelerde çalıştırırsınız. Yerel CLI istemcisi kullanıyorsanız, ayrı CLI örnekleri çalıştırırsınız. Aşağıdaki görevler için ayrı CLI oturumlarını kullanın:

  • İlk oturum, IoT hub'ınızla iletişim kuran bir IoT cihazının simülasyonunu oluşturur.
  • İkinci oturum, IoT hub'ınızla sanal cihazınız için işleri zamanlar.

Not

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

  1. İlk CLI oturumunda az extension add komutunu çalıştırın. Komut, CLI kabuğunuza Azure CLI için Microsoft Azure IoT Uzantısı'nı 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ü yüklemiş olmanız gerekir. Ş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.

  2. İkinci CLI oturumunu açın. tarayıcıda Cloud Shell kullanıyorsanız, ilk CLI oturumunuzun araç çubuğundaki Yeni oturum aç simgesini seçin. CLI'yi yerel olarak kullanıyorsanız ikinci bir CLI örneği açın.

    Araç çubuğundaki Yeni Oturum Aç simgesinin vurgulandığı Azure Cloud Shell penceresinin ekran görüntüsü.

Cihaz oluşturma ve simülasyonu

Bu bölümde, ilk CLI oturumunda IoT hub'ınız için bir cihaz kimliği oluşturacak ve ardından bu cihaz kimliğini kullanarak bir cihazın simülasyonunu oluşturacaksınız. Sanal cihaz, ikinci CLI oturumunda zamanladığınız işlere yanıt verir.

Simülasyon cihazı oluşturmak ve başlatmak için:

  1. İlk 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, simülasyon cihazınız için cihaz kimliğini oluşturur.

    {DeviceName}. Simülasyon 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. İlk CLI oturumunda, aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirerek az iot device simulate komutunu çalıştırın. Bu komut, önceki adımda oluşturduğunuz cihazın benzetimini gerçekleştirir. Sanal cihaz, doğrudan bir yöntem çağrıldığında bir durum kodu ve yük döndürecek şekilde yapılandırılır.

    {DeviceName}. Simülasyon cihazınızın adı.

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

    az iot device simulate --device-id {DeviceName} --hub-name {HubName} \
                           --method-response-code 201 \
                           --method-response-payload '{"result":"Direct method successful"}'
    

    İpucu

    Varsayılan olarak az iot device simulate komutu, iletiler arasında 3 saniyelik bir aralıkla 100 cihazdan buluta ileti gönderir. Simülasyon, tüm iletiler gönderildikten sonra sona erer. Benzetimi daha uzun süre çalıştırmak istiyorsanız, daha fazla ileti belirtmek için parametresini --msg-count veya --msg-interval iletiler arasında daha uzun bir aralık belirtmek için parametresini kullanabilirsiniz. Simülasyon cihazını yeniden başlatmak için komutunu yeniden çalıştırabilirsiniz.

Doğrudan yöntem çağırmak için bir iş zamanlama

Bu bölümde, ilk CLI oturumunda çalışan simülasyon cihazında doğrudan yöntem çağırmak için ikinci CLI oturumunda bir iş zamanlaacaksınız.

  1. İlk CLI oturumunda simülasyon cihazının çalıştığını onaylayın. Aksi takdirde, cihaz oluştur ve benzetimini gerçekleştir'denaz iot device simulate komutunu yeniden çalıştırarak yeniden başlatın.

  2. İkinci CLI oturumunda, aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirerek az iot hub job create komutunu çalıştırın. Bu örnekte cihaz için önceden var olan bir yöntem yoktur. komutu, simülasyon cihazında örnek yöntem adını çağıran ve yöntemin yükü için null değer sağlayan bir iş zamanlar. yöntemi, yanıtında bir durum kodu ve yük sağlar.

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

    {JobName}. Zamanlanmış işinizin adı. İş adları benzersizdir, bu nedenle bu komutu her çalıştırdığınızda farklı bir iş adı seçin.

    {MethodName}. Doğrudan yönteminizin adı. Simülasyon cihazının önceden var olan bir yöntemi yoktur, bu nedenle bu komut için istediğiniz herhangi bir adı seçebilirsiniz.

    {DeviceName}. Simülasyon cihazınızın adı.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleDeviceMethod \
                          --method-name {MethodName} --method-payload 'null' \
                          --query-condition "deviceId = '{DeviceName}'"
    

    İpucu

    Doğrudan bir yöntemi çağıran az iot hub job create komutunu zamanlarken, hem hem --method-payload de --method-name isteğe bağlı parametreler için değerler belirtmeniz gerekir. Yük kabul etmeyen doğrudan yöntemler için parametresini --method-payload belirtinnull.

  3. İlk CLI oturumunda, çıkışın yöntem çağırmasını gösterdiğini onaylayın. Aşağıdaki ekran görüntüsünde, önceki adımda CLI komutunda az iot hub job create sırasıyla ve {MethodName} yer tutucularını kullandıkSampleDeviceSampleMethod.{DeviceName}

    Bir yöntem çağrıldıktan sonra çıkışı görüntüleyen simülasyon cihazının ekran görüntüsü.

Cihaz ikizlerinin özelliklerini güncelleştirmek için iş zamanlama

Bu bölümde, ilk CLI oturumunda çalışan simülasyon cihazında istenen cihaz ikizi özelliğini güncelleştirmek için ikinci CLI oturumunda bir iş zamanlaacaksınız.

  1. İlk CLI oturumunda simülasyon cihazının çalıştığını onaylayın. Aksi takdirde, cihaz oluştur ve benzetimini gerçekleştir'denaz iot device simulate komutunu yeniden çalıştırarak yeniden başlatın.

  2. İkinci CLI oturumunda, aşağıdaki yer tutucuları karşılık gelen değerleriyle değiştirerek az iot hub job create komutunu çalıştırın. Bu örnekte, simülasyon cihazımız için istenen ikiz özelliğinin BuildingNo değerini 45 olarak ayarlamak için bir iş zamanlıyoruz.

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

    {JobName}. Zamanlanmış işinizin adı. İş adları benzersizdir, bu nedenle bu komutu her çalıştırdığınızda farklı bir iş adı seçin.

    {DeviceName}. Simülasyon cihazınızın adı.

    az iot hub job create --hub-name {HubName} --job-id {JobName} \
                          --job-type scheduleUpdateTwin \
                          --twin-patch '{"properties":{"desired": {"BuildingNo": 45}}}' \
                          --query-condition "deviceId = '{DeviceName}'"
    
  3. İlk CLI oturumunda çıktının bildirilen cihaz ikizi özelliği için başarılı güncelleştirmeyi gösterdiğini ve istenen cihaz ikizi özelliğinin de güncelleştirildiğini onaylayın.

    Cihaz ikizi özelliği güncelleştirildikten sonra çıkışı görüntüleyen simülasyon cihazının ekran görüntüsü.

Sonraki adımlar

Bu makalede, bir cihazın benzetimini yapmak ve doğrudan bir yöntem çalıştırmak ve bu simülasyon cihazı için cihaz ikizinin özelliklerini güncelleştirmek üzere işleri zamanlamak için Azure CLI'yı kullandınız.

IoT hub'ını ve cihaz yönetimi desenlerini keşfetmeye devam etmek için Raspberry Pi 3 B+ Başvuru Görüntüsünü kullanarak Azure IoT Hub öğreticisi için Cihaz Güncelleştirmesi'nde bir görüntüyü güncelleştirin.