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

现有Azure资源可否通过ARM/Bicep纳管无需删除重建?

结论:完全不需要删除重建现有资源,可直接为已部署的Azure资源生成匹配的ARM/Bicep文件纳入CD流程

Azure原生支持对存量资源导出声明式定义,配合默认的增量部署模式,后续所有资源变更都可以通过修改模板经CD完成,不会影响已运行的业务和存量数据。

具体操作流程

1. 导出存量资源的模板

你可以选择两种方式导出:

  • 从Azure门户导出:进入对应资源组的「导出模板」页,勾选所有需要纳入管理的资源(Function App、App Service计划、存储账户、App Insights、存储队列/表等),直接导出ARM模板,也可以后续再转成Bicep
  • 用Azure CLI直接导出Bicep(更高效),执行命令:
az bicep export --resource-group <你的资源组名称> --resource <资源ID1> <资源ID2> --output-file main.bicep

你可以按需指定要导出的资源ID,不需要导出资源组内所有无关资源。

2. 清理并优化导出的模板

导出的模板默认会包含大量运行时生成的冗余属性,你只需要做简单清理:

  • 删除自动生成的只读属性,比如etag、自动生成的id、时间戳属性等
  • 保留你需要自定义管控的配置项,比如Function App运行时版本、存储账户SKU等级、App Insights数据保留期等
  • 可以将环境相关的配置(比如资源名前缀、环境标识、扩容配置)提取为参数/变量,方便后续多环境复用

3. 验证模板与现有资源的兼容性

验证过程不会修改任何现有资源,完全安全:

  • 执行Azure CLI的假设操作命令:
az deployment group what-if --resource-group <你的资源组名称> --template-file main.bicep
  • 只要输出的变更列表里没有「删除」「重建」类的操作,只有配置修改或者无变更,就说明模板和现有资源匹配度符合要求
  • 请确保部署时使用默认的增量部署模式,该模式只会更新模板中定义的属性,不会删除模板未提及的现有资源,也不会修改你已经部署的函数代码、存量队列/表数据

4. 纳入现有GitHub Actions CD流程

  • 将验证通过的Bicep/ARM模板提交到代码仓库
  • 在现有workflow的函数代码部署步骤之前,新增模板部署步骤即可
  • 后续要修改资源配置(比如升级存储SKU、新增存储队列、修改Function App环境变量),直接修改模板提交,CD会自动增量更新现有资源,和你现有的槽位交换流程完全兼容

注意事项

  • 如果导出时没有包含存储队列、表这类存储子资源,你可以手动在Bicep中补充对应子资源定义,部署时只会校验配置,不会清空存量数据
  • 部署槽位也可以纳入模板管理,后续槽位的配置变更也可以通过模板统一管控,不会影响你已有的槽位交换逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:54:05