Avvio rapido: Effettuare il provisioning di un dispositivo con chiave simmetrica simulata

In questa guida introduttiva si crea un dispositivo simulato nel computer Windows. Il dispositivo simulato è configurato per l'uso del meccanismo di attestazione della chiave simmetrica per l'autenticazione. Dopo aver configurato il dispositivo, eseguirne il provisioning nell'hub IoT usando il servizio Device Provisioning hub IoT di Azure.

Se non si ha familiarità con il processo di provisioning, vedere la panoramica del provisioning .

Questa guida introduttiva illustra una soluzione per una workstation basata su Windows. Tuttavia, è anche possibile eseguire le procedure in Linux. Per un esempio di Linux, vedere Esercitazione: provisioning per la latenza geografica.

Prerequisiti

  • Installare .NET SDK 6.0 o versione successiva nel computer basato su Windows. Per controllare la versione, è possibile usare il comando seguente.

    dotnet --info
    
  • Installare Python 3.7 o versione successiva installato nel computer basato su Windows. Per controllare la versione di Python, eseguire python --version.
  • Installare la versione più recente di Git. Assicurarsi che Git venga aggiunto alle variabili di ambiente accessibili alla finestra di comando. Vedere Strumenti client Git di Software Freedom Conservancy per la versione più recente degli strumenti da installare, che include Git Bash, l'app da riga di git comando che è possibile usare per interagire con il repository Git locale.

Preparare l'ambiente di sviluppo

In questa sezione viene preparato un ambiente di sviluppo usato per compilare Azure IoT C SDK. Il codice di esempio tenta di effettuare il provisioning del dispositivo durante la sequenza di avvio del dispositivo.

  1. Scaricare il sistema di compilazione CMake più recente.

    Importante

    Verificare che i prerequisiti di Visual Studio (Visual Studio e il carico di lavoro "Sviluppo di applicazioni desktop con C++") siano installati nel computer prima di avviare l'installazione CMake . Quando i prerequisiti sono pronti e il download è stato verificato, installare il sistema di compilazione CMake. Tenere inoltre presente che le versioni precedenti del sistema di compilazione CMake non riescono a generare il file di soluzione usato in questo articolo. Assicurarsi di usare la versione più recente di CMake.

  2. Aprire un Web browser e passare alla pagina Versione di Azure IoT C SDK.

  3. Selezionare la scheda Tag nella parte superiore della pagina.

  4. Copiare il nome del tag per la versione più recente di Azure IoT C SDK.

  5. Aprire un prompt dei comandi o la shell Git Bash. Eseguire i comandi seguenti per clonare la versione più recente del repository GitHub azure IoT Device SDK per C . Sostituire <release-tag> con il tag copiato nel passaggio precedente, ad esempio : 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
    

    Il completamento di questa operazione potrebbe richiedere alcuni minuti.

  6. Al termine dell'operazione, eseguire i comandi seguenti dalla azure-iot-sdk-c directory :

    mkdir cmake
    cd cmake
    
  7. L'esempio di codice usa una chiave simmetrica per fornire l'attestazione. Eseguire il comando seguente per compilare una versione dell'SDK specifica per la piattaforma client di sviluppo che include il client di provisioning dei dispositivi:

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

    Suggerimento

    Se cmake non trova il compilatore C++, potrebbero verificarsi errori di compilazione durante l'esecuzione del comando precedente. In tal caso, provare a eseguire il comando nel prompt dei comandi di Visual Studio.

  8. Al termine della compilazione, le ultime righe di output sono simili all'output seguente:

    $ 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. Aprire una shell CMD Git o un ambiente della riga di comando Bash Git.

  2. Clonare il repository GitHub azure IoT SDK per C# usando il comando seguente:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Aprire una shell CMD Git o un ambiente della riga di comando Bash Git.

  2. Clonare il repository GitHub di Azure IoT SDK per Node.js usando il comando seguente:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Aprire una shell CMD Git o un ambiente della riga di comando Bash Git.

  2. Clonare il repository GitHub azure IoT SDK per Python usando il comando seguente:

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

    Nota

    Gli esempi usati in questa esercitazione si trovano nel ramo v2 del repository azure-iot-sdk-python. La versione 3 di Python SDK è disponibile per l'uso nella versione beta.

  1. Aprire una shell CMD Git o un ambiente della riga di comando Bash Git.

  2. Clonare il repository GitHub azure IoT SDK per Java usando il comando seguente:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Passare alla directory radice azure-iot-sdk-java e compilare il progetto per scaricare tutti i pacchetti necessari. Il completamento di questo passaggio può richiedere alcuni minuti.

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

