Hızlı Başlangıç: Sanal simetrik anahtar cihazı sağlama

Bu hızlı başlangıçta, Windows makinenizde bir sanal cihaz oluşturacaksınız. Simülasyon cihazı, kimlik doğrulaması için simetrik anahtar kanıtlama mekanizmasını kullanacak şekilde yapılandırılır. Cihazınızı yapılandırdıktan sonra Azure IoT Hub Cihazı Sağlama Hizmeti'ni kullanarak IoT hub'ınıza sağlarsınız.

Sağlama işlemini bilmiyorsanız, sağlama genel bakışını gözden geçirin.

Bu hızlı başlangıçta Windows tabanlı iş istasyonu için bir çözüm gösterilmektedir. Ancak, Linux'ta yordamları da gerçekleştirebilirsiniz. Linux örneği için bkz . Öğretici: coğrafi gecikme süresi sağlama.

Önkoşullar

  • Windows tabanlı makinenize .NET SDK 6.0 veya üzerini yükleyin. Sürümünüzü denetlemek için aşağıdaki komutu kullanabilirsiniz.

    dotnet --info
    
  • Windows tabanlı makinenize yüklü Python 3.7 veya üzerini yükleyin. komutunu çalıştırarak python --versionPython sürümünüzü de kontrol edebilirsiniz.
  • En son Git sürümünü yükleyin. Git'in komut penceresi tarafından erişilebilen ortam değişkenlerine eklendiğinden emin olun. Yüklenecek araçların en son sürümü git için, yerel Git deponuzla etkileşim kurmak için kullanabileceğiniz komut satırı uygulaması Git Bash'i içeren Yazılım Özgürlüğü Koruması'nın Git istemci araçlarına bakın.

Geliştirme ortamınızı hazırlama

Bu bölümde, Azure IoT C SDK'sını oluşturmak için kullanılan bir geliştirme ortamı hazırlamış olursunuz. Örnek kod, cihazın önyükleme sırası sırasında cihazı sağlamayı dener.

  1. En son CMake derleme sistemini indirin.

    Önemli

    Yüklemeyi başlatmadan CMake önce makinenizde Visual Studio önkoşullarının (Visual Studio ve 'C++ile masaüstü geliştirme' iş yükü) yüklü olduğunu onaylayın. Önkoşullar sağlandıktan ve indirme doğrulandıktan sonra, CMake derleme sistemini yükleyin. Ayrıca, CMake derleme sisteminin eski sürümlerinin bu makalede kullanılan çözüm dosyasını oluşturamaya çalışmadığını unutmayın. CMake'nin en son sürümünü kullandığınızdan emin olun.

  2. Bir web tarayıcısı açın ve Azure IoT C SDK'sının Yayın sayfasına gidin.

  3. Sayfanın üst kısmındaki Etiketler sekmesini seçin.

  4. Azure IoT C SDK'sının en son sürümünün etiket adını kopyalayın.

  5. Komut istemini veya Git Bash kabuğunu açın. C GitHub deposu için Azure IoT Cihaz SDK'sının en son sürümünü kopyalamak için aşağıdaki komutları çalıştırın. değerini önceki adımda kopyaladığınız etiketle değiştirin <release-tag> , örneğin: lts_01_2023.

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    Bu işlemin tamamlanması birkaç dakika sürebilir.

  6. İşlem tamamlandığında dizinden azure-iot-sdk-c aşağıdaki komutları çalıştırın:

    mkdir cmake
    cd cmake
    
  7. Kod örneği, kanıtlama sağlamak için bir simetrik anahtar kullanır. Sdk'nın geliştirme istemci platformunuza özgü, cihaz sağlama istemcisini içeren bir sürümünü oluşturmak için aşağıdaki komutu çalıştırın:

    cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    

    İpucu

    cmake C++ derleyicinizi bulamazsa, yukarıdaki komutu çalıştırırken derleme hataları alabilirsiniz. Böyle bir durumda Visual Studio komut isteminde komutunu çalıştırmayı deneyin.

  8. Derleme başarıyla tamamlandığında, son birkaç çıkış satırı aşağıdaki çıkışa benzer:

    $ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
    -- The C compiler identification is MSVC 19.29.30040.0
    -- The CXX compiler identification is MSVC 19.29.30040.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    
  1. Git CMD veya Git Bash komut satırı ortamını açın.

  2. Aşağıdaki komutu kullanarak C# GitHub deposu için Azure IoT SDK'sını kopyalayın:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Git CMD veya Git Bash komut satırı ortamını açın.

  2. Aşağıdaki komutu kullanarak Node.js GitHub deposu için Azure IoT SDK'sını kopyalayın:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Git CMD veya Git Bash komut satırı ortamını açın.

  2. Aşağıdaki komutu kullanarak Python GitHub deposu için Azure IoT SDK'sını kopyalayın:

    git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
    

    Not

    Bu öğreticide kullanılan örnekler azure-iot-sdk-python deposunun v2 dalında yer alır. Python SDK'sının V3'leri beta sürümünde kullanılabilir.

  1. Git CMD veya Git Bash komut satırı ortamını açın.

  2. Aşağıdaki komutu kullanarak Java GitHub deposu için Azure IoT SDK'sını kopyalayın:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Kök azure-iot-sdk-java dizine gidin ve gerekli tüm paketleri indirmek için projeyi oluşturun. Bu adımın tamamlanması birkaç dakika sürebilir.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    

