快速入门:使用 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 资源的逻辑容器。

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

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

提示

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

创建 IoT 中心

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

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

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

创建设备预配服务实例

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

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

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

提示

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

获取 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 主机,请修改这些命令,以便使用该环境的正确语法。

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

以下示例将位于 chinanorth3 位置的名为 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 chinanorth3

命令可能需要几分钟时间才能完成。

验证预配服务

使用 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 中心和设备预配服务实例,并链接了这两个资源。 若要了解如何使用此设置来预配设备,请继续学习本快速入门中关于如何创建设备的内容。