Creare una registrazione dei dispositivi

Il servizio Device Provisioning in Azure IoT supporta due tipi di registrazione:

Questo articolo illustra una registrazione singola per un singolo dispositivo di cui eseguire il provisioning con un hub IoT.

  1. Accedere al portale di Azure e aprire l'istanza del servizio Device Provisioning.

  2. Selezionare Gestisci registrazioni nella sezione Impostazioni del menu di spostamento.

  3. Selezionare la scheda Registrazioni singole, quindi selezionare Aggiungi registrazione singola.

    Screenshot that shows the add individual enrollment option.

  4. Nella pagina Registrazione e provisioning della pagina Aggiungi registrazione specificare le informazioni seguenti per configurare i dettagli della registrazione:

    Campo Descrizione
    Attestazione Selezionare Chiave simmetrica come meccanismo di attestazione.
    Impostazioni della chiave simmetrica Selezionare la casella Genera chiavi simmetriche automaticamente se si vogliono usare chiavi generate in modo casuale. Deselezionare questa casella se si desidera specificare chiavi personalizzate.
    ID registrazione Specificare un ID di registrazione univoco per il dispositivo.
    Stato del provisioning Selezionare la casella Abilita questa registrazione se si vuole che la registrazione sia disponibile per effettuare il provisioning del dispositivo. Deselezionare questa casella se si vuole disabilitare la registrazione. È possibile modificare questa impostazione in un secondo momento.
    Criteri di reprovisioning Scegliere un criterio di reprovisioning che rifletta il modo in cui si vuole che il servizio Device Provisioning gestisca i dispositivi che richiedono il provisioning. Per altre informazioni, vedere Criteri di reprovisioning.
  5. Selezionare Avanti: Hub IoT.

  6. Nella scheda Hub IoT della pagina Aggiungi registrazione specificare le informazioni seguenti per determinare gli hub IoT a cui la registrazione può effettuare il provisioning dei dispositivi:

    Campo Descrizione
    Hub IoT di destinazione Selezionare uno o più hub IoT collegati oppure aggiungere un nuovo collegamento a un hub IoT. Per altre informazioni sul collegamento degli hub IoT all'istanza del servizio Device Provisioning, vedere Come collegare e gestire hub IoT.
    Criteri di allocazione Se sono stati selezionati più hub IoT collegati, selezionare la modalità di assegnazione dei dispositivi ai diversi hub. Per altre informazioni sui criteri di allocazione, vedere Come usare i criteri di allocazione.

    Se è stato selezionato un solo hub IoT collegato, è consigliabile usare i criteri di distribuzione ponderati in modo uniforme.
  7. Selezionare Avanti: Impostazioni dispositivo

  8. Nella scheda Impostazioni dispositivo della pagina Aggiungi registrazione specificare le informazioni seguenti per definire la modalità di configurazione dei dispositivi di cui è stato appena effettuato il provisioning:

    Campo Descrizione
    ID dispositivo Specificare un ID dispositivo che verrà assegnato al dispositivo di cui è stato effettuato il provisioning in hub IoT. Se non si specifica un ID dispositivo, verrà usato l'ID di registrazione.
    IoT Edge Selezionare Abilita IoT Edge nei dispositivi di cui è stato effettuato il provisioning se il dispositivo di cui è stato effettuato il provisioning eseguirà Azure IoT Edge. Deselezionare questa casella se questa registrazione è per un dispositivo non abilitato per IoT Edge.
    Tag del dispositivo Usare questa casella di testo per specificare i tag da applicare al dispositivo gemello del dispositivo di cui è stato effettuato il provisioning.
    Proprietà desiderate Usare questa casella di testo per specificare le proprietà desiderate che si desidera applicare al dispositivo gemello del dispositivo di cui è stato effettuato il provisioning.

    Per altre informazioni, vedere Comprendere e usare dispositivi gemelli nell'hub IoT.

  9. Selezionare Avanti: Rivedi e crea.

  10. Nella scheda Rivedi e crea verificare tutti i valori e quindi selezionare Crea.

Dopo aver creato la registrazione singola, viene generata una chiave primaria e una chiave secondaria e aggiunta alla voce di registrazione. La chiave primaria viene usata nell'esempio di dispositivo più avanti in questa guida introduttiva.

  1. Per visualizzare la registrazione del dispositivo con chiave simmetrica simulata, selezionare la scheda Registrazioni singole.

  2. Selezionare l'ID di registrazione del dispositivo dall'elenco delle registrazioni singole.

  3. Copiare il valore della chiave primaria generata.

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

Preparare ed eseguire il codice di provisioning del dispositivo

In questa sezione si aggiorna il codice di esempio del dispositivo per inviare la sequenza di avvio del dispositivo all'istanza del servizio Device Provisioning. Questa sequenza di avvio fa sì che il dispositivo venga riconosciuto, autenticato e assegnato a un hub IoT collegato all'istanza del servizio Device Provisioning.

Il codice di provisioning di esempio esegue le attività seguenti, in ordine:

  1. Autentica il dispositivo con la risorsa Device Provisioning usando i tre parametri seguenti:

    • Ambito ID del servizio Device Provisioning
    • ID di registrazione per la registrazione del dispositivo.
    • Chiave simmetrica primaria per la registrazione del dispositivo.
  2. Assegna il dispositivo all'hub IoT già collegato all'istanza del servizio Device Provisioning.

Per aggiornare ed eseguire l'esempio di provisioning con le informazioni sul dispositivo:

  1. Nel menu principale del servizio Device Provisioning selezionare Panoramica.

  2. Copiare il valore ambito ID.

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

  3. In Visual Studio aprire il file di soluzione azure_iot_sdks.sln generato in precedenza tramite l'esecuzione di CMake. Il file di soluzione deve trovarsi nel percorso seguente:

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

    Suggerimento

    Se il file non è stato generato nella directory cmake, verificare di aver usato una versione recente del sistema di compilazione CMake.

  4. Nella finestra Esplora soluzioni di Visual Studio passare alla cartella Provision_Samples. Espandere il progetto di esempio denominato prov_dev_client_sample. Espandere File di origine e aprire prov_dev_client_sample.c.

  5. Trovare la id_scope costante e sostituire il valore con il valore ambito ID copiato nel passaggio 2.

    static const char* id_scope = "0ne00002193";
    
  6. Trovare la definizione per la funzione main() nello stesso file. Assicurarsi che la hsm_type variabile sia impostata su SECURE_DEVICE_TYPE_SYMMETRIC_KEY come illustrato nell'esempio seguente:

    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. Trovare la chiamata a prov_dev_set_symmetric_key_info() in prov_dev_client_sample.c impostata come commento.

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

    Rimuovere il commento dalla chiamata di funzione e sostituire i valori segnaposto (incluse le parentesi angolari) con l'ID registrazione del dispositivo e il valore della chiave primaria copiato in precedenza.

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

  9. Fare clic con il pulsante destro del mouse sul progetto prov_dev_client_sample e scegliere Imposta come progetto di avvio.

  10. Nel menu di Visual Studio selezionare Debug>Avvia senza eseguire debug per eseguire la soluzione. Quando viene chiesto di ricompilare il progetto, selezionare per ricompilare il progetto prima di eseguirlo.

    L'output seguente è un esempio di dispositivo che si connette correttamente all'istanza del servizio di provisioning da assegnare all'hub IoT:

    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:
    

