你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查常见的 Azure 部署错误

本文介绍如何排查常见的 Azure 部署错误,并提供有关解决方案的信息。 可以使用 Bicep 文件或 Azure 资源管理器模板(ARM 模板)部署 Azure 资源。 如果找不到部署错误的错误代码,请参阅查找错误代码

如果未列出错误代码,请提交 GitHub 问题。 在页面右侧选择“反馈”。 在页面底部的“反馈”下,选择“此页”。 提供文档反馈,但不要包含机密信息,因为 GitHub 问题是公开的

错误代码

错误代码 缓解操作 详细信息
帐户名称无效 遵循存储帐户的命名规则。 解决存储帐户名称错误
AccountPropertyCannotBeSet 检查可用的存储帐户属性。 storageAccounts
分配失败 群集或区域没有可用的资源或无法支持所请求的 VM 大小。 稍后重试请求,或者请求不同的 VM 大小。 Linux 预配和分配问题

Windows 预配和分配问题

排查分配失败
AnotherOperationInProgress 等待并发操作完成。
授权失败 帐户或服务主体没有足够的访问权限,无法完成部署。 检查帐户所属的角色及其在部署范围内的访问权限。

所需的资源提供程序未注册时,可能会收到此错误。
Azure 基于角色的访问控制 (Azure RBAC)

解决注册问题
BadRequest 发送的部署值与资源管理器预期的值不匹配。 检查内部状态消息,以帮助进行故障排除。

验证模板的语法,以解决使用从现有 Azure 资源导出的模板时出现的部署错误。
模板参考

ARM 模板中的资源位置

Bicep 文件中的资源位置

解决模板无效问题
冲突 在资源的当前状态下不允许所请求的操作。 例如,仅当创建 VM 或该 VM 已解除分配时,才允许调整磁盘大小。
DeploymentActiveAndUneditable 等待此资源组上的并发部署完成。
DeploymentFailedCleanUp 在完整模式下部署时,模板中不存在的任何资源都将被删除。 当没有足够的权限删除模板中所有不存在的资源时,会出现此错误。 要避免此错误,请将部署模式更改为“增量”。 Azure 资源管理器部署模式
DeploymentNameInvalidCharacters 部署名称只能包含字母、数字、连字符 (-)、点 (.) 或下划线 (_)
DeploymentNameLengthLimitExceeded 部署名称限制为 64 个字符。
部署失败 DeploymentFailed 错误为常规错误,未提供解决错误所需的详细信息。 请查看错误代码的错误详情,其中提供了详细信息。 查找错误代码
DeploymentQuotaExceeded 如果达到每个资源组的部署数限制 800,则会从历史记录中删除不再需要的部署。 解决部署计数超过 800 时出现的错误
DeploymentJobSizeExceeded 简化模板以减小大小。 解决模板大小错误
DnsRecordInUse DNS 记录名称必须唯一。 输入不同的名称。
图像未找到 检查 VM 映像设置。
InaccessibleImage Azure 容器实例部署失败。 可能需要使用语法 registry/image:tag 将图像的标记包含在内以部署容器。 对于专用注册表,请验证凭据是否正确。 查找错误代码
内部服务器错误 由临时问题引起。 重试部署。
InUseSubnetCannotBeDeleted 当你尝试更新资源时,如果请求进程删除并创建了资源,则可能会发生此错误。 确保指定所有未更改值。 更新资源
InvalidAuthenticationTokenTenant 获取相应租户的访问令牌。 只能从帐户所属的租户获取该令牌。
无效内容链接 很可能尝试过链接到不可用的嵌套模板。 再次确认为嵌套模板提供的 URI。 如果模板存在于存储帐户中,请确保 URI 可访问。 可能需要传递 SAS 令牌。 目前,无法链接到位于 Azure 存储防火墙后面的存储帐户中的模板。 请考虑将模板移到其他存储库,如 GitHub。 链接的和嵌套的 ARM 模板

Bicep 模块
InvalidDeploymentLocation 在订阅级别部署时,你为以前使用的部署名称提供了不同的位置。 ARM 模板订阅部署

Bicep 订阅部署
无效参数 为资源提供的某个值与预期值不匹配。 此错误可能由许多不同的状况造成。 例如,密码强度可能不足,或者 Blob 名称可能不正确。 错误消息应表明哪个值需要更正。 ARM 模板参数

Bicep 参数
无效请求内容 部署值包含无法识别的值,或者缺少必需的值。 确认资源类型的值。 模板参考
请求格式无效 在运行部署时启用调试日志记录功能,并验证请求的内容。 调试日志记录
InvalidResourceLocation 为存储帐户提供唯一名称。 解决存储帐户名称错误
InvalidResourceNamespace 检查在 type 属性中指定的资源命名空间。 模板参考
无效的资源引用 资源尚不存在,或错误地引用了它。 检查是否需要添加依赖项。 验证所用的 reference 函数是否包含方案所需的参数。 解决依赖项问题
InvalidResourceType 检查在 type 属性中指定的资源类型。 模板参考
InvalidSubscriptionRegistrationState 将订阅注册到资源提供程序。 解决注册问题
模板部署无效
无效模板
检查模板语法是否有错误。 解决模板无效问题
InvalidTemplateCircularDependency 删除不必要的依赖项。 解决循环依赖项
JobSizeExceeded 简化模板以减小大小。 解决模板大小错误
LinkedAuthorizationFailed 检查帐户所属的租户是否与要部署到的资源组所属的租户相同。
LinkedInvalidPropertyId 无法解析资源的资源 ID。 检查是否为资源 ID 提供了所有必需值。 例如,订阅 ID、资源组名称、资源类型、父资源名称(如果需要)和资源名称。 解决资源名称和类型的错误
LocationRequired 提供资源的位置。 ARM 模板中的资源位置

