你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Ubuntu 虚拟机上运行 Azure IoT Edge

适用于:IoT Edge 1.5 复选标记IoT Edge 1.5

重要

IoT Edge 1.5 LTS 是受支持的版本。 IoT Edge 1.4 LTS 的生命周期结束日期为 2024 年 11 月 12 日。 如果你使用的是早期版本,请参阅更新 IoT Edge

Azure IoT Edge 运行时将设备转换为 IoT Edge 设备。 可将运行环境部署在从 Raspberry Pi 这样小到工业服务器这样大的设备上。 设置 IoT Edge 运行时后,从云将业务逻辑部署到设备。

若要详细了解 IoT Edge 运行时的工作原理及其组件,请参阅 了解 Azure IoT Edge 运行时及其体系结构

本文列出了使用提供的设备连接字符串安装并配置 Azure IoT Edge 运行时的 Ubuntu 虚拟机的步骤。 部署使用 iotedge-vm-deploy 项目存储库中基于 cloud-initAzure 资源管理器模板

首次启动时,虚拟机 使用 cloud-init 安装最新版本的 Azure IoT Edge 运行时。 它还在运行时启动之前设置提供的连接字符串,以便快速设置和连接 IoT Edge 设备,而无需启动 SSH 或远程桌面会话。

使用“部署到 Azure”按钮进行部署

通过 “部署到 Azure 按钮 ”,可以从 GitHub 快速部署 Azure 资源管理器模板 。 本部分介绍如何使用 iotedge-vm-deploy 项目存储库中的“部署到 Azure”按钮。

  1. 使用 iotedge-vm-deploy Azure 资源管理器模板部署已启用 Azure IoT Edge 的 Linux VM。 若要开始,请选择以下按钮:

    用于 iotedge-vm-deploy 的“部署到 Azure”按钮

  2. 在新窗口中,为可用窗体字段输入值:

    显示 iotedge-vm-deploy 模板的屏幕截图。

    字段 说明
    订阅 要将虚拟机部署到的活动 Azure 订阅。
    资源组 用于包含该虚拟机及其相关资源的现有或新建的资源组。
    区域 部署虚拟机的 地理区域 。 此值默认为所选资源组的位置。
    DNS 标签前缀 选择作为虚拟机主机名前缀的必需值。
    管理员用户名 部署时具有根权限的用户名。
    设备连接字符串 IoT 中心创建的设备的设备连接字符串
    VM 大小 要部署的虚拟机 的大小
    Ubuntu OS 版本 要安装在基本虚拟机上的 Ubuntu OS 版本。
    身份验证类型 根据偏好选择 sshPublicKey密码
    管理员密码或密钥 SSH 公钥或密码值,具体取决于所选的身份验证类型。

    选择 Next : Review + create 以查看条款,然后选择“ 创建 ”以启动部署。

  3. 检查部署是否已成功完成。 虚拟机资源将部署到所选资源组中。 记下计算机名称,其格式为 vm-0000000000000。 此外,请注意关联的 DNS 名称,格式为 <dnsLabelPrefix>.<___location>.cloudapp.azure.com。

    可以在 Azure 门户中新虚拟机的“概述”部分找到 DNS 名称

    显示 IoT Edge VM 的 DNS 名称的屏幕截图。

  4. 设置后若要通过 SSH 连接到此 VM,请在命令中使用关联的“DNS 名称”:

从 Azure CLI 部署

  1. 使用以下命令来确保已安装 Azure CLI IoT 扩展:

    az extension add --name azure-iot
    
  2. 接下来,如果在桌面上使用 Azure CLI,请先登录:

    az login
    
  3. 如果你有多个订阅,请选择要使用的订阅:

    1. 列出订阅:

      az account list --output table
      
    2. 复制要使用的订阅的 SubscriptionID 字段。

    3. 使用复制的 ID 设置工作订阅:

      az account set -s <SubscriptionId>
      
  4. 创建新资源组(或者在后续步骤中指定现有的资源组):

    az group create --name IoTEdgeResources --___location westus2
    
  5. 创建新虚拟机:

    若要使用 password 的 authenticationType,请使用以下示例

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    若要使用 SSH 密钥进行身份验证,请将 authenticationType 指定为 ,然后在 adminPasswordOrKey 参数中提供 SSH 密钥的值。sshPublicKey 请参阅以下示例:

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. 验证部署是否已成功完成。 虚拟机资源应会部署到所选的资源组中。 记下计算机名称,格式为 vm-0000000000000。 另外,请记下关联的 DNS 名称,其格式为 <dnsLabelPrefix>.<___location>.cloudapp.azure.com

    可以从上一步的 JSON 格式输出(作为公共 SSH 条目的一部分的输出部分)获取 DNS 名称。 使用此值通过 SSH 连接到新部署的计算机。

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    还可以从 Azure 门户中新部署的虚拟机的“概述”部分获取 DNS 名称

    显示 IoT Edge VM 的 DNS 名称的屏幕截图。

  7. 设置后若要通过 SSH 连接到此 VM,请在命令中使用关联的“DNS 名称”:

后续步骤

预配了已安装运行时的 IoT Edge 设备后,请部署 IoT Edge 模块

如果在安装 IoT Edge 运行时时遇到问题,请参阅 故障排除 页。

若要将现有安装更新到最新版本的 IoT Edge,请参阅 更新 IoT Edge 安全守护程序和运行时

如果要打开端口以通过 SSH 或其他入站连接访问 VM,请参阅有关 打开 Linux VM 的端口和终结点的 Azure 虚拟机文档。