Início Rápido: Provisionar um dispositivo simulado de chave simétrica

Neste início rápido, você cria um dispositivo simulado no seu computador Windows. O dispositivo simulado está configurado para usar o mecanismo de atestado de chave simétrica para autenticação. Depois que você configurou seu dispositivo, você então o provisiona no seu hub IoT usando o Serviço de Provisionamento de Dispositivos no Hub IoT do Azure.

Se você não estiver familiarizado com o processo de provisionamento, examine a visão geral de provisionamento.

Este guia de início rápido demonstra uma solução para uma estação de trabalho baseada em Windows. No entanto, também é possível executar os procedimentos no Linux. Para um exemplo do Linux, consulte Tutorial: provisão para latência geográfica.

Pré-requisitos

  • Instale o SDK do .NET 6.0 ou posterior no computador baseado no Windows. Use o comando a seguir para verificar a versão.

    dotnet --info
    
  • Instale o Python 3.7 ou posterior no computador baseado no Windows. Verifique sua versão do Python executando python --version.
  • Instale a versão mais recente do Git. Verifique se o Git foi adicionado às variáveis de ambiente que podem ser acessadas pela janela de comando. Confira Ferramentas de cliente Git do Software Freedom Conservancy para obter a versão mais recente das ferramentas git a serem instaladas, que inclui o Git Bash, o aplicativo de linha de comando que você pode usar para interagir com seu repositório Git local.

Preparar seu ambiente de desenvolvimento

Nesta seção, você prepara um ambiente de desenvolvimento usado para compilar o SDK de C do IoT do Azure. O código de exemplo tenta provisionar o dispositivo durante a sequência de inicialização do dispositivo.

  1. Baixe o sistema de build CMake mais recente.

    Importante

    Confirme que os pré-requisitos do Visual Studio (Visual Studio e a carga de trabalho de 'Desenvolvimento para Desktop com C++') estão instalados no computador antes de iniciar a instalação de CMake. Após a instalação dos pré-requisitos e verificação do download, instale o sistema de compilação CMake. Além disso, esteja ciente de que as versões mais antigas do sistema de build CMake não geram o arquivo de solução usado neste artigo. Use a versão mais recente do CMake.

  2. Abra um navegador da Web e acesse a página de versão do SDK do Azure IoT para C.

  3. Selecione a guia Marcas na parte superior da página.

  4. Copie o nome da marca para a versão mais recente do SDK do Azure IoT para C.

  5. Abra um prompt de comando ou o shell Bash do Git. Execute os seguintes comandos para clonar a última versão do repositório do GitHub do SDK do dispositivo IoT do Azure para C. Substitua <release-tag> pela marca que você copiou na etapa anterior, por exemplo: 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
    

    Essa operação pode levar vários minutos para ser concluída.

  6. Quando a operação for concluída, execute os seguintes comandos no diretório azure-iot-sdk-c:

    mkdir cmake
    cd cmake
    
  7. O exemplo de código usa uma chave simétrica para fornecer atestado. Execute o seguinte comando para compilar uma versão do SDK específica para sua plataforma de cliente de desenvolvimento que inclui o cliente de provisionamento de dispositivos:

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

    Dica

    Se cmake não encontrar o compilador do C++, você poderá obter erros de build ao executar o comando acima. Se isso acontecer, tente executar o comando no prompt de comando do Visual Studio.

  8. Quando o build for concluído com êxito, as últimas linhas da saída serão semelhantes à seguinte saída:

    $ 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. Abra um ambiente de linha de comando Git CMD ou Git Bash.

  2. Clone o repositório do GitHub do SDK da IoT do Azure para C# usando o seguinte comando:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Abra um ambiente de linha de comando Git CMD ou Git Bash.

  2. Clone o repositório GitHub SDK do Azure IoT para Node.js usando o seguinte comando:

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Abra um ambiente de linha de comando Git CMD ou Git Bash.

  2. Clone o repositório GitHub SDK do Azure IoT para Python usando o seguinte comando:

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

    Observação

    Os exemplos usados neste tutorial estão na ramificação v2 do repositório azure-iot-sdk-python. A V3 do SDK do Python está disponível para uso na versão beta.

  1. Abra um ambiente de linha de comando Git CMD ou Git Bash.

  2. Clone o repositório GitHub SDK do Azure IoT para Java usando o seguinte comando:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. Acesse o diretório azure-iot-sdk-java raiz e crie o projeto para baixar todos os pacotes necessários. Essa etapa pode levar vários minutos para ser concluída.

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

Criar um registro do dispositivo

O Serviço de Provisionamento de Dispositivos de IoT do Azure dá suporte a dois tipos de registros:

Este artigo demonstra um registro individual de um único dispositivo a ser provisionado com um Hub IoT.

  1. Entre no portal do Azure e navegue até instância do Serviço de Provisionamento de Dispositivos.

  2. Selecione Gerenciar registros na seção Configurações do menu de navegação.

  3. Selecione a guia Registros individuais e, em seguida, selecione Adicionar registro individual.

    Screenshot that shows the add individual enrollment option.

  4. Na guia Registro + provisionamento da página Adicionar registro, forneça as seguintes informações para configurar os detalhes do registro:

    Campo Descrição
    Atestado Selecione Chave simétrica como o Mecanismo de atestado.
    Configurações de chave simétrica Marque a caixa Gerar chaves simétricas automaticamente se você quiser usar chaves geradas aleatoriamente. Desmarque essa caixa se quiser fornecer suas próprias chaves.
    ID de registro Forneça uma ID de registro exclusiva para o dispositivo.
    Status do provisionamento Marque a caixa Habilitar este registro se quiser que esse registro esteja disponível para provisionar seu dispositivo. Desmarque essa caixa se quiser que o registro seja desabilitado. Você poderá alterar essa configuração mais tarde.
    Reprovisionar política Escolha uma política de reprovisionamento que reflita como você deseja que o DPS manipule os dispositivos que solicitam o reprovisionamento. Para obter mais informações, confira Reprovisionar políticas.
  5. Selecione Próximo: hubs IoT.

  6. Na guia Hubs IoT da página Adicionar registro, forneça as seguintes informações para determinar para quais hubs IoT o registro pode provisionar dispositivos:

    Campo Descrição
    Hubs IoT de destino Selecione um ou mais dos hubs IoT vinculados ou adicione um novo link a um hub IoT. Para saber mais sobre como vincular hubs IoT à instância do DPS, confira Como vincular e gerenciar hubs IoT.
    Política de alocação Se você selecionou mais de um hub IoT vinculado, selecione como deseja atribuir dispositivos aos diferentes hubs. Para saber mais sobre políticas de alocação, confira Como usar políticas de alocação.

    Se você selecionou apenas um hub IoT vinculado, recomendamos usar a política de Distribuição uniformemente ponderada.
  7. Selecione Avançar: Configurações do dispositivo

  8. Na guia Configurações do dispositivo da página Adicionar registro, forneça as seguintes informações para definir como os dispositivos provisionados recentemente serão configurados:

    Campo Descrição
    ID do Dispositivo Forneça uma ID do dispositivo que será atribuída ao dispositivo provisionado no Hub IoT. Se você não fornecer uma ID de dispositivo, a ID de registro será usada.
    IoT Edge Verifique Habilitar IoT Edge em dispositivos provisionados se o dispositivo provisionado executará o Azure IoT Edge. Desmarque essa caixa se esse registro for para um dispositivo não habilitado para IoT Edge.
    Marcas de dispositivo Use esta caixa de texto para fornecer as marcas que você deseja aplicar ao dispositivo gêmeo do dispositivo provisionado.
    Propriedades desejadas Use esta caixa de texto para fornecer as propriedades desejadas que você quer aplicar ao dispositivo gêmeo do dispositivo provisionado.

    Para saber mais, veja Noções básicas e uso de dispositivos gêmeos no Hub IoT.

  9. Selecione Avançar: Revisar + criar.

  10. Na guia Revisar + Criar, verifique todos os valores e, em seguida, selecione Criar.

Depois de criar o registro individual, uma chave primária e uma chave secundária são geradas e adicionadas à entrada de registro. Você usa a chave primária no exemplo de dispositivo mais adiante neste início rápido.

  1. Para exibir o registro do dispositivo simulado de chave simétrica, selecione a guia Registros individuais.

  2. Selecione a ID de registro do dispositivo na lista de registros individuais.

  3. Copie o valor da Chave primária gerada.

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

Preparar e executar o código de provisionamento de dispositivos

Nesta seção, você atualiza o código de exemplo de dispositivo para enviar a sequência de inicialização do dispositivo para a instância do Serviço de Provisionamento de Dispositivos. Essa sequência de inicialização faz com que o dispositivo seja reconhecido, autenticado e atribuído a um hub IoT vinculado à instância do Serviço de Provisionamento de Dispositivos.

