快速入门:使用 Azure CLI 设置 IoT 中心设备预配服务

Azure CLI 用于从命令行或脚本创建和管理 Azure 资源。 本快速入门详述了如何使用 Azure CLI 创建 IoT 中心和 IoT 中心设备预配服务实例并将两个服务链接到一起。

如果没有 Azure 订阅,请在开始前创建一个试用订阅

重要

在本快速入门中创建的 IoT 中心和预配服务将会充当可以公开发现的 DNS 终结点。 如果决定更改用于这些资源的名称,请确保不使用任何敏感信息。

必备条件

  • 如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

创建资源组

使用“az group create”命令创建资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

以下示例在 chinanorth 位置创建名为 my-sample-resource-group 的资源组 。

az group create --name my-sample-resource-group --location chinanorth

提示

此示例在“中国北部”位置创建资源组。 可运行 az account list-locations -o table 命令,查看可用位置的列表。

创建 IoT 中心

使用 az iot hub create 命令创建 IoT 中心。

以下示例在 chinanorth 位置创建名为 my-sample-hub 的 IoT 中心 。 IoT 中心名称在 Azure 中必须是全局唯一的,因此请向示例名称添加一个唯一的前缀或后缀,或者选择一个新名称。 请确保名称遵循 IoT 中心的正确命名约定:名称长度应为 3-50 个字符,只能包含大写或小写字母数字字符或连字符(“-”)。

az iot hub create --name my-sample-hub --resource-group my-sample-resource-group --location chinanorth

创建设备预配服务实例

使用 az iot dps create 命令创建设备预配服务实例。

以下示例在“chinanorth”位置创建名为 my-sample-dps 的设备预配服务实例。 还必须为自己的实例选择一个全局唯一的名称。 请确保名称遵循 IoT 中心设备预配服务的正确命名约定:名称长度应为 3-64 个字符,只能包含大写或小写字母数字字符或连字符(“-”)。

az iot dps create --name my-sample-dps --resource-group my-sample-resource-group --location chinanorth

提示

此示例在“中国北部”位置创建预配服务。 若要查看可用位置的列表,可以运行 az provider show --namespace Microsoft.Devices --query "resourceTypes[?resourceType=='ProvisioningServices'].locations | [0]" --out table 命令,也可以转到Azure 状态页,在其中搜索“设备预配服务”。 在命令中,可以使用一个单词或多个单词的格式来指定位置,例如:chinanorth 等。该值不区分大小写。 如果使用多个单词的格式来指定位置,请将值置于引号中,例如 --location "China North"

获取 IoT 中心的连接字符串

需要提供 IoT 中心的连接字符串才能将其与设备预配服务链接到一起。 使用 az iot hub show-connection-string 命令获取连接字符串,并使用其输出设置一个变量。链接这两个资源时,需要用到该变量。

以下示例将 hubConnectionString 变量设置为中心的 iothubowner 策略的主键连接字符串值(可以使用 --policy-name 参数指定其他策略) 。 用“my-sample-hub”替换先前选择的唯一 IoT 中心名称 。 此命令使用 Azure CLI 查询输出选项从命令输出提取连接字符串。

hubConnectionString=$(az iot hub show-connection-string --name my-sample-hub --key primary --query connectionString -o tsv)

可以使用 echo 命令查看连接字符串。

echo $hubConnectionString

注意

这两个命令适用于在 Bash 下运行的主机。

如果使用本地 Windows/CMD shell 或 PowerShell 主机,请修改这些命令,以便使用该环境的正确语法。

使用 az iot dps linked-hub create 命令将 IoT 中心与预配服务相链接。

以下示例将 chinanorth 位置中名为 my-sample-hub 的 IoT 中心与名为 my-sample-dps 的设备预配服务相链接 。 用这些名称替换先前选择的唯一 IoT 中心和设备预配服务名称。 该命令使用上一步在 hubConnectionString 变量中存储的 IoT 中心的连接字符串 。

az iot dps linked-hub create --dps-name my-sample-dps --resource-group my-sample-resource-group --connection-string $hubConnectionString --location chinanorth

此命令可能需要花费几分钟时间完成。

验证预配服务

使用 az iot dps show 命令获取预配服务的详细信息。

以下示例获取名为 my-sample-dps 的预配服务的详细信息。 用此名称替换自己的设备预配服务名称。

az iot dps show --name my-sample-dps

链接的 IoT 中心显示在 properties.iotHubs 集合中。

Verify Provisioning Service

清理资源

本教程系列中的其他快速入门教程是在本文的基础上制作的。 如果打算继续学习后续的快速入门或相关教程,请不要清理在本快速入门中创建的资源。 如果不打算继续,可以使用以下命令删除预配服务、IoT 中心或资源组及其所有资源。 使用自己资源的名称替换以下命令中包含的资源的名称。

若要删除预配服务,请运行 az iot dps delete 命令:

az iot dps delete --name my-sample-dps --resource-group my-sample-resource-group

若要删除 IoT 中心,请运行 az iot hub delete 命令:

az iot hub delete --name my-sample-hub --resource-group my-sample-resource-group

若要删除资源组及其所有资源,请运行 az group delete 命令:

az group delete --name my-sample-resource-group

后续步骤

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