快速入门:使用 Azure CLI 设置 IoT 中心设备预配服务
Azure CLI 用于从命令行或脚本创建和管理 Azure 资源。 本快速入门详述了如何使用 Azure CLI 创建 IoT 中心和 IoT 中心设备预配服务实例并将两个服务链接到一起。
如果没有 Azure 试用版订阅,请在开始前创建 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 connection-string show 命令获取连接字符串,并使用其输出设置一个变量,稍后链接这两个资源时,需要用到该变量。
以下示例将 hubConnectionString 变量设置为中心的 iothubowner 策略的主键连接字符串值(可以使用 --policy-name
参数指定其他策略) 。 用“my-sample-hub”替换先前选择的唯一 IoT 中心名称 。 此命令使用 Azure CLI 查询和输出选项从命令输出提取连接字符串。
hubConnectionString=$(az iot hub connection-string show --name my-sample-hub --key primary --query connectionString -o tsv)
可以使用 echo
命令查看连接字符串。
echo $hubConnectionString
注意
这两个命令适用于在 Bash 下运行的主机。
如果使用本地 Windows/CMD shell 或 PowerShell 主机,请修改这些命令,以便使用该环境的正确语法。
将 IoT 中心和预配服务相链接
使用 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 集合中。
清理资源
本教程系列中的其他快速入门教程是在本文的基础上制作的。 如果打算继续学习后续的快速入门或相关教程,请不要清理在本快速入门中创建的资源。 如果不打算继续,可以使用以下命令删除预配服务、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 中心和设备预配服务实例,并链接了这两个资源。 若要了解如何使用此设置来预配设备,请继续学习本快速入门中关于如何创建设备的内容。