Partilhar via


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á ligado ao recurso DPS através do 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.

Botão para implantar o modelo do Gerenciador de Recursos no Azure.

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

Pré-requisitos

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 existe suporte para modelos ARM para criar inscrições com novos recursos 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.

    Botão para implantar o modelo do Gerenciador de Recursos no Azure.

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

    Captura de ecrã que mostra os parâmetros de implementação do modelo ARM no portal Azure.

    A menos que especificado em contrário para os campos seguintes, use o valor predefinido para criar o hub IoT e o recurso 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 Introduza um nome para o hub IoT que deve ser globalmente único dentro do espaço de nomes .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 implementação, consulte Deploy resources with ARM templates e Azure PowerShell.

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 iniciar sessão no prompt de comandos, execute o comando az 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. Use o seguinte comando de lista de contas do az para listar as contas Azure disponíveis para si:

    az account list -o table
    

    Use o seguinte comando az account set para selecionar a subscrição que pretende usar para executar os comandos que criam o 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 pedem uma localização para o grupo de recursos. Pode ver uma lista de locais disponíveis executando primeiro o seguinte 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 Descrição
    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 Introduza um nome para o hub IoT que deve ser globalmente único dentro do espaço de nomes .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 implementação, execute o seguinte comando az resource list para listar recursos e procure 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á ligado ao recurso DPS, execute o seguinte comando az iot dps show .

     az iot dps show --name <Your provisioningServiceName>
    

    Observe os hubs que estão ligados ao iotHubs membro.

Limpar recursos

Outros guias rápidos nesta coleção têm por base este guia rápido. 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 eliminar um grupo de recursos e todos os seus recursos do portal Azure, basta abrir o grupo de recursos e selecionar Eliminar grupo de recursos no topo.

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 esta configuração para provisionar um dispositivo, avance para o guia de início rápido para criar um dispositivo.