Guia de início rápido: configurar o DPS (Serviço de Provisionamento de Dispositivos) do Hub IoT com um modelo ARM

Você pode usar um modelo do Azure Resource Manager (modelo ARM) para configurar programaticamente os recursos de nuvem do Azure necessários para provisionar seus dispositivos. Estas etapas mostram como criar um hub IoT e um novo Serviço de Provisionamento de Dispositivo do Hub IoT com um modelo ARM. O Hub Iot também está vinculado ao recurso DPS usando o modelo. Essa vinculação permite que o recurso DPS atribua dispositivos ao hub com base nas políticas de alocação configuradas.

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Este guia de início rápido usa o portal do Azure e a CLI do Azure para executar as etapas programáticas necessárias para criar um grupo de recursos e implantar o modelo. No entanto, você também pode usar PowerShell, .NET, Ruby ou outras linguagens de programação para executar essas etapas e implantar seu modelo.

Se seu ambiente atender aos pré-requisitos e você já estiver familiarizado com o uso de modelos ARM, selecionar o botão Implantar no Azure abrirá o modelo para implantação no portal do Azure.

Button to deploy the Resource Manager template to Azure.

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Rever o modelo

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.

Nota

Atualmente, não há suporte a modelos ARM para criar inscrições com novos recursos do DPS. Este é um pedido comum e compreendido que está a ser considerado para implementação.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.12.40.16777",
      "templateHash": "13184692430416822033"
    }
  },
  "parameters": {
    "iotHubName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the Iot hub."
      }
    },
    "provisioningServiceName": {
      "type": "string",
      "metadata": {
        "description": "Specify the name of the provisioning service."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specify the location of the resources."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "S1",
      "metadata": {
        "description": "The SKU to use for the IoT Hub."
      }
    },
    "skuUnits": {
      "type": "int",
      "defaultValue": 1,
      "metadata": {
        "description": "The number of IoT Hub units."
      }
    }
  },
  "variables": {
    "iotHubKey": "iothubowner"
  },
  "resources": [
    {
      "type": "Microsoft.Devices/IotHubs",
      "apiVersion": "2021-07-02",
      "name": "[parameters('iotHubName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {}
    },
    {
      "type": "Microsoft.Devices/provisioningServices",
      "apiVersion": "2022-02-05",
      "name": "[parameters('provisioningServiceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuUnits')]"
      },
      "properties": {
        "iotHubs": [
          {
            "connectionString": "[format('HostName={0};SharedAccessKeyName={1};SharedAccessKey={2}', reference(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').hostName, variables('iotHubKey'), listkeys(resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName')), '2021-07-02').value[0].primaryKey)]",
            "location": "[parameters('location')]"
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.Devices/IotHubs', parameters('iotHubName'))]"
      ]
    }
  ]
}

Dois recursos do Azure são definidos no modelo anterior:

Implementar o modelo

Implementar com o Portal

  1. Selecione a imagem a seguir para entrar no Azure e abrir o modelo para implantação. O modelo cria um novo hub Iot e um recurso DPS. O novo hub IoT está vinculado ao recurso DPS.

    Button to deploy the Resource Manager template to Azure.

  2. Selecione ou insira os seguintes valores e selecione Revisar + Criar.

    ARM template deployment parameters on the portal

    A menos que especificado de outra forma para os campos a seguir, use o valor padrão para criar o recurso Iot Hub e DPS.

    Campo Descrição
    Subscrição Selecione a subscrição do Azure.
    Grupo de recursos Selecione Criar novo, insira um nome exclusivo para o grupo de recursos e selecione OK.
    Região Selecione uma região para os seus recursos. Por exemplo, Leste dos EUA. Para maior resiliência e confiabilidade, recomendamos a implantação em uma das regiões que oferecem suporte a zonas de disponibilidade.
    Nome do Hub Iot Insira um nome para o Hub IoT que deve ser globalmente exclusivo dentro do namespace .azure-devices.net . Você precisa do nome do hub na próxima seção ao validar a implantação.
    Nome do serviço de provisionamento Insira um nome para o novo recurso DPS (Serviço de Provisionamento de Dispositivo). O nome deve ser globalmente exclusivo dentro do namespace .azure-devices-provisioning.net . Você precisa do nome do DPS na próxima seção ao validar a implantação.
  3. Na tela seguinte, leia os termos. Se concordar com todos os termos, selecione Criar.

    A implantação leva alguns minutos para ser concluída.

    Além do portal do Azure, você também pode usar o Azure PowerShell, a CLI do Azure e a API REST. Para aprender outros métodos de implantação, consulte Implantar modelos.