Il codice di provisioning di esempio esegue le attività seguenti:

  1. Autentica il dispositivo con la risorsa Device Provisioning usando i tre parametri seguenti:

    • Ambito ID del servizio Device Provisioning
    • ID di registrazione per la registrazione del dispositivo.
    • Chiave simmetrica primaria per la registrazione del dispositivo.
  2. Assegna il dispositivo all'hub IoT già collegato all'istanza del servizio Device Provisioning.

  3. Invia un messaggio di telemetria di test all'hub IoT.

Per aggiornare ed eseguire l'esempio di provisioning con le informazioni sul dispositivo:

  1. Nel menu principale del servizio Device Provisioning selezionare Panoramica.

  2. Copiare il valore ambito ID.

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

  3. Aprire un prompt dei comandi e passare a SymmetricKeySample nel repository sdk clonato:

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample\'
    
  4. Nella cartella SymmetricKeySample aprire Parameters.cs in un editor di testo. Questo file mostra i parametri disponibili per l'esempio. In questo articolo vengono usati solo i primi tre parametri obbligatori durante l'esecuzione dell'esempio. Esaminare il codice in questo file. Non sono necessarie modifiche.

    Parametro Richiesto Descrizione
    --i oppure --IdScope Vero Ambito ID dell'istanza del servizio Device Provisioning
    --r oppure --RegistrationId Vero L'ID registrazione è una stringa senza distinzione tra maiuscole e minuscole (fino a 128 caratteri) di caratteri alfanumerici più i caratteri speciali: '-', '.', '_', ':'. L'ultimo carattere deve essere alfanumerico o trattino ('-').
    --p oppure --PrimaryKey Vero Chiave primaria della registrazione singola o della chiave del dispositivo derivata della registrazione del gruppo. Per informazioni su come generare la chiave derivata, vedere ComputeDerivedSymmetricKeySample.
    --g oppure --GlobalDeviceEndpoint Falso Endpoint globale a cui connettersi i dispositivi. L'impostazione predefinita è global.azure-devices-provisioning.net
    --t oppure --TransportType Falso Trasporto da usare per comunicare con l'istanza di device provisioning. Il valore predefinito è Mqtt. I valori possibili includono Mqtt, Mqtt_WebSocket_OnlyMqtt_Tcp_Only, Amqp, Amqp_WebSocket_Only, , Amqp_Tcp_onlye Http1.
  5. Nella cartella SymmetricKeySample aprire ProvisioningDeviceClientSample.cs in un editor di testo. Questo file mostra come viene usata la classe SecurityProviderSymmetricKey insieme alla classe ProvisioningDeviceClient per effettuare il provisioning del dispositivo con chiave simmetrica simulata. Esaminare il codice in questo file. Non sono necessarie modifiche.

  6. Compilare ed eseguire il codice di esempio usando il comando seguente:

    • Sostituire <id-scope> con l'ambitoID copiato nel passaggio 2.
    • Sostituire <registration-id> con l'IDdi registrazione fornito per la registrazione del dispositivo.
    • Sostituire <primarykey> con la chiave primaria copiata dalla registrazione del dispositivo.
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. Verrà ora visualizzato un risultato simile all'output seguente. Una stringa "TestMessage" viene inviata all'hub come messaggio di test.

    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.
    

Il codice di provisioning di esempio esegue le attività seguenti, in ordine:

  1. Autentica il dispositivo con la risorsa Device Provisioning usando i quattro parametri seguenti:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Assegna il dispositivo all'hub IoT già collegato all'istanza del servizio Device Provisioning.

  3. Invia un messaggio di telemetria di test all'hub IoT.