Bicep 文件中的资源位置
MismatchingResourceSegments 请确保嵌套资源的名称和类型中包含正确数量的段。 解决资源段
MissingRegistrationForLocation 检查资源提供程序注册状态和支持的位置。 解决注册问题
MissingSubscriptionRegistration 将订阅注册到资源提供程序。 解决注册问题
未找到注册的供应商 检查资源提供程序注册状态。 解决注册问题
未找到 你可能在尝试部署与父资源并行的依赖资源。 检查是否需要添加依赖项。 解决依赖项问题
OperationNotAllowed 出现此错误消息可能有多种原因。

1. 部署正在尝试执行一个指定 SKU 上不允许的操作。

2. 部署正在尝试执行一个超过了订阅、资源组或区域配额的操作。 如果可能,请修改部署,以保持在配额范围内。 否则,请考虑请求更改配额。
解决配额问题
OperationNotAllowedOnVMImageAsVMsBeingProvisioned 你可能正在尝试删除当前用于预配 VM 的映像。 在部署过程中,不能删除任何虚拟机正在使用的映像。 在 VM 部署完成后重试映像删除操作。
ParentResourceNotFound 确保在创建子资源之前父资源已存在。 解决父资源问题
密码太长 你可能选择了包含太多字符的密码,或在将密码值作为参数传递之前将其转换成了一个安全字符串。 如果模板包括一个安全字符串参数,则不需要将值转换为安全字符串。 请以文本形式提供密码值。
PrivateIPAddressInReservedRange 指定的 IP 地址包括 Azure 所需的地址范围。 更改 IP 地址以避免保留的范围。 专用 IP 地址
私有 IP 地址不在子网内 指定的 IP 地址超出子网范围。 更改 IP 地址,使之在子网范围内。 专用 IP 地址
PropertyChangeNotAllowed 已部署资源上的某些属性不能更改。 更新资源时,请限制为对允许的属性进行更改。 更新资源
已达到公共IP数量限制 已达到运行公共 IP 数的限制。 关闭不需要的资源,或联系 Azure 支持部门以请求增加资源。 例如,在 Azure Databricks,请参阅意外的群集终止IP 地址限制阻止群集创建 公共 IP 地址限制
RegionDoesNotAllowProvisioning 选择不同的区域,或提交有关“区域访问权限”的配额支持请求。
RequestDisallowedByPolicy 订阅包含阻止尝试在部署期间执行的操作的资源策略。 查找阻止该操作的策略。 如果可能,请更改部署,使之符合策略的限制。 解决策略问题
预留资源名称 提供不包含保留名称的资源名称。 保留的资源名称
ResourceGroupBeingDeleted 等待删除操作完成。
资源组未找到 检查部署的目标资源组的名称。 目标资源组必须已存在于订阅中。 检查订阅上下文。 Azure CLIPowerShell
资源未找到 部署引用了一个无法解析的资源。 验证所用的 reference 函数是否包含方案所需的参数。 解决引用问题
ResourceQuotaExceeded 部署尝试创建的资源超过了订阅、资源组或区域的配额。 如果可能,请修改基础结构,以保持在配额范围内。 否则,请考虑请求更改配额。 解决配额问题
SkuNotAvailable 选择可在所选位置中使用的 SKU(例如 VM 大小)。 解决 SKU 问题
StorageAccountAlreadyTaken
StorageAccountAlreadyExists
为存储帐户提供唯一名称。 解决存储帐户名称错误
StorageAccountInAnotherResourceGroup 为存储帐户提供唯一名称。 解决存储帐户名称错误
存储账户未找到 检查尝试使用的存储帐户的订阅、资源组和名称。
SubnetsNotInSameVnet 一个虚拟机只能有一个虚拟网络。 部署多个 NIC 时,请确保它们属于同一虚拟网络。 Windows VM 多 NIC

Linux VM 多 NIC
SubnetIsFull 子网中没有足够的可用地址,无法部署资源。 可以从子网中释放地址,使用其他子网,或者创建一个新子网。 管理子网虚拟网络常见问题解答

专用 IP 地址
找不到订阅 无法访问用于部署的指定订阅。 可能是订阅 ID 错误,部署模板的用户没有足够的权限部署到订阅,或者订阅 ID 格式错误。 使用 ARM 模板嵌套部署进行跨范围部署时,请提供订阅的 GUID。 ARM 模板跨范围部署

Bicep 文件跨范围部署
SubscriptionNotRegistered 部署资源时,必须为订阅注册资源提供程序。 使用 Azure 资源管理器模板进行部署时,会在订阅中自动注册资源提供程序。 有时,自动注册未及时完成。 要避免此间歇性错误,请在部署前注册资源提供程序。 解决注册问题
SubscriptionRequestsThrottled Azure 资源管理器在订阅级别或租户级别限制请求。 资源提供程序(如 Microsoft.Compute)还会限制特定于其操作的请求。

达到限制时,你会收到一条消息和在发送新请求之前应等待的时间值。 例如: Number of requests for subscription '<subscription-id-guid>' and operation '<resource provider>' exceeded the backend storage limit. Please try again after '6' seconds.

HTTP 响应返回类似 HTTP status code 429 Too Many Requests 的消息,其中包含一个 Retry-After 值,该值指定了在发送另一个请求之前要等待的秒数。
限制资源管理器请求

排查 API 限制错误 - 虚拟机

Azure Kubernetes 服务限制
TemplateResourceCircularDependency 删除不必要的依赖项。 解决循环依赖项
TooManyTargetResourceGroups 减少单个部署的资源组数。 ARM 模板跨范围部署

Bicep 文件跨范围部署

Next steps