Cihaz kaydı oluşturma

Azure IoT Cihaz Sağlama Hizmeti iki tür kaydı destekler:

Bu makalede, ioT hub'ı ile sağlanacak tek bir cihaz için bireysel kayıt gösterilmektedir.

  1. Azure portalında oturum açın ve Cihaz Sağlama Hizmeti örneğine gidin.

  2. Gezinti menüsünün Ayarlar bölümünde Kayıtları yönet'i seçin.

  3. Bireysel kayıtlar sekmesini ve ardından Bireysel kayıt ekle'yi seçin.

    Screenshot that shows the add individual enrollment option.

  4. Kayıt ekle sayfasının Kayıt + sağlamasayfasında, kayıt ayrıntılarını yapılandırmak için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Tasdik Kanıtlama mekanizması olarak Simetrik anahtar'ı seçin.
    Simetrik anahtar ayarları Rastgele oluşturulan anahtarları kullanmak istiyorsanız Simetrik anahtarları otomatik olarak oluştur kutusunu işaretleyin. Kendi anahtarlarınızı sağlamak istiyorsanız bu kutunun işaretini kaldırın.
    Kayıt Kimliği Cihaz için benzersiz bir kayıt kimliği sağlayın.
    Sağlama durumu Bu kaydın cihazını sağlamak için kullanılabilir olmasını istiyorsanız Bu kaydı etkinleştir kutusunu işaretleyin. Kaydın devre dışı bırakılmasını istiyorsanız bu kutunun işaretini kaldırın. Bu ayarı daha sonra değiştirebilirsiniz.
    yeniden sağlama ilkesi DPS'nin yeniden sağlama isteyen cihazları nasıl işlemesini istediğinizi yansıtan bir yeniden sağlama ilkesi seçin. Daha fazla bilgi için bkz . İlkeleri yeniden sağlama.
  5. İleri: IoT hub'ları'ı seçin.

  6. Kayıt ekle sayfasının IoT hub'ları sekmesinde, kaydın cihazları hangi IoT hub'larına sağlayabileceğini belirlemek için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Hedef IoT hub'ları Bağlı IoT hub'larınızdan birini veya daha fazlasını seçin veya bir IoT hub'ına yeni bir bağlantı ekleyin. IoT hub'larını DPS örneğinize bağlama hakkında daha fazla bilgi edinmek için bkz . IoT hub'larını bağlama ve yönetme.
    Ayırma ilkesi Birden fazla bağlı IoT hub'ı seçtiyseniz cihazları farklı hub'lara nasıl atamak istediğinizi seçin. Ayırma ilkeleri hakkında daha fazla bilgi edinmek için bkz . Ayırma ilkelerini kullanma.

    Yalnızca bir bağlantılı IoT hub'ı seçtiyseniz, Eşit ağırlıklı dağıtım ilkesini kullanmanızı öneririz.
  7. İleri: Cihaz ayarları'nı seçin

  8. Kayıt ekle sayfasının Cihaz ayarları sekmesinde, yeni sağlanan cihazların nasıl yapılandırılacağını tanımlamak için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Cihaz Kimliği IoT Hub'da sağlanan cihaza atanacak bir cihaz kimliği sağlayın. Cihaz kimliği sağlamazsanız kayıt kimliği kullanılır.
    IoT Edge Sağlanan cihaz Azure IoT Edge çalıştıracaksa Sağlanan cihazlarda IoT Edge'i etkinleştir'i denetleyin. Bu kayıt IoT Edge özellikli olmayan bir cihaza yönelikse bu kutunun işaretini kaldırın.
    Cihaz etiketleri Sağlanan cihazın cihaz ikizi için uygulamak istediğiniz etiketleri sağlamak için bu metin kutusunu kullanın.
    İstenen özellikler Sağlanan cihazın cihaz ikizi için uygulamak istediğiniz tüm istenen özellikleri sağlamak için bu metin kutusunu kullanın.

    Daha fazla bilgi için bkz. IoT Hub'ındaki cihaz ikizlerini kavrama ve kullanma.

  9. Sonraki: Gözden geçirme ve oluşturma’yı seçin.

  10. Gözden Geçir + oluştur sekmesinde tüm değerlerinizi doğrulayın ve Oluştur'u seçin.

Bireysel kaydı oluşturduktan sonra birincil anahtar ve ikincil anahtar oluşturulur ve kayıt girişine eklenir. Bu hızlı başlangıcın devamında cihaz örneğinde birincil anahtarı kullanacaksınız.

  1. Sanal simetrik anahtar cihaz kaydınızı görüntülemek için Bireysel kayıtlar sekmesini seçin.

  2. Bireysel kayıtlar listesinden cihazınızın kayıt kimliğini seçin.

  3. Oluşturulan Birincil anahtarın değerini kopyalayın.

    Screenshot showing the enrollment details, highlighting the Copy button for the primary key of the device enrollment

Cihaz sağlama kodunu hazırlama ve çalıştırma

Bu bölümde, cihazın önyükleme sırasını Cihaz Sağlama Hizmeti örneğine göndermek için cihaz örnek kodunu güncelleştirirsiniz. Bu önyükleme sırası cihazın tanınmasına, kimliğinin doğrulanmasına ve Cihaz Sağlama Hizmeti örneğine bağlı bir IoT hub'ına atanmalarına neden olur.

Örnek sağlama kodu aşağıdaki görevleri sırayla gerçekleştirir:

  1. Aşağıdaki üç parametreyi kullanarak Cihazınızın Kimliğini Cihaz Sağlama kaynağınızla doğrular:

    • Cihaz Sağlama Hizmetinizin Kimlik Kapsamı
    • Cihaz kaydınızın kayıt kimliği.
    • Cihaz kaydınız için birincil simetrik anahtar.
  2. Cihazı, Cihaz Sağlama Hizmeti örneğiniz ile bağlantılı olan IoT hub'ına atar.

