适用于: IoT Edge 1.1
重要
IoT Edge 1.1 终止支持日期为 2022 年 12 月 13 日。 请查看 Microsoft 产品生命周期,了解此产品、服务、技术或 API 的受支持情况。 有关更新到最新版本的 IoT Edge 的详细信息,请参阅 更新 IoT Edge。
本文提供用于注册和预配 Windows IoT Edge 设备的端到端说明。
注释
从 Azure IoT Edge 版本 1.2 开始,不支持使用 Windows 容器的 Azure IoT Edge。
请考虑使用新方法在 Windows 设备上运行 IoT Edge,适用于 Linux 的 Azure IoT Edge on Windows。
若要在 Windows 上使用适用于 Linux 的 Azure IoT Edge,可以按照 等效的操作指南中的步骤进行操作。
连接到 IoT 中心的每个设备都有一个设备 ID,用于跟踪云到设备或设备到云的通信。 可以使用设备连接信息来配置设备,这些信息包括 IoT 中心主机名、设备 ID 以及设备用于向 IoT 中心进行身份验证的信息。
本文中的步骤演示了一个名为“手动预配”的过程。在手动预配过程中,你可以将单个设备连接到其 IoT 中心。 对于手动预配,可以通过两种方式来验证 IoT Edge 设备:
对称密钥:你在 IoT 中心创建新设备标识时,服务将创建两个密钥。 将其中一个密钥置于设备上,并在进行身份验证时将该密钥提供给 IoT 中心。
此身份验证方法更容易上手,但不够安全。
X.509 自签名:创建两个 X.509 标识证书并将其置于设备上。 在 IoT 中心创建新的设备标识时,需要提供两个证书的指纹。 设备在向 IoT 中心进行身份验证时会提供一个证书,IoT 中心会验证该证书是否与其指纹匹配。
此身份验证方法更加安全,建议用于生产方案。
本文介绍如何使用对称密钥作为身份验证方法。 若要使用 X.509 证书,请参阅 使用 X.509 证书在 Windows 上创建和预配 IoT Edge 设备。
注释
如果要设置多个设备,并且不想手动预配每个设备,请参阅以下文章之一来了解 IoT Edge 如何与 IoT 中心设备预配服务配合工作:
先决条件
本文介绍如何注册 IoT Edge 设备并在设备上安装 IoT Edge。 这些任务具有不同的先决条件和用于完成这些任务的实用程序。 在继续操作之前,请确保已满足所有先决条件。
设备管理工具
你可以使用 Azure 门户、Visual Studio Code 或 Azure CLI 来完成注册设备的步骤。 每个实用工具都有自己的先决条件:
Azure 订阅中的免费或标准 IoT 中心。
设备要求
一台 Windows 设备。
具有 Windows 容器的 IoT Edge 需要 Windows 版本 1809/内部版本 17763,这是最新的 Windows 长期支持版本。 请务必查看 受支持的系统列表,以获取支持的 SKU 列表。
请注意,容器和主机上的 Windows 版本必须匹配。 有关详细信息,请参阅 由于 OS 不匹配而无法启动模块。
注册您的设备
根据你的偏好,你可以使用 Azure 门户、Visual Studio Code 或 Azure CLI 来注册设备。
在 Azure 门户你的 IoT 中心内,IoT Edge 设备的创建和管理独立于不支持 Edge 的 IoT 设备。
登录 Azure 门户,导航到 IoT 中心。
在左侧窗格中,从菜单中选择“设备”,然后选择“添加设备”。
在“创建设备”页面上,提供以下信息:
- 创建描述性设备 ID。 记下此设备 ID,因为稍后将使用它。
- 勾选“IoT Edge 设备”复选框。
- 选择“对称密钥”作为身份验证类型。
- 使用默认设置自动生成身份验证密钥并将新设备连接到中心。
选择 保存。
现在您已经在 IoT 中心注册了一个设备,请检索用于完成 IoT Edge 运行时安装和配置的信息。
查看已注册设备并检索预配信息
使用对称密钥身份验证的设备需要使用其连接字符串来完成 IoT Edge 运行时的安装和预配。
连接到 IoT 中心并已启用 Edge 的设备将在“设备”页上列出。 可以按类型 IoT Edge 设备筛选列表。
当您准备好设置设备时,您需要一个连接字符串,该字符串将您的物理设备与其在 IoT 中心的标识相连接。
使用对称密钥进行身份验证的设备有自己的连接字符串,可以在门户中复制这些连接字符串。
- 在门户中的“设备”页中,从列表中选择 IoT Edge 设备 ID。
- 复制“主连接字符串”或“辅助连接字符串”的值 。
安装 IoT Edge
在本部分中,你将为 IoT Edge 准备 Windows VM 或物理设备。 然后安装 IoT Edge。
Azure IoT Edge依赖于与 OCI 兼容的容器运行时。 Moby(基于 Moby 的引擎)包含在安装脚本中,这意味着没有安装引擎的其他步骤。
要安装 IoT Edge 运行时软件:
以管理员身份运行 PowerShell。
使用 PowerShell 的 AMD64 会话,而不是 PowerShell(x86)。 如果不确定所使用的会话类型,请运行以下命令:
(Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
运行 Deploy-IoTEdge 命令,该命令执行以下任务:
- 检查 Windows 设备是否在受支持的版本上
- 打开容器功能
- 下载 “moby” 引擎和 “IoT Edge” 运行时
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Deploy-IoTEdge
如果系统提示,请重启设备。
在设备上安装 IoT Edge 时,可以使用其他参数来修改该过程,包括:
- 将流量引导到代理服务器通过
- 将安装程序指向用于脱机安装的本地目录
有关这些附加参数的详细信息,请参阅 具有 Windows 容器的 IoT Edge 的 PowerShell 脚本。
为设备预配其云标识
现在,容器引擎和 IoT Edge 运行时已安装在设备上,接下来即可完成下一步,即使用其云标识和身份验证信息设置设备。
在 IoT Edge 设备上,以管理员身份运行 PowerShell。
使用 Initialize-IoTEdge 命令在计算机上配置 IoT Edge 运行时。 此命令默认使用 Windows 容器进行手动预配。
. {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; ` Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
如果将 IoTEdgeSecurityDaemon.ps1 脚本下载到设备上进行脱机或特定版本安装,请务必引用脚本的本地副本。
. <path>/IoTEdgeSecurityDaemon.ps1 Initialize-IoTEdge -ManualConnectionString -ContainerOs Windows
出现提示时,请提供在上一部分检索到的设备连接字符串。 设备连接字符串将物理设备与 IoT 中心的设备 ID 相关联,并提供身份验证信息。
设备连接字符串采用以下格式,不应包含引号:
HostName={IoT_hub_name}.azure-devices.net;DeviceId={device_name};SharedAccessKey={key}
手动预配设备时,可以使用其他参数来修改该过程,包括:
- 将流量引导到代理服务器通过
- 声明特定的 edgeAgent 容器镜像,如果该镜像在私有注册表中,则提供验证凭据。
有关这些附加参数的详细信息,请参阅 具有 Windows 容器的 IoT Edge 的 PowerShell 脚本。
验证成功的配置
请验证运行时是否已在您的 IoT Edge 设备上成功安装和配置。
检查 IoT Edge 服务的状态。
Get-Service iotedge
检查服务日志。
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog
列出正在运行的模块。
iotedge list
脱机或特定版本安装(可选)
本部分中的步骤适用于标准安装步骤未涵盖的方案。 这可能包括:
- 离线安装 IoT Edge
- 安装候选发布版本
- 安装非最新版本
在安装期间下载三个文件:
- PowerShell 脚本,其中包含安装说明
- Microsoft Azure IoT Edge cab,其中包含 IoT Edge 安全守护程序(iotedged)、Moby 容器引擎和 Moby CLI
- Visual C++ 可再发行包(VC 运行时)安装程序
如果设备在安装过程中处于脱机状态,或者想要安装特定版本的 IoT Edge,则可以提前将这些文件下载到设备。 安装时,请将安装脚本指向包含下载文件的目录。 安装程序先检查该目录,然后仅下载未找到的组件。 如果所有文件都脱机可用,则可以在没有 Internet 连接的情况下进行安装。
有关最新的 IoT Edge 安装文件以及以前的版本,请参阅 Azure IoT Edge 版本。
找到要安装的版本,并从发行说明 资产 部分下载以下文件到 IoT 设备上:
- IoTEdgeSecurityDaemon.ps1
- Microsoft-Azure-IoTEdge-amd64.cab 来自 1.1 版本发布渠道。
请务必使用与所使用的 .cab 文件相同的版本中的 PowerShell 脚本,因为功能会更改以支持每个版本中的功能。
如果下载的 .cab 文件具有体系结构后缀,请将该文件重命名为仅 Microsoft-Azure-IoTEdge.cab。
(可选)下载 Visual C++ 可再发行的安装程序。 例如,PowerShell 脚本使用此版本:vc_redist.x64.exe。 将安装程序保存在 IoT 设备上的同一文件夹中,与 IoT Edge 文件相同。
若要使用脱机组件进行安装,点源 PowerShell 脚本的本地副本。
使用 参数运行
-OfflineInstallationPath
命令。 提供文件目录的绝对路径。 例如,. path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1 Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
部署命令将使用在提供的本地文件目录中找到的任何组件。 如果缺少 .cab 文件或 Visual C++ 安装程序,它将尝试下载它们。
卸载 IoT Edge
如果要从 Windows 设备中删除 IoT Edge 安装,请使用管理 PowerShell 窗口中的 Uninstall-IoTEdge 命令。 此命令将删除 IoT Edge 运行时以及现有配置和 Moby 引擎数据。
. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge
有关卸载选项的详细信息,请使用命令 Get-Help Uninstall-IoTEdge -full
。
后续步骤
转到部署 IoT Edge 模块,了解如何将模块部署到设备上。