O código de provisionamento de exemplo realiza as seguintes tarefas, em ordem:

  1. Autentica seu dispositivo com o recurso de Provisionamento de Dispositivos usando os três seguintes parâmetros:

    • O escopo de ID do Serviço de Provisionamento de Dispositivos
    • A ID do registro do dispositivo.
    • A chave simétrica primária para o registro do dispositivo.
  2. Atribui o dispositivo ao hub IoT já vinculado à sua instância do Serviço de Provisionamento de Dispositivos.

Para atualizar e executar o exemplo de provisionamento com as informações do seu dispositivo:

  1. No menu principal do seu Serviço de Provisionamento de Dispositivos, selecione Visão geral.

  2. Copie o valor de Escopo da ID.

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

  3. No Visual Studio, abra o arquivo da solução azure_iot_sdks.sln que foi gerado pela execução do CMake. O arquivo da solução deve estar no seguinte local:

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

    Dica

    Se o arquivo não foi gerado em seu diretório do CMake, verifique se você usou uma versão recente do sistema de build do CMake.

  4. Na janela Gerenciador de Soluções do Visual Studio, acesse a pasta Provision_Samples. Expanda o projeto de exemplo chamado prov_dev_client_sample. Expanda Arquivos de Origem e abra prov_dev_client_sample.c.

  5. Localize a constante id_scope e substitua o valor pelo valor de Escopo de ID copiado na etapa 2.

    static const char* id_scope = "0ne00002193";
    
  6. Encontre a definição da função main() no mesmo arquivo. Certifique-se de que a variável hsm_type está definida para SECURE_DEVICE_TYPE_SYMMETRIC_KEY conforme mostrado no seguinte exemplo:

    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. Localize a chamada para prov_dev_set_symmetric_key_info() em prov_dev_client_sample.c que está comentado.

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

    Remova a marca de comentário da chamada de função e substitua os valores de espaço reservado (incluindo os colchetes angulares) pela ID de registro do seu dispositivo e pelo valor de chave primária que você copiou.

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

  9. Clique com botão direito do mouse no projeto prov_dev_client_sample e selecione Definir como Projeto de Inicialização.

  10. No menu do Visual Studio, selecione Depurar>Iniciar sem depuração para executar a solução. Na recompilação do prompt de projeto, selecione Sim para recompilar o projeto antes da execução.

    A seguinte saída é um exemplo do dispositivo que se conecta com êxito à instância de Serviço de provisionamento a ser atribuída a um 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:
    

O código de provisionamento de exemplo realiza as seguintes tarefas:

  1. Autentica seu dispositivo com o recurso de Provisionamento de Dispositivos usando os três seguintes parâmetros:

    • O escopo de ID do Serviço de Provisionamento de Dispositivos
    • A ID do registro do dispositivo.
    • A chave simétrica primária para o registro do dispositivo.
  2. Atribui o dispositivo ao hub IoT já vinculado à sua instância do Serviço de Provisionamento de Dispositivos.

  3. Envia uma mensagem de telemetria de teste para o hub IoT.

Para atualizar e executar o exemplo de provisionamento com as informações do seu dispositivo:

  1. No menu principal do seu Serviço de Provisionamento de Dispositivos, selecione Visão geral.

  2. Copie o valor de Escopo da ID.

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

  3. Abra um prompt de comando e acesse o SymmetricKeySample no repositório de SDKs clonados:

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample\'
    
  4. Na pasta SymmetricKeySample, abra Parameters.cs em um editor de texto. Este arquivo mostra os parâmetros disponíveis para a amostra. Somente os três primeiros parâmetros obrigatórios são usados neste artigo durante a execução do exemplo. Examine o código deste arquivo. Nenhuma alteração é necessária.

    Parâmetro Obrigatório Descrição
    --i ou --IdScope True O Escopo da ID da instância do DPS
    --r ou --RegistrationId True A ID do registro é uma cadeia de caracteres que não diferencia maiúsculas de minúsculas (até 128 caracteres) de caracteres alfanuméricos mais os caracteres especiais: '-', '.', '_', ':'. O último caractere deve ser alfanumérico ou um traço ('-').
    --p ou --PrimaryKey True A chave primária de um registro individual ou a chave de dispositivo derivada do registro de grupo. Confira ComputeDerivedSymmetricKeySample para saber como gerar a chave derivada.
    --g ou --GlobalDeviceEndpoint Falso O ponto de extremidade global no qual os dispositivos se conectarão. Usa como padrão global.azure-devices-provisioning.net
    --t ou --TransportType Falso O transporte a ser usado para se comunicar com a instância de provisionamento de dispositivos. Assume o padrão de Mqtt. Os valores possíveis incluem Mqtt, Mqtt_WebSocket_Only, Mqtt_Tcp_Only, Amqp, Amqp_WebSocket_Only, Amqp_Tcp_only e Http1.
  5. Na pasta SymmetricKeySample, abra ProvisioningDeviceClientSample.cs em um editor de texto. Esse arquivo mostra como a classe SecurityProviderSymmetricKey é usada junto com a classe ProvisioningDeviceClient para provisionar o dispositivo de chave simétrica simulada. Examine o código deste arquivo. Nenhuma alteração é necessária.

  6. Compile e execute o código de exemplo usando o seguinte comando:

    • Substitua <id-scope> pelo Escopo da ID que você copiou na etapa 2.
    • Substitua <registration-id> pela ID de Registro que você forneceu no registro do dispositivo.
    • Substitua <primarykey> pela Chave Primária que você copiou do registro do dispositivo.
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. Agora você deverá ver algo semelhante à saída a seguir. Uma cadeia de caracteres "TestMessage" é enviada ao Hub como uma mensagem de teste.

    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.
    

