快速入門:使用 ARM 樣本設定 IoT 中樞 裝置佈建服務 (DPS)

您可以使用 Azure Resource Manager 範本(ARM 範本)以程式設計方式設定布建裝置所需的 Azure 雲端資源。 這些步驟示範如何使用ARM範本建立IoT中樞和新IoT 中樞裝置布建服務。 IoT 中樞也會使用範本連結到 DPS 資源。 此連結可讓 DPS 資源根據您設定的配置原則,將裝置指派給中樞。

Azure Resource Manager 範本是 JavaScript 物件表示法 (JSON) 檔案,可定義專案的基礎結構和組態。 範本使用宣告式語法。 您不需要撰寫程式設計命令順序來建立部署,即可描述預定的部署。

本快速入門會使用 Azure 入口網站Azure CLI 來執行建立資源群組及部署範本所需的程式設計步驟。 不過,您也可以使用 PowerShell、.NET、Ruby 或其他程式設計語言來執行這些步驟並部署您的範本。

如果您的環境符合必要條件,且您已熟悉使用ARM範本,請選取 [部署至 Azure] 按鈕,開啟 Azure 入口網站 中的部署範本。

Button to deploy the Resource Manager template to Azure.

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

必要條件

檢閱範本

本快速入門中使用的範本是來自 Azure 快速入門範本

注意

目前沒有 ARM 範本支援使用新的 DPS 資源建立註冊。 這是正在考慮實作的常見且已瞭解的要求。

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

上一個樣本中定義了兩個 Azure 資源:

部署範本

使用入口網站部署

  1. 選取下圖以登入 Azure,然後開啟部署的範本。 此範本會建立新的IoT中樞和 DPS 資源。 新的IoT中樞會連結至 DPS 資源。

    Button to deploy the Resource Manager template to Azure.

  2. 選取或輸入下列值,然後選取 [ 檢閱 + 建立]。

    ARM template deployment parameters on the portal

    除非為下列欄位指定,否則請使用預設值來建立 Iot 中樞和 DPS 資源。

    欄位 描述
    訂用帳戶 選取 Azure 訂閱。
    資源群組 選取 [ 新建],然後輸入資源群組的唯一名稱,然後選取 [ 確定]。
    區域 為您的資源選取區域。 例如, 美國東部。 如需復原和可靠性,建議您部署到其中一個支援 可用性區域 的區域。
    IoT 中樞名稱 輸入在 .azure-devices.net 命名空間內必須是全域唯一 IoT 中樞 的名稱。 當您驗證部署時,在下一節中需要中樞名稱。
    布建服務名稱 輸入新裝置布建服務 (DPS) 資源的名稱。 名稱在 .azure-devices-provisioning.net 命名空間內必須是全域唯一。 當您驗證部署時,在下一節中需要 DPS 名稱。
  3. 在下一個畫面上,閱讀字詞。 如果您同意所有條款,請選取 [ 建立]。

    部署需要一些時間才能完成。

    除了 Azure 入口網站,您也可以使用 Azure PowerShell、Azure CLI 和 REST API。 若要了解其他部署方法,請參閱<部署範本>。

使用 Azure CLI 進行部署

使用 Azure CLI 需要 2.6 版或更新版本。 如果您要在本機執行 Azure CLI,請執行下列命令來確認您的版本: az --version

登入您的 Azure 帳戶,然後選取您的訂用帳戶。

  1. 如果您在本機執行 Azure CLI,而不是在入口網站中執行它,則必須登入。 若要在命令提示字元登入,請 執行登入命令

    az login
    

    請遵循指示,使用程式代碼進行驗證,並透過網頁瀏覽器登入您的 Azure 帳戶。

  2. 如果您有多個 Azure 訂用帳戶,登入 Azure 會授與您認證相關聯之所有 Azure 帳戶的存取權。 使用下列 命令來列出可供您使用的 Azure 帳戶

    az account list -o table
    

    使用下列命令來選取您想要用來執行命令的訂用帳戶,以建立IoT中樞和 DPS 資源。 您可以從上一個指令的輸出使用訂用帳戶名稱或識別碼:

    az account set --subscription {your subscription name or id}
    
  3. 將下列命令複製並貼到 CLI 提示字元中。 然後選取 Enter 鍵來執行命令。

    提示

    命令會提示資源群組位置。 您可以先執行 命令來檢視可用位置的清單:

    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. 命令會提示您輸入下列資訊。 提供每個值,然後選取 Enter 鍵。

    參數 描述
    專案名稱 此參數的值是用來建立資源群組來保存所有資源。 字串 rg 會新增至資源組名值結尾。
    位置 此值是建立所有資源的區域。
    iotHubName 輸入在 .azure-devices.net 命名空間中必須是全域唯一 IoT 中樞 的名稱。 當您驗證部署時,在下一節中需要中樞名稱。
    provisioningServiceName 輸入新裝置布建服務 (DPS) 資源的名稱。 名稱在 .azure-devices-provisioning.net 命名空間內必須是全域唯一。 當您驗證部署時,在下一節中需要 DPS 名稱。

    Azure CLI 可用來部署範本。 除了 Azure CLI,您也可以使用 Azure PowerShell、Azure 入口網站 和 REST API。 若要了解其他部署方法,請參閱<部署範本>。

檢閱已部署的資源

  1. 若要確認部署,請執行下列 命令來列出資源 ,並在輸出中尋找新的布建服務和IoT中樞:

     az resource list -g "${projectName}rg"
    
  2. 若要確認中樞已連結至 DPS 資源,請執行下列 DPS 擴充功能 show 命令

     az iot dps show --name <Your provisioningServiceName>
    

    請注意鏈接在成員上的中 iotHubs 樞。

清除資源

此集合中的其他快速入門會以本快速入門為基礎。 如果您打算繼續使用後續的快速入門或教學課程,請勿清除本快速入門中建立的資源。 如果您不打算繼續,您可以使用 Azure 入口網站 或 Azure CLI 來刪除資源群組及其所有資源。

若要從 Azure 入口網站 刪除資源群組及其所有資源,只要開啟資源群組,然後選取 [刪除資源群組] 和頂端。

若要刪除使用 Azure CLI 部署的資源群組:

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

您也可以使用下列任何選項來刪除資源群組和個別資源:

  • Azure 入口網站
  • PowerShell
  • REST API
  • 針對 Azure Resource Manager 或 IoT 中樞 裝置布建服務發行的支持平臺 SDK

下一步

在本快速入門中,您已部署IoT中樞和裝置布建服務實例,並連結這兩個資源。 若要瞭解如何使用此設定來布建裝置,請繼續進行建立裝置的快速入門。