分享方式:


快速入門:使用 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 入口網站中開啟要部署的範本。

將 Resource Manager 範本部署至 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 資源。

    將 Resource Manager 範本部署至 Azure 的按鈕。

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

    入口網站上ARM範本部署參數

    除非有針對下列指定,否則請使用預設值來建立 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 extension 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 中樞和裝置佈建服務執行個體,並已連結這兩個資源。 若要了解如何使用這項設定來佈建裝置,請繼續進行建立裝置的快速入門。