O código de provisionamento de exemplo realiza as seguintes tarefas, em ordem:

  1. Autentica seu dispositivo com o recurso de Provisionamento de Dispositivos usando os quatro seguintes parâmetros:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Atribui o dispositivo ao hub IoT já vinculado à sua instância do Serviço de Provisionamento de Dispositivos.

  3. Envia uma mensagem de telemetria de teste para o hub IoT.

Para atualizar e executar o exemplo de provisionamento com as informações do seu dispositivo:

  1. No menu principal do seu Serviço de Provisionamento de Dispositivos, selecione Visão geral.

  2. Copie os valores Escopo da ID e Ponto de extremidade de dispositivo global.

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

  3. Abra um prompt de comando para executar comandos do Node.js e navegue até o seguinte diretório:

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. Na pasta provisionamento/dispositivo/exemplos, abra register_symkey.js e examine o código. Observe que o código de exemplo define uma carga personalizada:

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

    Você pode comentar fora deste código, pois ele não é necessário para este início rápido. Um conteúdo personalizado seria necessário se você quisesse usar uma função de alocação personalizada para atribuir seu dispositivo a um hub IoT. Para saber mais, confira Tutorial: Usar políticas de alocação personalizadas.

    O método provisioningClient.register() tenta o registro do seu dispositivo.

    Nenhuma alteração adicional é necessária.

  5. No prompt de comando, execute os seguintes comandos para definir as variáveis de ambiente usadas pela amostra:

    • Substitua <provisioning-global-endpoint> pelo Ponto de extremidade global que você copiou na etapa 2.
    • Substitua <id-scope> pelo Escopo da ID que você copiou na etapa 2.
    • Substitua <registration-id> pela ID de Registro que você forneceu no registro do dispositivo.
    • Substitua <primarykey> pela Chave Primária que você copiou do registro do dispositivo.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. Crie e execute o código de exemplo usando os seguintes comandos:

     npm install
    
    node register_symkey.js
    
  7. Agora você deverá ver algo semelhante à saída a seguir. Uma cadeia de caracteres "Olá, Mundo" é enviada ao hub como uma mensagem de teste.

    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
    

O código de provisionamento de exemplo realiza as seguintes tarefas, em ordem:

  1. Autentica seu dispositivo com o recurso de Provisionamento de Dispositivos usando os quatro seguintes parâmetros:

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Atribui o dispositivo ao hub IoT já vinculado à sua instância do Serviço de Provisionamento de Dispositivos.

  3. Envia uma mensagem de telemetria de teste para o hub IoT.

Para atualizar e executar o exemplo de provisionamento com as informações do seu dispositivo:

  1. No menu principal do seu Serviço de Provisionamento de Dispositivos, selecione Visão geral.

  2. Copie os valores Escopo da ID e Ponto de extremidade de dispositivo global.

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

  3. Abra um prompt de comando e acesse o diretório em que o arquivo de exemplo, provision_symmetric_key.py, está localizado.

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. No prompt de comando, execute os seguintes comandos para definir as variáveis de ambiente usadas pela amostra:

    • Substitua <provisioning-global-endpoint> pelo Ponto de extremidade global que você copiou na etapa 2.
    • Substitua <id-scope> pelo Escopo da ID que você copiou na etapa 2.
    • Substitua <registration-id> pela ID de Registro que você forneceu no registro do dispositivo.
    • Substitua <primarykey> pela Chave Primária que você copiou do registro do dispositivo.
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. Instale a biblioteca azure-iot-device executando o comando a seguir.

    pip install azure-iot-device
    
  6. Execute o código de exemplo do Python em provision_symmetric_key.py.

    python provision_symmetric_key.py
    
  7. Agora você deverá ver algo semelhante à saída a seguir. Algumas mensagens de exemplo de telemetria da velocidade do vento também são enviadas para o hub como um teste.

    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
    

