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

如何通过ARM REST API部署Bicep注册表(ACR)内的Bicep模板

结论

直接通过ARM REST API部署存储在Bicep注册表(ACR)中的模板完全可行,不需要强制使用Template Specs(模板规格)。你之前查阅文档时没找到对应配置,是因为引用ACR模板不需要使用templateSpec参数,而是通过通用的模板链接参数实现。

具体配置方法

调用ARM部署创建API时,在请求体的properties节点下使用templateLink属性指向ACR中存储的模板即可,不需要额外的中转环节:

  • 调用API的身份(服务主体、托管标识等)需要同时配置两类权限:一是目标部署范围(资源组/订阅/管理组)的部署写入权限,二是对应ACR的AcrPull权限,用于拉取存储在注册表中的模板工件
  • 不需要为ACR模板地址配置SAS令牌,ARM原生支持通过Azure AD身份认证直接拉取ACR内的Bicep相关工件,只要身份有对应拉取权限就能正常读取
  • 如果发布到ACR的Bicep模板引用了其他外部模块,发布时需要通过bicep publish命令完整上传所有依赖,部署时ARM会自动解析拉取关联模块,不需要手动处理嵌套模板的地址
  • 支持通过ACR资源ID或者ACR公网/内网域名两种方式指定模板地址

对应的REST API请求体示例如下:

{
  "location": "<部署区域,例如chinaeast2>",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      // 方式1:通过ACR资源ID指定模板
      "id": "/subscriptions/<订阅ID>/resourceGroups/<ACR所在资源组>/providers/Microsoft.ContainerRegistry/registries/<ACR实例名>/bicep/<模板仓库名>:<版本标签>"
      // 方式2:通过ACR端点URI指定模板
      // "uri": "https://<ACR实例名>.azurecr.io/bicep/<模板仓库名>:<版本标签>"
    },
    "parameters": {
      // 填入部署所需的参数键值对
    }
  }
}
选型说明

你优先选择Bicep注册表存储模板的方案完全适配自动化事件触发部署场景:

  • 不需要额外维护Template Spec类型的Azure资源,模板版本管理、跨团队模块复用的能力和Bicep原生工作流完全对齐
  • 部署链路和用Template Spec的链路没有本质区别,REST API调用的逻辑基本一致,只是传入的模板地址参数不同
  • 仅在跨租户部署的场景下,Template Spec的权限配置会比ACR模板更简便,单租户内的自动化服务场景下,Bicep注册表方案没有额外使用门槛

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:18:20