Sağlama örneğini cihaz bilgilerinizle güncelleştirmek ve çalıştırmak için:

  1. Cihaz Sağlama Hizmetinizin ana menüsünde Genel Bakış'ı seçin.

  2. Kimlik Kapsamı değerini kopyalayın.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the ID Scope value for the instance.

  3. Visual Studio’da, CMake çalıştırılarak oluşturulan azure_iot_sdks.sln çözüm dosyasını açın. Çözüm dosyası şu konumda olmalıdır:

    
    \azure-iot-sdk-c\cmake\azure_iot_sdks.sln
    
    

    İpucu

    Dosya cmake dizininizde oluşturulmadıysa, CMake derleme sisteminin son sürümünü kullandığınızdan emin olun.

  4. Visual Studio'nun Çözüm Gezgini penceresinde Provision_Samples klasörüne gidin. prov_dev_client_sample adlı örnek projeyi genişletin. Kaynak Dosyalar'ı genişletin ve prov_dev_client_sample.c dosyasını açın.

  5. Sabiti id_scope bulun ve değerini 2. adımda kopyaladığınız Kimlik Kapsamı değeriyle değiştirin.

    static const char* id_scope = "0ne00002193";
    
  6. Aynı dosyada main() işlevinin tanımını bulun. Değişkenin hsm_type aşağıdaki örnekte gösterildiği gibi olarak ayarlandığından SECURE_DEVICE_TYPE_SYMMETRIC_KEY emin olun:

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    //hsm_type = SECURE_DEVICE_TYPE_X509;
    hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
    
  7. prov_dev_client_sample.c'de açıklama satırı yapılan aramasını prov_dev_set_symmetric_key_info() bulun.

    // Set the symmetric key if using they auth type
    //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
    

    İşlev çağrısının açıklamasını kaldırın ve yer tutucu değerlerini (köşeli ayraçlar dahil) cihazınızın kayıt kimliği ve daha önce kopyaladığınız birincil anahtar değeriyle değiştirin.

    // Set the symmetric key if using they auth type
    prov_dev_set_symmetric_key_info("symm-key-device-007", "your primary key here");
    
  8. Dosyayı kaydedin.

  9. prov_dev_client_sample projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin.

  10. Çözümü çalıştırmak için Visual Studio menüsünde Hata Ayıkla>Hata ayıklama olmadan başlat'ı seçin. Projeyi yeniden oluşturma isteminde, çalıştırmadan önce projeyi yeniden derlemek için Evet'i seçin.

    Aşağıdaki çıkış, ioT hub'ına atanacak sağlama Hizmeti örneğine başarıyla bağlanan bir cihaz örneğidir:

    Provisioning API Version: 1.2.8
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: device-007
    Press enter key to exit:
    

Örnek sağlama kodu aşağıdaki görevleri gerçekleştirir:

  1. Aşağıdaki üç parametreyi kullanarak Cihazınızın Kimliğini Cihaz Sağlama kaynağınızla doğrular:

    • Cihaz Sağlama Hizmetinizin Kimlik Kapsamı
    • Cihaz kaydınızın kayıt kimliği.
    • Cihaz kaydınız için birincil simetrik anahtar.
  2. Cihazı, Cihaz Sağlama Hizmeti örneğiniz ile bağlantılı olan IoT hub'ına atar.

  3. IoT hub'ına bir test telemetri iletisi gönderir.

Sağlama örneğini cihaz bilgilerinizle güncelleştirmek ve çalıştırmak için:

  1. Cihaz Sağlama Hizmetinizin ana menüsünde Genel Bakış'ı seçin.

  2. Kimlik Kapsamı değerini kopyalayın.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the ID Scope value for the instance.

  3. Bir komut istemi açın ve kopyalanan sdk deposundaki SymmetricKeySample'a gidin:

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample\'
    
  4. SymmetricKeySample klasöründe, Parameters.cs bir metin düzenleyicisinde açın. Bu dosya, örnek için kullanılabilir parametreleri gösterir. Bu makalede örneği çalıştırırken yalnızca ilk üç gerekli parametre kullanılır. Bu dosyadaki kodu gözden geçirin. Değişiklik gerekmez.

    Parametre Zorunlu Açıklama
    --i veya --IdScope True DPS örneğinin Kimlik Kapsamı
    --r veya --RegistrationId True Kayıt kimliği, alfasayısal karakterlerin yanı sıra özel karakterler içeren büyük/küçük harfe duyarlı olmayan bir dizedir (en fazla 128 karakter uzunluğundadır): '-', '.', '_', ':'. Son karakter alfasayısal veya tire ('-') olmalıdır.
    --p veya --PrimaryKey True Bireysel kaydın birincil anahtarı veya grup kaydının türetilmiş cihaz anahtarı. Türetilmiş anahtarın nasıl oluşturulacağı hakkında bilgi için bkz. ComputeDerivedSymmetricKeySample.
    --g veya --GlobalDeviceEndpoint False Cihazların bağlanabilmesi için genel uç nokta. Varsayılan değer: global.azure-devices-provisioning.net
    --t veya --TransportType False Cihaz sağlama örneğiyle iletişim kurmak için kullanılacak aktarım. varsayılan değeridir Mqtt. Olası değerler , , Mqtt_WebSocket_Only, Mqtt_Tcp_Only, Amqp, Amqp_WebSocket_Only, Amqp_Tcp_onlyve Http1değerlerini içerirMqtt.
  5. SymmetricKeySample klasöründe, ProvisioningDeviceClientSample.cs bir metin düzenleyicisinde açın. Bu dosya, sanal simetrik anahtar cihazınızı sağlamak için ProvisioningDeviceClient sınıfıyla birlikte SecurityProviderSymmetricKey sınıfının nasıl kullanıldığını gösterir. Bu dosyadaki kodu gözden geçirin. Değişiklik gerekmez.

  6. Aşağıdaki komutu kullanarak örnek kodu derleyin ve çalıştırın:

    • değerini, 2. adımda kopyaladığınız Kimlik Kapsamı ile değiştirin<id-scope>.
    • değerini, cihaz kaydı için sağladığınız Kayıt Kimliği ile değiştirin<registration-id>.
    • değerini, cihaz kaydından kopyaladığınız Birincil Anahtar ile değiştirin<primarykey>.
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. Şimdi aşağıdaki çıkışa benzer bir şey görmeniz gerekir. Hub'a test iletisi olarak bir "TestMessage" dizesi gönderilir.

    D:\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample>dotnet run --i 0ne00000A0A --r symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

