Azure SDK 2.2云服务csdef文件VM大小枚举约束报错求助
解决Azure SDK v2.2修改云服务csdef中VM大小报错的问题
问题原因
Azure SDK v2.2依赖的服务定义架构(http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition)里的RoleSize枚举仅支持旧一代VM规格(比如Small、Medium、Large这类),而B2ms属于新一代Azure VM SKU,不在该旧架构的枚举范围内,因此触发枚举约束失败的报错。
解决办法
- 升级Azure SDK版本:将SDK至少升级到v2.9及以上版本,新版本的服务定义架构已更新
RoleSize枚举,包含B系列等新一代VM规格,升级后即可正常使用B2ms这类SKU。 - 确认区域SKU可用性:通过Azure CLI命令
az vm list-skus --location <你的区域> --resource-type virtualMachines --output table检查目标区域是否支持所选VM SKU,避免因区域限制引发后续问题。 - 调整csdef配置:升级SDK后,直接修改csdef文件中
<WebRole>节点的vmsize属性,例如写成<WebRole name="YourWebRole" vmsize="B2ms">即可。 - 临时兼容方案:如果暂时无法升级SDK,可选择旧架构支持的VM规格(比如A2、A3),先完成云服务副本创建,后续再规划迁移到新规格。
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

