你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Bicep 设置 IoT 中心设备预配服务 (DPS)

可以使用 Bicep 文件以编程方式设置预配设备所需的 Azure 云资源。 这些步骤显示如何使用 Bicep 文件创建 IoT 中心和新的 IoT 中心设备预配服务实例。 也使用 Bicep 文件将 IoT 中心链接到 DPS 资源。 此链接支持 DPS 资源根据配置的分配策略将设备分配到中心。

Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 它提供简明的语法、可靠的类型安全性以及对代码重用的支持。 Bicep 会针对你的 Azure 基础结构即代码解决方案提供最佳创作体验。

本快速入门使用 Azure PowerShellAzure CLI 执行创建资源组和部署 Bicep 文件所需的编程步骤,但可以轻松使用. NET、Ruby 或其他编程语言来执行这些步骤并部署 Bicep 文件。

先决条件

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

查阅 Bicep 文件

本快速入门中使用的 Bicep 文件来自 Azure 快速入门模板

注意

目前没有 Bicep 文件支持使用新的 DPS 资源创建注册。 关于此功能的请求很常见,我们已知晓,且正在考虑实现它。

@description('Specify the name of the Iot hub.')
param iotHubName string

@description('Specify the name of the provisioning service.')
param provisioningServiceName string

@description('Specify the location of the resources.')
param location string = resourceGroup().location

@description('The SKU to use for the IoT Hub.')
param skuName string = 'S1'

@description('The number of IoT Hub units.')
param skuUnits int = 1

var iotHubKey = 'iothubowner'

resource iotHub 'Microsoft.Devices/IotHubs@2021-07-02' = {
  name: iotHubName
  location: location
  sku: {
    name: skuName
    capacity: skuUnits
  }
  properties: {}
}

resource provisioningService 'Microsoft.Devices/provisioningServices@2022-02-05' = {
  name: provisioningServiceName
  location: location
  sku: {
    name: skuName
    capacity: skuUnits
  }
  properties: {
    iotHubs: [
      {
        connectionString: 'HostName=${iotHub.properties.hostName};SharedAccessKeyName=${iotHubKey};SharedAccessKey=${iotHub.listkeys().value[0].primaryKey}'
        location: location
      }
    ]
  }
}

上述 Bicep 文件中定义了两个 Azure 资源:

在本地将 Bicep 文件的副本保存为 main.bicep。

部署 Bicep 文件

登录到 Azure 帐户,并选择订阅。

  1. 在命令提示符处登录到 Azure:

    az login
    

    按照说明使用代码进行身份验证,并通过 Web 浏览器登录 Azure 帐户。

  2. 如果有多个 Azure 订阅,登录 Azure 可获得与凭据关联的所有 Azure 帐户的访问权限。

    az account list -o table
    

    使用以下命令,选择想要用于运行命令以创建 IoT 中心和 DPS 资源的订阅。 可使用上一命令输出中的订阅名称或 ID:

    az account set --subscription {your subscription name or id}
    
  3. 使用以下命令部署 Bicep 文件。

    提示

    命令将提示输入资源组位置。 可以先运行以下命令,查看可用位置的列表:

    az account list-locations -o table

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters iotHubName={IoT-Hub-name} provisioningServiceName={DPS-name}
    

    将 {IoT-Hub-name} 替换为全局唯一的 IoT 中心名称,将 {DPS-name} 替换为全局唯一的设备预配服务 (DPS) 资源名称。

    创建资源需要花费片刻时间。

查看已部署的资源

  1. 若要验证部署,请运行以下命令并在输出中查找新的配置服务和 IoT 中心:

     az resource list -g exampleRg
    
  2. 若要验证中心是否已链接到 DPS 资源,请运行以下命令。

    az iot dps show --name <Your provisioningServiceName>
    

清理资源

本教程系列中的其他快速入门教程是在本文的基础上制作的。 如果打算继续学习后续的快速入门或相关教程,请不要清理在本快速入门中创建的资源。 如果不打算继续,可以使用 Azure PowerShell 或 Azure CLI 删除资源组及其所有资源。

若要从 Azure 门户中删除资源组及其所有资源,只需打开资源组并选择顶部的“删除资源组”。

删除部署的资源组:

az group delete --name exampleRG

也可以使用 Azure 门户、PowerShell 或 REST API,或者使用受支持的平台 SDK,来删除资源组和单个资源。

后续步骤

在本快速入门中,你已部署 IoT 中心和设备预配服务实例,并链接了这两个资源。 若要了解如何使用此设置来预配设备,请继续学习本快速入门中关于如何创建设备的内容。