问题描述
在创建新的App Service,遇见了资源不满足当前需求的提示。详细消息为:
"Code": "Conflict","Message": "No available instances to satisfy this request. App Service is attempting to increase capacity. Please retry your request later. If urgent, this can be mitigated by deploying this to a new resource group."
问题解释
根据错误提示,在当前的资源组(Resource Group)中,已经没有可用的实例来满足创建的需求。如请求中要创建的App Service使用的是P1V2的定价层,而这个定价层使用的实例底层VM是ESv3系列的机型,所以报错资源不足。
但是为什么在同一个区域,换一个资源组(Resource Group)就可以解决这个问题呢?
这需要从资源组(Resource Group)的作用说起:
1)在Azure中,创建的所有资源都在一个逻辑的分组中,这个组不具备物理意义。但对于管理,区分Azure资源及其用途,逻辑分组非常关键。这个逻辑分组就是资源组。
2)在创建App Service服务时,一个已在使用的资源组(Resource Group)已经被指定到一个固定的数据中心中的缩放单元(Scale Unit),而这个单元内的实例数(VM数量)是有一个固定的数量,大约是1000台VM。
3)当在已经选择的Scale Unit中1000台VM中,没有当前新建请求所需要的VM系列,或者VM数量不够时。就会提示No available instances to satisfy this request 信息。
4)而新建一个资源组(Resource Group)时,Geo-Mater就会在自定的区域中(如北三区,东二区等)中重新查找满足条件的Scale Unit,然后创建所需要的App Service资源。
参考资料
What is a resource group : https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal#what-is-a-resource-group
A resource group is a container that holds related resources for an Azure solution.
The resource group can include all the resources for the solution, or only those resources that you want to manage as a group.
You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization.
Generally, add resources that share the same lifecycle to the same resource group so you can easily deploy, update, and delete them as a group.
Azure App Service Architecture : https://learn.microsoft.com/en-us/archive/msdn-magazine/2017/february/azure-inside-the-azure-app-service-architecture