Implantar com a CLI do Azure

Usar a CLI do Azure requer a versão 2.6 ou posterior. Se você estiver executando a CLI do Azure localmente, verifique sua versão executando: az --version

Inicie sessão na sua conta do Azure e selecione a sua subscrição.

  1. Se você estiver executando a CLI do Azure localmente em vez de executá-la no portal, precisará entrar. Para entrar no prompt de comando, execute o comando login:

    az login
    

    Siga as instruções para se autenticar com o código e inicie sessão na sua conta do Azure através de um browser.

  2. Se tiver várias subscrições do Azure, iniciar sessão no Azure dá-lhe acesso a todas as contas do Azure associadas às suas credenciais. Utilize o comando para listar as contas do Azure disponíveis e que pode utilizar:

    az account list -o table
    

    Use o comando a seguir para selecionar a assinatura que você deseja usar para executar os comandos para criar seu hub IoT e recursos DPS. Pode utilizar o nome ou o ID da subscrição da saída do comando anterior:

    az account set --subscription {your subscription name or id}
    
  3. Copie e cole os seguintes comandos no prompt da CLI. Em seguida, execute os comandos selecionando a tecla Enter.

    Gorjeta

    Os comandos solicitam um local de grupo de recursos. Você pode exibir uma lista de locais disponíveis executando primeiro o comando:

    az account list-locations -o table

    read -p "Enter a project name that is used for generating resource names:" projectName &&
    read -p "Enter the location (i.e. centralus):" location &&
    templateUri="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.devices/iothub-device-provisioning/azuredeploy.json" &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location "$location" &&
    az deployment group create --resource-group $resourceGroupName --template-uri  $templateUri &&
    echo "Press [ENTER] to continue ..." &&
    read
    
  4. Os comandos solicitam as seguintes informações. Forneça cada valor e selecione a tecla Enter.

    Parâmetro Description
    Nome do projeto O valor desse parâmetro é usado para criar um grupo de recursos para armazenar todos os recursos. A cadeia de caracteres rg é adicionada ao final do valor do nome do grupo de recursos.
    localização Este valor é a região onde todos os recursos são criados.
    iotHubName Insira um nome para o Hub IoT que deve ser globalmente exclusivo dentro do namespace .azure-devices.net . Você precisa do nome do hub na próxima seção ao validar a implantação.
    provisioningServiceName Insira um nome para o novo recurso DPS (Serviço de Provisionamento de Dispositivo). O nome deve ser globalmente exclusivo dentro do namespace .azure-devices-provisioning.net . Você precisa do nome do DPS na próxima seção ao validar a implantação.

    A CLI do Azure é usada para implantar o modelo. Além da CLI do Azure, você também pode usar o Azure PowerShell, o portal do Azure e a API REST. Para aprender outros métodos de implantação, consulte Implantar modelos.

Rever os recursos implementados

  1. Para verificar a implantação, execute o seguinte comando para listar recursos e procurar o novo serviço de provisionamento e o hub IoT na saída:

     az resource list -g "${projectName}rg"
    
  2. Para verificar se o hub já está vinculado ao recurso DPS, execute o seguinte comando DPS extension show.

     az iot dps show --name <Your provisioningServiceName>
    

    Observe os hubs que estão vinculados no iotHubs membro.

Clean up resources (Limpar recursos)

Outros guias de introdução desta coleção têm por base este guia de introdução. Se você planeja continuar a trabalhar com inícios rápidos subsequentes ou com os tutoriais, não limpe os recursos criados neste início rápido. Se você não planeja continuar, pode usar o portal do Azure ou a CLI do Azure para excluir o grupo de recursos e todos os seus recursos.

Para excluir um grupo de recursos e todos os seus recursos do portal do Azure, basta abrir o grupo de recursos e selecionar Excluir grupo de recursos e a parte superior.

Para excluir o grupo de recursos implantado usando a CLI do Azure:

az group delete --name "${projectName}rg"

Você também pode excluir grupos de recursos e recursos individuais usando qualquer uma das seguintes opções:

  • Portal do Azure
  • PowerShell
  • APIs REST
  • SDKs de plataforma com suporte publicados para o Azure Resource Manager ou o Serviço de Provisionamento de Dispositivo do Hub IoT

Próximos passos

Neste início rápido, você implantou um hub IoT e uma instância do Serviço de Provisionamento de Dispositivo e vinculou os dois recursos. Para saber como usar essa configuração para provisionar um dispositivo, continue para o início rápido para criar um dispositivo.