Azure APIM部署报ResourceDeploymentFailure错误失败,附对应ARM模板
Azure APIM ARM模板部署失败排查方案
你所提供的ResourceDeploymentFailure是Azure资源部署的通用终端错误,没有携带具体根因信息,可从以下最常见的配置问题逐一排查:
常见根因及对应解决方法
- 虚拟网络与子网配置不符合要求
你当前模板配置了Internal类型的VNet部署,需先校验子网是否满足APIM部署规则:- 子网不能被其他任何资源占用,仅可关联网络安全组、路由表两类资源
- 子网大小最低要求:开发者SKU需/24网段,标准/高级版SKU最低需/24网段,若容量参数大于2还需对应扩大子网网段
- 子网关联的NSG必须放开APIM要求的入站/出站端口,尤其是443、3443等核心管理端口
解决方法:清理子网内非允许资源,调整子网网段大小,按要求配置NSG规则后重新部署。
- 用户托管身份权限不足
模板中配置了用户分配的托管身份,该身份需具备对应资源的访问权限:- 需具备自身资源的读取权限
- 关联Application Insights的场景下,还需具备Application Insights的
Monitoring Metrics Publisher角色权限,否则日志配置会触发部署失败
解决方法:在对应资源的访问控制(IAM)页为托管身份分配对应角色后重新部署。
- Application Insights 依赖配置错误
模板中通过reference函数读取Application Insights的InstrumentationKey,若Application Insights和APIM不在同一部署、或部署顺序错误、或Application Insights部署在其他资源组,都会导致reference函数读取属性失败。
解决方法:要么将Application Insights加入同一ARM部署并添加到APIM的dependsOn列表,要么直接将InstrumentationKey作为参数传入模板,不使用reference函数跨资源读取。 - SKU与配置不兼容
需确认传入的apim-sku参数支持模板配置的功能:- 消费级SKU不支持VNet部署、也不支持自托管网关
- 基本级SKU不支持Internal类型的VNet部署
解决方法:调整SKU为支持对应功能的层级,开发者、标准、高级版均支持Internal VNet部署和自托管网关。
- 子资源配置异常
2020-12-01版本的API中,自托管网关的locationData字段有格式限制,若name字段包含特殊字符会触发部署失败;另外日志、诊断配置的资源ID拼写错误也会导致部署失败。
解决方法:可先注释掉所有子资源配置,单独部署APIM主资源,主资源部署成功后再逐一添加子资源定位问题。
通用定位方法
若以上问题都已排查仍部署失败,可进入Azure门户对应资源组的「部署」页,点开失败的APIM部署操作记录,查看更详细的错误码(如QuotaExceeded、SubnetInvalid、IdentityNotFound等),再针对性处理。
内容的提问来源于stack exchange,提问作者Saujol Bagh
相关产品推荐
相关产品推荐

