快速入门:使用 Python 服务 SDK 创建 DPS 注册
在本快速入门中,你将以编程方式在 Azure IoT 中心设备预配服务 (DPS) 中创建单个设备注册。 Python 预配服务 SDK 将用于创建注册。
先决条件
- 完成使用 Azure 门户设置 IoT 中心设备预配服务。
- 具有活动订阅的 Azure 帐户。 创建试用版订阅。
- Python 2.x 或 3.x。 本快速入门将在下面安装 Python 预配服务 SDK。
- Pip(如果 Python 分发版中未附带)。
- 认可密钥。 使用创建和预配模拟设备中的步骤,或使用 SDK 随附的认可密钥,如下所述。
重要
本文仅适用于已弃用的 V1 Python SDK。 V2 中尚不提供用于 IoT 中心设备预配服务的设备和服务客户端。 该团队目前正在努力使 V2 具有功能奇偶一致性。
准备环境
下载并安装 Python 2.x 或 3.x。 请确保根据安装程序的要求,使用 32 位或 64 位安装。 在安装过程中出现提示时,请确保将 Python 添加到特定于平台的环境变量中。
对于 Python 预配服务 SDK,请选择以下选项之一:
生成并编译 Azure IoT Python SDK。 按照这些说明生成 Python 包。 如果使用 Windows OS,则另请安装 Visual C++ 可再发行组件包,以便使用 Python 中的本机 DLL。
安装或升级 pip(Python 包管理系统),然后通过以下命令安装该包:
pip install azure-iothub-provisioningserviceclient
本主题演示了以下选项卡中的对称密钥和 TPM 注册。
对于对称密钥设备注册,需要设备的主密钥和辅助密钥。 如果你没有有效的对称密钥,可以在本例中使用以下示例密钥:
主对称密钥
UmorGiEVPNIQuaWGXXbe8v9gWayS7XtOZmNMo6DEaEXP65GvhuK3OeRf8RVZ9BymBCHxNg3oRTey0pUHUwwYKQ==
辅助对称密钥
Zx8/eE7PUBmnouB1qlNQxI7fcQ2HbJX+y96F1uCVQvDj88jFL+q6L9YWLLi4jqTmkRPOulHlSbSv2uFgj4vKtw==
修改 Python 示例代码
本节演示如何向示例代码添加单个注册的预配详细信息。
使用文本编辑器,新建一个 Enrollment.py 文件。
在 Enrollment.py 文件的开头添加以下
import
语句和变量。 然后,将dpsConnectionString
替换为你的连接字符串,该字符串位于 Azure 门户的设备预配服务的“共享访问策略” 下。 将设备的密钥替换为此前在准备环境中记录的值。 最后,创建唯一的registrationid
,确保其只包含小写字母数字和连字符。from provisioningserviceclient import ProvisioningServiceClient from provisioningserviceclient.models import IndividualEnrollment, AttestationMechanism from provisioningserviceclient.protocol.models import SymmetricKeyAttestation CONNECTION_STRING = "Enter your DPS connection string" PRIMARY_KEY = "Add a valid key" SECONDARY_KEY = "Add a valid key" REGISTRATION_ID = "Enter a registration ID"
添加以下函数和函数调用,以实现单个注册的创建:
def main(): print ( "Starting individual enrollment..." ) psc = ProvisioningServiceClient.create_from_connection_string(CONNECTION_STRING) symAtt = SymmetricKeyAttestation(primary_key=PRIMARY_KEY, secondary_key=SECONDARY_KEY) att = AttestationMechanism(type="symmetricKey", symmetric_key=symAtt) ie = IndividualEnrollment.create(REGISTRATION_ID, att) ie = psc.create_or_update(ie) print ( "Individual enrollment successful." ) if __name__ == '__main__': main()
- 保存并关闭 Enrollment.py 文件。
运行示例以创建注册
打开命令提示符并运行此脚本。
python Enrollment.py
观察成功注册后的输出。
在 Azure 门户中导航到预配服务。 选择“管理注册”。 请注意,设备注册显示在“单个注册”选项卡下,使用的名称
registrationid
是以前创建的。
清理资源
如果打算学习 Java 服务示例,请勿清理本快速入门中创建的资源。 如果不打算继续学习,请按以下步骤删除本快速入门中创建的所有资源。
- 关闭计算机上的 Python 示例输出窗口。
- 如果已创建模拟的 TPM 设备,请关闭 TPM 模拟器窗口。
- 在 Azure 门户中导航到你的设备预配服务,选择“管理注册”,然后选择“单个注册”选项卡。 选中通过本快速入门创建的注册项的“注册 ID”旁边的复选框,然后按窗格顶部的“删除”按钮 。
后续步骤
在本快速入门中,你以编程方式为设备创建了单个注册条目。 若要深入了解设备预配,请继续学习本教程有关如何在 Azure 门户中进行设备预配服务设置的内容。