如何在Bicep脚本中设置SQL弹性池维护窗口?维护配置ID取值困惑
maintenanceConfigurationId参数不能传入界面显示的友好名称(比如"System default"或"System default (5pm to 8am)"),必须传入维护配置资源的ARM ID,以下是具体配置方式:
一、使用系统预设维护配置
系统提供两种默认维护配置,对应不同的窗口时间,ID格式固定:
默认维护窗口(标准时段):
格式:/subscriptions/{订阅ID}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_{区域代码}_Default
以你的usgovvirginia区域为例:/subscriptions/sub-<redact>/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_usgovvirginia_Default非高峰默认窗口(对应你提到的5pm到8am):
格式:/subscriptions/{订阅ID}/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_{区域代码}_Default_Pool
usgovvirginia区域对应ID:/subscriptions/sub-<redact>/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_usgovvirginia_Default_Pool
二、使用自定义维护配置
如果是你自己创建的自定义维护计划,直接传入该配置的完整ARM ID即可,示例:/subscriptions/sub-<redact>/resourceGroups/rg-<redact>/providers/Microsoft.Maintenance/maintenanceConfigurations/你的自定义配置名称
修改后的Bicep代码示例
param sqlServerName string param name string param location string param maintenanceConfigurationId string // 传入正确的ARM ID resource sqlServer 'Microsoft.Sql/servers@2021-11-01' existing = { name: sqlServerName } resource sqlElasticPool 'Microsoft.Sql/servers/elasticPools@2021-11-01' = { name: name location: location parent: sqlServer properties: { maintenanceConfigurationId: maintenanceConfigurationId } }
对应参数配置示例
把原参数里的maintenance_window替换为对应的ARM ID即可:
"sql_elastic_pools": [ { "name": "sqlep-<redact>", "subscription": "sub-<redact>", "resource_group": "rg-<redact>", "location": "usgovvirginia", "server": "sql-<redact>", "compute_and_storage": "Standard-series Gen5 4 vCores 500 GB", "maintenanceConfigurationId": "/subscriptions/sub-<redact>/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_usgovvirginia_Default_Pool", "tags": { "app": "Data Migration", "environment": "Non-Production", "description": "None" } } ]
内容的提问来源于stack exchange,提问作者Chaka

