将云服务(经典)部署到 Azure 时对 ConstrainedAllocationFailed 进行故障排除
重要
从 2024 年 9 月 1 日开始,已弃用所有客户的云服务(经典版)。 从 2024 年 10 月开始,Microsoft 将停止并关闭任何正在运行的现有部署,数据将永久性丢失。 新部署应使用基于 Azure 资源管理器的新型部署模型 Azure 云服务(外延支持)。
在本文中,你将解决由于分配约束而无法部署 Azure 云服务(经典)的分配失败。
将实例部署到云服务(经典)或者添加新的 Web 角色或辅助角色实例时,Azure 会分配计算资源。
在执行这些操作时,甚至在达到 Azure 订阅限制之前,有时可能会收到错误。
提示
规划服务的部署时,本信息可能也有用。
症状
在 Azure 门户中,导航到云服务(经典),并在侧栏中选择“操作日志(经典)”来查看日志。
检查云服务(经典)的日志时,你将看到以下异常:
异常类型 | 错误消息 |
---|---|
ConstrainedAllocationFailed | Azure 操作“{Operation ID} ”失败,代码为 Compute.ConstrainedAllocationFailed。 详细信息:分配失败;无法满足请求中的约束。 请求的新服务部署绑定至地缘组,或以虚拟网络为目标,或此托管服务下已经有部署。 上述任一情况都会将新的部署局限于特定的 Azure 资源。 请稍后重试,或尝试缩减虚拟机 (VM) 大小或角色实例数目。 或者,可能的话,移除约束,或尝试部署到其他区域。 |
原因
将第一个实例部署到云服务时(不管是部署到过渡环境还是生产环境),都会将该云服务固定到某个群集。
随着时间的推移,此群集中的资源可能会被完全利用。 当已固定的群集中没有足够的资源可用时,如果云服务(经典)发出分配请求来请求更多资源,则该请求将导致分配失败。 有关详细信息,请参阅分配失败的常见问题。
解决方案
现有的云服务已固定到群集。 云服务(经典)的任何进一步部署都将在同一个群集中进行。
在此情况下遇到分配错误时,建议的操作过程是重新部署到新的云服务(经典)(并更新 CNAME)。
提示
这种解决方案可能会最成功,因为它允许平台从该区域的所有群集中进行选择。
注意
此解决方案应该不会导致停机。
将工作负荷部署到新的云服务(经典)。
- 有关更多说明,请参阅如何创建和部署云服务(经典)指南。
警告
如果你不希望丢失与此部署槽位关联的 IP 地址,则可以使用解决方案 3 - 保留 IP 地址。
更新 CNAME 或 A 记录,以将流量指向新的云服务(经典)。
- 有关进一步说明,请参阅为 Azure 云服务(经典)配置自定义域名指南。
没有流量流向旧站点后,即可删除旧的云服务(经典)。
- 有关进一步的说明,请参阅删除部署和云服务(经典)指南。
- 若要查看云服务(经典)中的网络流量,请参阅云服务(经典)监视简介。
有关进一步的修正步骤,请参阅云服务(经典)分配失败故障排除 | Microsoft Docs。
后续步骤
有关更多分配失败解决方案和背景信息:
如果本文未解决你的 Azure 问题,请访问 Microsoft Developer Network (MSDN) 和 Stack Overflow 上的 Azure 论坛。 可将问题发布到这些论坛上,或发布到 X 上的 @AzureSupport。还可提交 Azure 支持请求。 若要提交支持请求,请在 Azure 支持页上,选择“获取支持”。