如何在Azure中实现类似AWS StackSet的跨订阅ARM模板部署?
Azure 跨订阅(含未来新增)部署ARM模板的实现方案
对应AWS组织级StackSet的需求,Azure主要有以下几种落地方式:
1. Azure Policy 自动部署(推荐)
利用Azure Policy的DeployIfNotExists或Modify效果,结合管理组级别的策略分配,实现全订阅覆盖:
- 策略定义中嵌入ARM模板的部署逻辑,指定模板存储位置(如Azure存储Blob)和参数。
- 将策略分配到目标管理组(对应AWS组织根节点),分配时需指定具备订阅部署权限的系统身份(如
Contributor角色)。 - 现有订阅会在策略评估周期内自动触发模板部署;未来新增订阅加入该管理组后,会被自动纳入评估范围,完成部署。
2. Azure Blueprints 蓝图部署
通过蓝图打包ARM模板、策略等资源,实现批量+动态订阅覆盖:
- 创建蓝图定义,添加需要部署的ARM模板作为蓝图构件(Artifact)。
- 发布蓝图版本后,将其分配到目标管理组,并开启动态分配选项。
- 现有订阅立即执行蓝图部署;未来新增订阅加入管理组时,会自动继承并应用该蓝图。
3. 自动化脚本批量部署
通过Azure Automation Runbook或定时任务脚本,遍历管理组订阅实现持续部署:
- 编写Azure CLI/PowerShell脚本,先获取管理组下的所有订阅列表,再循环执行
az deployment sub create或New-AzSubscriptionDeployment命令完成模板部署。 - 将脚本部署到Azure Automation Runbook,设置定时触发计划(如每日执行),确保脚本拥有访问所有订阅的权限。
- 每次脚本执行时,会自动处理新增的订阅,实现周期性的全订阅覆盖。
内容的提问来源于stack exchange,提问作者yershalom
相关产品推荐
相关产品推荐