Per aggiornare ed eseguire l'esempio di provisioning con le informazioni sul dispositivo:

  1. Nel menu principale del servizio Device Provisioning selezionare Panoramica.

  2. Copiare i valori dell'ambito ID e dell'endpoint del dispositivo globale.

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

  3. Aprire un prompt dei comandi per l'esecuzione di comandi Node.js e passare alla directory seguente:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. Nella cartella provisioning/device/samples aprire register_symkey.js ed esaminare il codice. Si noti che il codice di esempio imposta un payload personalizzato:

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

    È possibile impostare come commento questo codice, perché non è necessario per questa guida introduttiva. Sarebbe necessario un payload personalizzato per usare una funzione di allocazione personalizzata per assegnare il dispositivo a un hub IoT. Per altre informazioni, vedere Esercitazione: Usare criteri di allocazione personalizzati.

    Il metodo provisioningClient.register() tenta di eseguire la registrazione del dispositivo.

    Non sono necessarie ulteriori modifiche.

  5. Nel prompt dei comandi eseguire i comandi seguenti per impostare le variabili di ambiente usate dall'esempio:

    • Sostituire <provisioning-global-endpoint> con l'endpoint del dispositivo globale copiato nel passaggio 2.
    • Sostituire <id-scope> con l'ambitoID copiato nel passaggio 2.
    • Sostituire <registration-id> con l'IDdi registrazione fornito per la registrazione del dispositivo.
    • Sostituire <primarykey> con la chiave primaria copiata dalla registrazione del dispositivo.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. Compilare ed eseguire il codice di esempio usando i comandi seguenti:

     npm install
    
    node register_symkey.js
    
  7. Verrà ora visualizzato un risultato simile all'output seguente. Una stringa "Hello World" viene inviata all'hub come messaggio di test.

    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
    

Il codice di provisioning di esempio esegue le attività seguenti, in ordine:

  1. Autentica il dispositivo con la risorsa Device Provisioning usando i quattro parametri seguenti:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Assegna il dispositivo all'hub IoT già collegato all'istanza del servizio Device Provisioning.

  3. Invia un messaggio di telemetria di test all'hub IoT.

Per aggiornare ed eseguire l'esempio di provisioning con le informazioni sul dispositivo:

  1. Nel menu principale del servizio Device Provisioning selezionare Panoramica.

  2. Copiare i valori dell'ambito ID e dell'endpoint del dispositivo globale.

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

  3. Aprire un prompt dei comandi e passare alla directory in cui si trova il file di esempio, provision_symmetric_key.py.

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. Nel prompt dei comandi eseguire i comandi seguenti per impostare le variabili di ambiente usate dall'esempio:

    • Sostituire <provisioning-global-endpoint> con l'endpoint del dispositivo globale copiato nel passaggio 2.
    • Sostituire <id-scope> con l'ambitoID copiato nel passaggio 2.
    • Sostituire <registration-id> con l'IDdi registrazione fornito per la registrazione del dispositivo.
    • Sostituire <primarykey> con la chiave primaria copiata dalla registrazione del dispositivo.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. Eseguire questo comando per installare la libreria azure-iot-device.

    pip install azure-iot-device
    
  6. Eseguire il codice di esempio Python in provision_symmetric_key.py.

    python provision_symmetric_key.py
    
  7. Verrà ora visualizzato un risultato simile all'output seguente. Alcuni messaggi di telemetria della velocità del vento vengono inviati anche all'hub come test.

    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
    

Il codice di provisioning di esempio esegue le attività seguenti, in ordine:

  1. Autentica il dispositivo con la risorsa Device Provisioning usando i quattro parametri seguenti:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Assegna il dispositivo all'hub IoT già collegato all'istanza del servizio Device Provisioning.

  3. Invia un messaggio di telemetria di test all'hub IoT.

Per aggiornare ed eseguire l'esempio di provisioning con le informazioni sul dispositivo:

  1. Nel menu principale del servizio Device Provisioning selezionare Panoramica.

  2. Copiare i valori dell'ambito ID e dell'endpoint del dispositivo globale. Questi valori sono rispettivamente i SCOPE_ID parametri e GLOBAL_ENDPOINT .

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

  3. Aprire il codice di esempio del dispositivo Java per la modifica. Il percorso completo del codice di esempio del dispositivo è:

    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. Impostare il valore delle variabili seguenti per il servizio Device Provisioning e la registrazione del dispositivo:

    • Sostituire <id-scope> con l'ambitoID copiato nel passaggio 2.
    • Sostituire <provisioning-global-endpoint> con l'endpoint del dispositivo globale copiato nel passaggio 2.
    • Sostituire <registration-id> con l'IDdi registrazione fornito per la registrazione del dispositivo.
    • Sostituire <primarykey> con la chiave primaria copiata dalla registrazione del dispositivo.
    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. Aprire un prompt dei comandi per la compilazione. Passare alla cartella del progetto di esempio di provisioning del repository Java SDK.

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. Compilare l'esempio.

    mvn clean install
    
  7. Passare alla target cartella ed eseguire il file creato .jar . java Nel comando sostituire il {version} segnaposto con la versione nel nome file nel .jar computer.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Verrà ora visualizzato un risultato simile all'output seguente.

    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
    

Confermare la registrazione del provisioning dei dispositivi

  1. Vai al portale di Azure.

  2. Nel menu a sinistra o nella pagina del portale selezionare Tutte le risorse.

  3. Selezionare l'hub IoT a cui è stato assegnato il dispositivo.

  4. Nel menu Gestione dei dispositivi selezionare Dispositivi.

  5. Se il provisioning del dispositivo è stato eseguito correttamente, l'ID dispositivo dovrebbe essere visualizzato nell'elenco, con Stato impostato su Abilitato. Se il dispositivo non è visualizzato, selezionare Aggiorna nella parte superiore della pagina.

    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.

Nota

Se si è modificato lo stato iniziale del dispositivo gemello rispetto al valore predefinito della voce di registrazione del dispositivo, è possibile eseguire il pull dello stato del dispositivo desiderato dall'hub e agire di conseguenza. Per altre informazioni, vedere Comprendere e usare dispositivi gemelli nell'hub IoT.

Pulire le risorse

Se si prevede di continuare a lavorare ed esplorare l'esempio client del dispositivo, non pulire le risorse create in questa guida introduttiva. Se non si prevede di continuare, seguire questa procedura per eliminare tutte le risorse create da questa guida introduttiva.

Eliminare la registrazione del dispositivo

  1. Chiudere la finestra di output di esempio di client del dispositivo sul computer.

  2. Nel menu a sinistra nella portale di Azure selezionare Tutte le risorse.

  3. Selezionare il servizio Device Provisioning.

  4. Nel menu Impostazioni selezionare Gestisci registrazioni.

  5. Selezionare la scheda Registrazioni singole.

  6. Selezionare la casella di controllo accanto all'ID di registrazione del dispositivo registrato in questa guida introduttiva.

  7. Nella parte superiore della pagina selezionare Elimina.

Eliminare la registrazione del dispositivo da hub IoT

  1. Nel menu a sinistra nella portale di Azure selezionare Tutte le risorse.

  2. Selezionare l'hub IoT.

  3. Nel menu Explorer selezionare Dispositivi IoT.

  4. Selezionare la casella di controllo accanto all'ID dispositivo del dispositivo registrato in questa guida introduttiva.

  5. Nella parte superiore della pagina selezionare Elimina.

Passaggi successivi

In questa guida introduttiva è stato effettuato il provisioning di un singolo dispositivo nell'hub IoT usando una registrazione singola. Successivamente, informazioni su come effettuare il provisioning di più dispositivi tra più hub.