你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:针对 IoT 即插即用快速入门和教程设置环境
需要在 Azure 订阅中配置 IoT 中心和设备预配服务 (DPS),然后才能完成任何 IoT 即插即用快速入门和教程。 你还需要具备示例应用程序和 Azure IoT 资源管理器工具所使用的模型文件的本地副本。
重要
本文介绍使用共享访问签名连接到服务的步骤。 虽然可使用此身份验证方法进行测试和评估,但使用 Microsoft Entra ID 或托管标识对设备进行身份验证是一种更安全的方法。 有关详细信息,请参阅安全最佳做法和云安全。
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 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。
为资源创建一个 Azure 资源组:
az group create --name my-pnp-resourcegroup --location centralus
创建 IoT 中心。 以下命令使用名称 my-pnp-hub
作为要创建的 IoT 中心的名称示例。 为 IoT 中心选择一个唯一名称来替代 my-pnp-hub
:
az iot hub create --name my-pnp-hub --resource-group my-pnp-resourcegroup --sku F1 --partition-count 2
创建一个 DPS 实例。 以下命令使用名称 my-pnp-dps
作为要创建的 DPS 实例的名称示例。 为 DPS 实例选择一个唯一名称来替代 my-pnp-dps
:
az iot dps create --name my-pnp-dps --resource-group my-pnp-resourcegroup
若要将 DPS 实例链接到 IoT 中心,请使用以下命令。 将 my-pnp-dps
和 my-pnp-hub
替换为之前选择的唯一名称:
hubConnectionString=$(az iot hub connection-string show -n my-pnp-hub --key primary --query connectionString -o tsv)
az iot dps linked-hub create --dps-name my-pnp-dps --resource-group my-pnp-resourcegroup --location centralus --connection-string $hubConnectionString
某些快速入门和教程对 IoT 中心使用连接字符串。 设置 Azure IoT 资源管理器工具时,也需要连接字符串。 检索该连接字符串并立即记下它。 将 my-pnp-hub
替换为 IoT 中心选择的唯一名称:
az iot hub connection-string show -n my-pnp-hub --key primary --query connectionString
大多数快速入门和教程都使用 DPS 配置的 ID 范围。 检索该 ID 范围并立即记下它。 将 my-pnp-dps
替换为 DPS 实例选择的唯一名称:
az iot dps show --name my-pnp-dps --query properties.idScope
所有快速入门和教程都使用 DPS 设备注册。 使用以下命令在 DPS 实例中创建my-pnp-device
单设备注册。 将 my-pnp-dps
替换为 DPS 实例选择的唯一名称。 记下注册 ID 和主密钥,以便在快速入门和教程中使用:
az iot dps enrollment create --attestation-type symmetrickey --dps-name my-pnp-dps --resource-group my-pnp-resourcegroup --enrollment-id my-pnp-device --device-id my-pnp-device --query '{registrationID:registrationId,primaryKey:attestation.symmetricKey.primaryKey}'
设置 5 个环境变量以在快速入门和教程中配置示例,从而使用 设备预配服务 (DPS) 连接到 IoT 中心:
- IOTHUB_DEVICE_SECURITY_TYPE:值
DPS
。 - IOTHUB_DEVICE_DPS_ID_SCOPE::你之前记下的 DPS ID 范围。
- IOTHUB_DEVICE_DPS_DEVICE_ID:值
my-pnp-device
。 - IOTHUB_DEVICE_DPS_DEVICE_KEY:你之前记下的注册主密钥。
- IOTHUB_DEVICE_DPS_ENDPOINT:值
global.azure-devices-provisioning.net
服务示例需要以下环境变量来确定要连接到的中心和设备:
- IOTHUB_CONNECTION_STRING:之前记下的 IoT 中心连接字符串。
- IOTHUB_DEVICE_ID:
my-pnp-device
。
例如,在 Linux bash shell 中:
export IOTHUB_DEVICE_SECURITY_TYPE="DPS"
export IOTHUB_DEVICE_DPS_ID_SCOPE="<Your ID scope>"
export IOTHUB_DEVICE_DPS_DEVICE_ID="my-pnp-device"
export IOTHUB_DEVICE_DPS_DEVICE_KEY="<Your enrolment primary key>"
export IOTHUB_DEVICE_DPS_ENDPOINT="global.azure-devices-provisioning.net"
export IOTHUB_CONNECTION_STRING="<Your IoT hub connection string>"
export IOTHUB_DEVICE_ID="my-pnp-device"
例如,在 Windows 命令行:
set IOTHUB_DEVICE_SECURITY_TYPE=DPS
set IOTHUB_DEVICE_DPS_ID_SCOPE=<Your ID scope>
set IOTHUB_DEVICE_DPS_DEVICE_ID=my-pnp-device
set IOTHUB_DEVICE_DPS_DEVICE_KEY=<Your enrolment primary key>
set IOTHUB_DEVICE_DPS_ENDPOINT=global.azure-devices-provisioning.net
set IOTHUB_CONNECTION_STRING=<Your IoT hub connection string>
set IOTHUB_DEVICE_ID=my-pnp-device
快速入门和教程对温度控制器和恒温器设备使用示例模型文件。 若要下载示例模型文件:
在本地计算机上创建名为 models 的文件夹。
右键单击 TemperatureController.json 并将 JSON 文件保存到 models 文件夹中。
右键单击 Thermostat.json 并将 JSON 文件保存到 models 文件夹中。
快速入门和教程使用 Azure IoT 资源管理器工具。 请转到 Azure IoT 资源管理器版本,展开最新版本的资产列表。 下载并安装适合你的操作系统的最新版应用程序。
首次运行该工具时,系统将提示你输入 IoT 中心连接字符串。 使用你之前记下的连接字符串。
将工具配置为使用你之前下载的模型文件。 在工具的主页中,选择“IoT 即插即用设置”,然后选择“+添加”>“本地文件夹”。 选择你之前创建的模型文件夹。 然后,选择“保存”来保存设置。
若要了解详细信息,请参阅安装并使用 Azure IoT 资源管理器。
可对所有 IoT 即插即用快速入门和教程使用 IoT 中心和 DPS 实例,因此你只需完成本文中所述步骤一次即可。 完成后,可使用以下命令从订阅中删除它们:
az group delete --name my-pnp-resourcegroup
你现已设置好环境,接下来可尝试一个快速入门或教程,例如: