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

使用 Bicep 在 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 CLI 部署

无法部署远程 Bicep 文件。 在本地将 Bicep 文件的副本保存为 main.bicep。

  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,请参阅以下示例:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-file "main.bicep" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --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 adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    若要使用 SSH 密钥进行身份验证,请指定 authenticationTypesshPublicKey然后在参数中 adminPasswordOrKey 提供 SSH 密钥的值。 例如:

    #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-file "main.bicep" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --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 adminUsername='<REPLACE_WITH_USERNAME>' \
    --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 虚拟机的 DNS 名称的屏幕截图。

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

后续步骤

预配了安装运行时的 IoT Edge 设备后,现在可以部署 IoT Edge 模块

如果在正确安装 IoT Edge 运行时时遇到问题,请查看 故障排除 页。

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

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