Preparação

Concluído

Aqui, discutimos os objetivos gerais do projeto e como preparar recursos para os exercícios.

Visão geral do projeto

Neste módulo, você começa criando recursos do Azure que são necessários para concluir este módulo, como uma instância do Serviço de Provisionamento de Dispositivo (DPS) e um hub IoT. Em seguida, você gera um certificado de autoridade de certificação raiz X.509 usando OpenSSL no Azure Cloud Shell e usa o certificado raiz para configurar um registro de grupo no DPS. Depois disso, você usa o certificado raiz para gerar dois certificados de dispositivo, que você usa dentro de um código de dispositivo simulado para provisionar os dispositivos para um hub IoT. Enquanto estiver no código do dispositivo, você implementa o acesso às propriedades gêmeas do dispositivo usadas para executar a configuração inicial do dispositivo. Em seguida, você testa seu dispositivo simulado. Para concluir este módulo, você desprovisiona toda a inscrição do grupo.

Configurar

Como parte deste módulo, os seguintes recursos são criados:

  • Um hub IoT do Azure
  • Uma instância do Serviço de Provisionamento de Dispositivo do Hub IoT do Azure
  • Dois dispositivos simulados em C#

Recursos na nuvem

Para concluir este projeto guiado, você precisa de um hub IoT e uma instância do Serviço de Provisionamento de Dispositivo que estejam vinculados entre si. A criação dessas instâncias de serviço pode levar vários minutos.

  1. Comece clicando no botão Ativar área restrita . A área restrita cria automaticamente um grupo de recursos do Azure para você que é exibido nesta página da Web. Você cria mais recursos para este projeto usando as etapas a seguir. O nome do grupo de recursos é substituído automaticamente onde é usado dentro das etapas de código.

    Nota

    A área restrita do Azure Cloud Shell atingirá o tempo limite após 20 minutos de inatividade. A sandbox ainda estará disponível e o Cloud Shell poderá ser reativado, mas as variáveis de linha de comando e ambiente serão perdidas. Suas instâncias do Hub IoT e do Serviço de Provisionamento de Dispositivos são funcionais e estão disponíveis. Certifique-se de copiar esses valores conforme instruído no final desta página para que você ainda possa fazer referência e inserir os valores nos próximos comandos do Cloud Shell quando necessário.

  2. Instale a extensão do Azure IoT para a CLI do Azure.

    az extension add --name azure-iot
    
  3. Crie um sufixo chamado variável com um número aleatório que você usa para nomes de recursos que precisam ser globalmente exclusivos.

    let suffix=$RANDOM*$RANDOM
    echo $suffix
    
  4. Crie um hub IoT no nome do grupo de recursos criado pela área restrita do Azure.

    az iot hub create --name hub-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  5. Crie uma instância do DPS no grupo de recursos criado pela área restrita do Azure.

    az iot dps create --name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --location westus
    
  6. Obtenha a cadeia de conexão do hub do seu hub IoT, que você fornece à instância do DPS para vincular os dois recursos.

    hubConnectionString=$(az iot hub connection-string show --hub-name hub-$suffix --key-type primary --query connectionString -o tsv)
    echo $hubConnectionString
    
  7. Adicione seu hub IoT como um hub vinculado à sua instância DPS. Vincular um hub IoT significa que a instância do DPS pode provisionar dispositivos para esse hub IoT.

    az iot dps linked-hub create --dps-name dps-$suffix --resource-group <rgn>[sandbox resource group name]</rgn> --connection-string $hubConnectionString
    
  8. Quando a implantação estiver concluída, abra uma ferramenta de editor de texto. Use o editor de texto para armazenar valores de configuração associados aos seus recursos do Azure caso sua área restrita atinja o tempo limite após 20 minutos. No editor de texto, salve os seguintes nomes e valores para usar nas próximas páginas da unidade.

    Nome Valor
    Nome do grupo de recursos Listado nesta página web
    Sufixo Armazenado em $suffix. Por exemplo, um valor para $suffix é 586732230.
    Cadeia de conexão do hub IoT Conservado em $hubConnectionString
    Nome do hub IoT hub-$suffix. Por exemplo, hub-586732230.
    Nome DPS dps-$suffix. Por exemplo, dps-586732230.
    Âmbito do ID DPS O valor para idScope nos dados JSON retornados do az iot dps create comando executado na etapa 5. Por exemplo, o valor para idScope é 0ne0000000.

Recursos para o desenvolvimento

Para simular o provisionamento de dispositivos IoT por meio do Serviço de Provisionamento de Dispositivos, execute dois aplicativos C# em sua máquina de desenvolvimento. Tenha os seguintes pré-requisitos prontos em sua máquina de desenvolvimento: