You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单条Azure Pipeline和Release向双环境同一IoT Edge设备发布两个模块

单Azure Pipeline+单Release实现双环境IoT Edge模块发布方案

1. 调整Release管道结构

  • 在现有单个Release中新增两个独立阶段:Staging部署、Production部署,可按需给Production阶段配置人工审批规则,避免误发布
  • 两个阶段直接复用Build管道生成的产物,不需要重复执行模块构建逻辑

2. 拆分阶段级变量

把原全局配置的ACR地址、用户名、密码、IoT Hub连接串、设备ID等参数,拆分为阶段级私有变量:

  • Staging阶段变量可统一加stg_前缀,例如stg_acr_url、stg_iothub_connection
  • Production阶段变量可统一加prod_前缀,例如prod_acr_url、prod_iothub_connection
  • 每个阶段执行任务时,优先读取当前阶段的变量值,不共用全局变量

3. 区分环境的镜像与模块标识

修改配置文件的参数规则,避免环境间资源冲突:

  • 修改module.json的镜像标签规则为${{ variables['EnvironmentName'] }}-$(Build.BuildId),最终Staging环境镜像标签形如stg-20240520.1,Production环境形如prod-20240520.1,避免同版本镜像互相覆盖
  • 如果你是同一台IoT Edge设备同时运行两个环境的模块,还需要给模块名加环境前缀,例如stg_xxx模块、prod_xxx模块,避免设备上模块命名冲突
  • 若两个环境共用同一个ACR,可在Build阶段仅构建一次通用标签的镜像,Release各阶段给镜像追加当前环境的专属标签后再推送,减少重复构建耗时

4. 分阶段执行部署逻辑

每个阶段内按以下顺序执行任务即可:

  1. 变量替换:用文件替换任务,把deployment.template.json中的占位符替换为当前阶段的变量值
  2. 生成部署清单:执行Generate IoT Edge deployment manifest任务,指定当前阶段的变量组
  3. 设备部署:执行Deploy to IoT Edge device任务,传入当前阶段对应的IoT Hub连接串、设备ID完成部署

5. 发布验证

先完成Staging阶段的部署与功能验证后,再触发Production阶段的审批与执行,到IoT Hub对应设备的模块列表中确认模块版本、运行状态符合预期即可。

内容的提问来源于stack exchange,提问作者Dragan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:54:03