Örnek sağlama kodu aşağıdaki görevleri sırayla gerçekleştirir:

  1. Aşağıdaki dört parametreyi kullanarak Cihazınızın Kimliğini Cihaz Sağlama kaynağınızla doğrular:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Cihazı, Cihaz Sağlama Hizmeti örneğiniz ile bağlantılı olan IoT hub'ına atar.

  3. IoT hub'ına bir test telemetri iletisi gönderir.

Sağlama örneğini cihaz bilgilerinizle güncelleştirmek ve çalıştırmak için:

  1. Cihaz Sağlama Hizmetinizin ana menüsünde Genel Bakış'ı seçin.

  2. Kimlik Kapsamı ve Genel cihaz uç noktası değerlerini kopyalayın.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Node.js komutları yürütmek için bir komut istemi açın ve aşağıdaki dizine gidin:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. Sağlama/cihaz/örnekler klasöründe register_symkey.js açın ve kodu gözden geçirin. Örnek kodun özel bir yük ayarlandığını fark edin:

    provisioningClient.setProvisioningPayload({a: 'b'});
    

    Bu hızlı başlangıç için gerekli olmadığından bu kodu açıklama satırı yapabilirsiniz. Cihazınızı bir IoT hub'ına atamak için özel bir ayırma işlevi kullanmak istediğinizde özel bir yük gerekir. Daha fazla bilgi için bkz . Öğretici: Özel ayırma ilkelerini kullanma.

    provisioningClient.register() yöntemi, cihazınızın kaydını dener.

    Başka değişiklik yapılması gerekmez.

  5. Komut isteminde aşağıdaki komutları çalıştırarak örnek tarafından kullanılan ortam değişkenlerini ayarlayın:

    • değerini, 2. adımda kopyaladığınız Genel cihaz uç noktasıyla değiştirin<provisioning-global-endpoint>.
    • değerini, 2. adımda kopyaladığınız Kimlik Kapsamı ile değiştirin<id-scope>.
    • değerini, cihaz kaydı için sağladığınız Kayıt Kimliği ile değiştirin<registration-id>.
    • değerini, cihaz kaydından kopyaladığınız Birincil Anahtar ile değiştirin<primarykey>.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. Aşağıdaki komutları kullanarak örnek kodu derleyin ve çalıştırın:

     npm install
    
    node register_symkey.js
    
  7. Şimdi aşağıdaki çıkışa benzer bir şey görmeniz gerekir. Hub'a test iletisi olarak bir "Merhaba Dünya" dizesi gönderilir.

    D:\azure-iot-samples-csharp\provisioning\device\samples>node register_symkey.js
    registration succeeded
    assigned hub=ExampleIoTHub.azure-devices.net
    deviceId=nodejs-device-01
    payload=undefined
    Client connected
    send status: MessageEnqueued
    

Örnek sağlama kodu aşağıdaki görevleri sırayla gerçekleştirir:

  1. Aşağıdaki dört parametreyi kullanarak Cihazınızın Kimliğini Cihaz Sağlama kaynağınızla doğrular:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Cihazı, Cihaz Sağlama Hizmeti örneğiniz ile bağlantılı olan IoT hub'ına atar.

  3. IoT hub'ına bir test telemetri iletisi gönderir.

Sağlama örneğini cihaz bilgilerinizle güncelleştirmek ve çalıştırmak için:

  1. Cihaz Sağlama Hizmetinizin ana menüsünde Genel Bakış'ı seçin.

  2. Kimlik Kapsamı ve Genel cihaz uç noktası değerlerini kopyalayın.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Bir komut istemi açın ve örnek dosyanın (provision_symmetric_key.py) bulunduğu dizine gidin.

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. Komut isteminde aşağıdaki komutları çalıştırarak örnek tarafından kullanılan ortam değişkenlerini ayarlayın:

    • değerini, 2. adımda kopyaladığınız Genel cihaz uç noktasıyla değiştirin<provisioning-global-endpoint>.
    • değerini, 2. adımda kopyaladığınız Kimlik Kapsamı ile değiştirin<id-scope>.
    • değerini, cihaz kaydı için sağladığınız Kayıt Kimliği ile değiştirin<registration-id>.
    • değerini, cihaz kaydından kopyaladığınız Birincil Anahtar ile değiştirin<primarykey>.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. Aşağıdaki komutu çalıştırarak azure-iot-device kitaplığını yükleyin.

    pip install azure-iot-device
    
  6. python örnek kodunu provision_symmetric_key.py çalıştırın.

    python provision_symmetric_key.py
    
  7. Şimdi aşağıdaki çıkışa benzer bir şey görmeniz gerekir. Bazı örnek rüzgar hızı telemetri iletileri de test olarak hub'a gönderilir.

    D:\azure-iot-sdk-python\samples\async-hub-scenarios>python provision_symmetric_key.py
    RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2.  Setting timer.
    The complete registration result is
    python-device-008
    docs-test-iot-hub.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #8
    sending message #9
    sending message #3
    sending message #10
    sending message #4
    sending message #2
    sending message #6
    sending message #7
    sending message #1
    sending message #5
    done sending message #8
    done sending message #9
    done sending message #3
    done sending message #10
    done sending message #4
    done sending message #2
    done sending message #6
    done sending message #7
    done sending message #1
    done sending message #5
    

Örnek sağlama kodu aşağıdaki görevleri sırayla gerçekleştirir:

  1. Aşağıdaki dört parametreyi kullanarak Cihazınızın Kimliğini Cihaz Sağlama kaynağınızla doğrular:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Cihazı, Cihaz Sağlama Hizmeti örneğiniz ile bağlantılı olan IoT hub'ına atar.

  3. IoT hub'ına bir test telemetri iletisi gönderir.

