Rychlý start: Nastavení služby IoT Hub Device Provisioning Service (DPS) pomocí šablony ARM

Pomocí šablony Azure Resource Manageru (šablony ARM) můžete programově nastavit cloudové prostředky Azure potřebné ke zřízení zařízení. Tyto kroky ukazují, jak vytvořit centrum IoT a novou službu IoT Hub Device Provisioning pomocí šablony ARM. Iot Hub je také propojený s prostředkem DPS pomocí šablony. Toto propojení umožňuje prostředku DPS přiřadit zařízení k centru na základě nakonfigurovaných zásad přidělování.

Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.

V tomto rychlém startu se k provádění programových kroků nezbytných k vytvoření skupiny prostředků a nasazení šablony používá Azure Portal a Azure CLI. K provedení těchto kroků a nasazení šablony ale můžete použít také PowerShell, .NET, Ruby nebo jiné programovací jazyky.

Pokud vaše prostředí splňuje požadavky a už jste obeznámeni s používáním šablon ARM, výběrem tlačítka Nasadit do Azure se šablona otevře pro nasazení na webu Azure Portal.

Button to deploy the Resource Manager template to Azure.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Požadavky

Kontrola šablony

Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure.

Poznámka:

V současné době neexistuje podpora šablon ARM pro vytváření registrací s novými prostředky DPS. Jedná se o běžný a srozumitelný požadavek, který se považuje za implementaci.

{
  "$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'))]"
      ]
    }
  ]
}

V předchozí šabloně jsou definované dva prostředky Azure:

Nasazení šablony

Nasazení s využitím portálu

  1. Výběrem následujícího obrázku se přihlaste k Azure a otevřete šablonu pro nasazení. Šablona vytvoří nový prostředek Iot Hub a DPS. Nové centrum IoT je propojené s prostředkem DPS.

    Button to deploy the Resource Manager template to Azure.

  2. Vyberte nebo zadejte následující hodnoty a vyberte Zkontrolovat a vytvořit.

    ARM template deployment parameters on the portal

    Pokud není pro následující pole zadáno jinak, použijte výchozí hodnotu k vytvoření prostředku Iot Hub a DPS.

    Pole Popis
    Předplatné Vyberte své předplatné Azure.
    Skupina prostředků Vyberte Vytvořit nový a zadejte jedinečný název skupiny prostředků a pak vyberte OK.
    Oblast Vyberte oblast pro vaše prostředky. Například USA – východ. Kvůli odolnosti a spolehlivosti doporučujeme nasazení do jedné z oblastí, které podporují Zóny dostupnosti.
    Název iot Hubu Zadejte název ioT Hubu, který musí být globálně jedinečný v rámci oboru názvů .azure-devices.net . Při ověřování nasazení potřebujete název centra v další části.
    Název služby zřizování Zadejte název nového prostředku služby Device Provisioning Service (DPS). Název musí být globálně jedinečný v rámci oboru názvů .azure-devices-provisioning.net . Při ověřování nasazení potřebujete název DPS v další části.
  3. Na další obrazovce si přečtěte podmínky. Pokud souhlasíte se všemi podmínkami, vyberte Vytvořit.

    Dokončení nasazení chvíli trvá.

    Kromě webu Azure Portal můžete také použít Azure PowerShell, Azure CLI a rozhraní REST API. Další metody nasazení najdete v tématu Nasazení šablon.

Nasazení pomocí Azure CLI

Použití Azure CLI vyžaduje verzi 2.6 nebo novější. Pokud používáte Azure CLI místně, ověřte svou verzi spuštěním příkazu: az --version

Přihlaste se ke svému účtu Azure a vyberte své předplatné.

  1. Pokud používáte Azure CLI místně místo toho, abyste ho spustili na portálu, musíte se přihlásit. Pokud se chcete přihlásit na příkazovém řádku, spusťte příkaz login:

    az login
    

    Postupujte podle pokynů pro ověření pomocí kódu a přihlaste se ke svému účtu Azure ve webovém prohlížeči.

  2. Pokud máte více předplatných Azure, přihlášením k Azure získáte přístup ke všem účtům Azure přidruženým k vašim přihlašovacím údajům. Pomocí následujícího příkazu zobrazte výpis účtů Azure, které můžete použít:

    az account list -o table
    

    Pomocí následujícího příkazu vyberte předplatné, které chcete použít ke spuštění příkazů k vytvoření prostředků IoT Hubu a DPS. Můžete použít název nebo ID předplatného z výstupu předchozího příkazu:

    az account set --subscription {your subscription name or id}
    
  3. Do příkazového řádku zkopírujte a vložte následující příkazy. Pak příkazy spusťte tak, že vyberete klávesu Enter.

    Tip

    Příkazy zobrazí výzvu k umístění skupiny prostředků. Seznam dostupných umístění můžete zobrazit tak, že nejprve spustíte příkaz:

    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. Příkazy vás vyzve k zadání následujících informací. Zadejte každou hodnotu a vyberte klávesu Enter.

    Parametr Popis
    Název projektu Hodnota tohoto parametru slouží k vytvoření skupiny prostředků pro uložení všech prostředků. Řetězec rg se přidá na konec hodnoty názvu vaší skupiny prostředků.
    location Tato hodnota je oblast, ve které se vytvářejí všechny prostředky.
    iotHubName Zadejte název ioT Hubu, který musí být globálně jedinečný v rámci oboru názvů .azure-devices.net . Při ověřování nasazení potřebujete název centra v další části.
    provisioningServiceName Zadejte název nového prostředku služby Device Provisioning Service (DPS). Název musí být globálně jedinečný v rámci oboru názvů .azure-devices-provisioning.net . Při ověřování nasazení potřebujete název DPS v další části.

    K nasazení šablony se používá Azure CLI. Kromě Azure CLI můžete také použít Azure PowerShell, Azure Portal a rozhraní REST API. Další metody nasazení najdete v tématu Nasazení šablon.

Kontrola nasazených prostředků

  1. Spuštěním následujícího příkazu ověřte nasazení a vyhledejte ve výstupu novou službu zřizování a centrum IoT:

     az resource list -g "${projectName}rg"
    
  2. Pokud chcete ověřit, že centrum je již propojené s prostředkem DPS, spusťte následující příkaz show rozšíření DPS.

     az iot dps show --name <Your provisioningServiceName>
    

    Všimněte si center, která jsou propojená na členu iotHubs .

Vyčištění prostředků

Další rychlé starty v této kolekci jsou postavené na tomto rychlém startu. Pokud chcete pokračovat v práci s dalšími rychlými starty nebo kurzy, nevyčišťujte prostředky vytvořené v tomto rychlém startu. Pokud pokračovat nechcete, můžete pomocí webu Azure Portal nebo Azure CLI odstranit skupinu prostředků a všechny její prostředky.

Pokud chcete odstranit skupinu prostředků a všechny její prostředky z webu Azure Portal, stačí otevřít skupinu prostředků a vybrat Odstranit skupinu prostředků a nahoře.

Odstranění skupiny prostředků nasazené pomocí Azure CLI:

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

Skupiny prostředků a jednotlivé prostředky můžete odstranit také pomocí některé z následujících možností:

  • Azure Portal
  • PowerShell
  • Rozhraní REST API
  • Podporované sady SDK platformy publikované pro Azure Resource Manager nebo službu IoT Hub Device Provisioning

Další kroky

V tomto rychlém startu jste nasadili centrum IoT a instanci služby Device Provisioning a propojili dva prostředky. Pokud chcete zjistit, jak pomocí tohoto nastavení zřídit zařízení, pokračujte rychlým startem pro vytvoření zařízení.