O código de provisionamento de exemplo realiza as seguintes tarefas, em ordem:

  1. Autentica seu dispositivo com o recurso de Provisionamento de Dispositivos usando os quatro seguintes parâmetros:

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Atribui o dispositivo ao hub IoT já vinculado à sua instância do Serviço de Provisionamento de Dispositivos.

  3. Envia uma mensagem de telemetria de teste para o hub IoT.

Para atualizar e executar o exemplo de provisionamento com as informações do seu dispositivo:

  1. No menu principal do seu Serviço de Provisionamento de Dispositivos, selecione Visão geral.

  2. Copie os valores Escopo da ID e Ponto de extremidade de dispositivo global. Estes valores são seus parâmetros SCOPE_ID e GLOBAL_ENDPOINT, respectivamente.

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

  3. Abra o código de exemplo do dispositivo Java para edição. O caminho completo para o código de exemplo do 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. Defina o valor das seguintes variáveis para o registro do DPS e do dispositivo:

    • Substitua <id-scope> pelo Escopo da ID que você copiou na etapa 2.
    • Substitua <provisioning-global-endpoint> pelo Ponto de extremidade global que você copiou na etapa 2.
    • Substitua <registration-id> pela ID de Registro que você forneceu no registro do dispositivo.
    • Substitua <primarykey> pela Chave Primária que você copiou do registro do 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. Abra um prompt de comando para criação. Acesse a pasta de projeto de exemplo de provisionamento do repositório do SDK do Java.

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. Compile o exemplo.

    mvn clean install
    
  7. Vá para a pasta target e execute o arquivo .jar criado. No comando java, substitua o espaço reservado {version} pela versão no nome do arquivo .jar no computador.

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. Agora você deverá ver algo semelhante à saída a seguir.

    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
    

Confirmar o registro de provisionamento de dispositivos

  1. Acesse o portal do Azure.

  2. No menu à esquerda ou na página do portal, selecione Todos os recursos.

  3. Selecione o hub IoT ao qual o dispositivo foi atribuído.

  4. No menu Gerenciamento de dispositivo, selecione Dispositivos.

  5. Se seu dispositivo foi provisionado com sucesso, a identidade do dispositivo deverá aparecer na lista, com o Status definido como Habilitada. Se você não vir seu dispositivo, selecione Atualizar na parte superior da página.

    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.

Observação

Se você tiver alterado o estado de dispositivo gêmeo inicial do valor padrão na entrada de registro para o seu dispositivo, pode receber o estado desejado duas do hub e agir de acordo. Para saber mais, veja Noções básicas e uso de dispositivos gêmeos no Hub IoT.

Limpar os recursos

Se planejar continuar trabalhando e explorando o dispositivo cliente de exemplo, não limpe os recursos criados neste início rápido. Se não quiser continuar, use as etapas a seguir para excluir todos os recursos criados por este guia de início rápido.

Excluir o registro do dispositivo

  1. Feche a janela de saída de exemplo de dispositivo cliente em seu computador.

  2. No menu à esquerda no portal do Azure, selecione Todos os recursos.

  3. Selecione o seu Serviço de Provisionamento de Dispositivos.

  4. No menu Configurações, selecione Gerenciar registros.

  5. Selecione a guia Registros individuais.

  6. Marque a caixa de seleção ao lado da ID de registro do dispositivo em que você se inscreveu neste guia de início rápido.

  7. Na parte superior da página, selecione Excluir.

Excluir o registro do dispositivo do Hub IoT

  1. No menu à esquerda no portal do Azure, selecione Todos os recursos.

  2. Selecione seu Hub IoT.

  3. No menu Gerenciadores, selecione Dispositivos IoT.

  4. Marque a caixa de seleção ao lado da ID do dispositivo do dispositivo inscrito neste guia de início rápido.

  5. Na parte superior da página, selecione Excluir.

Próximas etapas

Neste início rápido, você provisionou um único dispositivo para o hub IoT usando um registro individual. A seguir, aprenda como provisionar vários dispositivos IoT em vários hubs.