无法通过ARM模板设置SQL数据库的最大vCores值
问题分析与解决方案
你遇到的maxCapacity不生效的核心原因是属性位置错误:单个SQL数据库(尤其是无服务器类型)的最大vCore配置不属于properties节点,而是要放在sku对象下。properties中的maxCapacity是弹性池(Elastic Pool)专属属性,对单个数据库无效,因此ARM模板会忽略该配置,导致默认值1生效。
修正后的ARM模板片段
将minCapacity、maxCapacity移至sku节点内,示例如下:
{ "type": "Microsoft.Sql/servers/databases", "apiVersion": "2022-05-01-preview", "name": "[concat(variables('serverName'), '/', variables('databaseName'))]", "location": "[resourceGroup().location]", "sku": { "name": "GP_S_Gen5", "tier": "GeneralPurpose", "family": "Gen5", "capacity": 0.5, "maxCapacity": 2, "minCapacity": 0.5, "size": "0" }, "properties": { "collation": "SQL_Latin1_General_CP1_CI_AS", "maxSizeBytes": 268435456000, "catalogCollation": "SQL_Latin1_General_CP1_CI_AS", "zoneRedundant": false, "readScale": "Disabled", "highAvailabilityReplicaCount": 0, "autoPauseDelay": 60, "requestedBackupStorageRedundancy": "Geo", "isLedgerOn": "false", "availabilityZone": "NoPreference", "useFreeLimit": "false", "freeLimitExhaustionBehavior": "AutoPause", "maintenanceConfigurationId": "[concat('/subscriptions/', variables('subscriptionId'), '/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default')]" } }
关键说明
- 无服务器SQL数据库的弹性缩放参数(
minCapacity、maxCapacity、autoPauseDelay)均属于sku配置范畴,必须放在该节点下才能生效。 - 若你的数据库是弹性池中的成员,无需单独设置
maxCapacity,其vCore上限由弹性池的maxCapacity控制,只需将数据库关联到目标弹性池即可。
内容的提问来源于stack exchange,提问作者Luuk
相关产品推荐
相关产品推荐