Sağlama örneğini cihaz bilgilerinizle güncelleştirmek ve çalıştırmak için:

  1. Cihaz Sağlama Hizmetinizin ana menüsünde Genel Bakış'ı seçin.

  2. Kimlik Kapsamı ve Genel cihaz uç noktası değerlerini kopyalayın. Bu değerler sırasıyla sizin ve GLOBAL_ENDPOINT parametrelerinizdirSCOPE_ID.

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Düzenlemek için Java cihaz örnek kodunu açın. Cihaz örnek kodunun tam yolu:

    azure-iot-sdk-java/provisioning/provisioning-device-client-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java

  4. DPS'niz ve cihaz kaydınız için aşağıdaki değişkenlerin değerini ayarlayın:

    • değerini, 2. adımda kopyaladığınız Kimlik Kapsamı ile değiştirin<id-scope>.
    • değerini, 2. adımda kopyaladığınız Genel cihaz uç noktasıyla değiştirin<provisioning-global-endpoint>.
    • değerini, cihaz kaydı için sağladığınız Kayıt Kimliği ile değiştirin<registration-id>.
    • değerini, cihaz kaydından kopyaladığınız Birincil Anahtar ile değiştirin<primarykey>.
    private static final String SCOPE_ID = "<id-scope>";
    private static final String GLOBAL_ENDPOINT = "<provisioning-global-endpoint>";
    private static final String SYMMETRIC_KEY = "<primarykey>";
    private static final String REGISTRATION_ID = "<registration-id>";
    
  5. Oluşturmak için bir komut istemi açın. Java SDK deposunun sağlama örnek proje klasörüne gidin.

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. Örneği derleyin.

    mvn clean install
    
  7. Klasöre target gidin ve oluşturulan .jar dosyayı yürütür. komutunda java yer tutucusunu {version} makinenizdeki dosya adında bulunan .jar sürümle değiştirin.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Şimdi aşağıdaki çıkışa benzer bir şey görmeniz gerekir.

    Starting...
    Beginning setup.
    Initialized a ProvisioningDeviceClient instance using SDK version 1.11.0
    Starting provisioning thread...
    Waiting for Provisioning Service to register
    Opening the connection to device provisioning service...
    Connection to device provisioning service opened successfully, sending initial device registration message
    Authenticating with device provisioning service using symmetric key
    Waiting for device provisioning service to provision this device...
    Current provisioning status: ASSIGNING
    Device provisioning service assigned the device successfully
    IotHUb Uri : <Your IoT hub name>.azure-devices.net
    Device ID : java-device-007
    Sending message from device to IoT Hub...
    Press any key to exit...
    Message received! Response status: OK_EMPTY
    

Cihaz sağlama kaydınızı onaylayın

  1. Azure portalına gidin.

  2. Sol taraftaki menüden veya portal sayfasında Tüm kaynaklar'ı seçin.

  3. Cihazınızın atandığı IoT hub'ını seçin.

  4. Cihaz yönetimi menüsünde Cihazlar'ı seçin.

  5. Cihazınız başarıyla sağlandıysa, cihaz kimliği listede Durum Etkin olarak ayarlı olarak görünmelidir. Cihazınızı görmüyorsanız sayfanın üst kısmındaki Yenile'yi seçin.

    Screenshot showing that the device is registered with the IoT hub and enabled for the C example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the C# example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Node.js example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Python example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Java example.

Not

Cihazınız için başlangıç cihaz ikizi durumu ayarının kayıt girişindeki varsayılan değerini değiştirdiyseniz istenen ikili durumu hub'dan çekerek ona göre hareket edebilir. Daha fazla bilgi için bkz. IoT Hub'ındaki cihaz ikizlerini kavrama ve kullanma.

Kaynakları temizleme

Cihaz istemci örneği üzerinde çalışmaya ve keşfetmeye devam etmek istiyorsanız, bu hızlı başlangıçta oluşturulan kaynakları temizlemeyin. Devam etmek istemiyorsanız, bu hızlı başlangıç tarafından oluşturulan tüm kaynakları silmek için aşağıdaki adımları kullanın.

Cihaz kaydınızı silme

  1. Makinenizde cihaz istemci örnek çıktı penceresini kapatın.

  2. Azure portalının sol tarafındaki menüden Tüm kaynaklar'ı seçin.

  3. Cihaz Sağlama Hizmetinizi seçin.

  4. Ayarlar menüsünde Kayıtları yönet'i seçin.

  5. Bireysel kayıtlar sekmesini seçin.

  6. Bu hızlı başlangıçta kaydettiğiniz cihazın kayıt kimliğinin yanındaki onay kutusunu seçin.

  7. Sayfanın üst kısmından Sil’i seçin.

IoT Hub'dan cihaz kaydınızı silme

  1. Azure portalının sol tarafındaki menüden Tüm kaynaklar'ı seçin.

  2. IoT hub'ınızı seçin.

  3. Explorers menüsünde IoT cihazları'nı seçin.

  4. Bu hızlı başlangıçta kaydettiğiniz cihazın cihaz kimliğinin yanındaki onay kutusunu seçin.

  5. Sayfanın üst kısmından Sil’i seçin.

Sonraki adımlar

Bu hızlı başlangıçta, tek bir kayıt kullanarak IoT hub'ınıza tek bir cihaz sağladınız. Ardından, birden çok hub'da birden çok cihaz sağlamayı öğrenin.