У меня есть специальная политика Azure, позволяющая ограничить базы данных SQL определенными мощностями. Среда полностью состоит из баз данных уровней «Базовый» и «Стандартный» — для обеспечения этого существует еще одна (работающая!) Политика.
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"equals": "Microsoft.Sql/servers/databases",
"field": "type"
},
{
"field": "Microsoft.Sql/servers/databases/sku.capacity",
"notIn": ["5", "10"]
}
]
},
"then": {
"effect": "deny"
}
}
}
Однако политика блокирует любые операции масштабирования или создания, независимо от того, правильна емкость или нет.
Попробовал заменить массив параметром и попытался передать мощности в виде строк или целых чисел - ничего не изменилось, политика всегда блокирует действие. Целевые ресурсы отображаются в пользовательском интерфейсе соответствия политике, но всегда не соответствуют требованиям.


Политика Azure неправильно ограничивает изменения мощности SQL.
Я также проверил вашу политику с тем же полем, но она блокирует все capacities вместо 5 и 10.
Microsoft.Sql/servers/databases/sku.capacity
Альтернативно вы можете использовать приведенную ниже политику, чтобы ограничить SQL database, если номера емкости 5 и 10 не указаны.
Вот cmd, чтобы проверить список capacity's в конкретном регионе.
az sql db list-editions -l eastus -o table
В соответствии с вашими требованиями вы хотите разрешить только мощности 5 и 10. Ниже приведены SKU с номерами емкости 5 и 10.
Free,Basic,S0,GP_Gen5_10,GP_S_Gen5_10,BC_Gen5_10,BC_DC_10,HS_DC_10,HS_MOPRMS_10,HS_PRMS_10,HS_Gen5_10

Политика Azure:
{
"mode": "All",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Sql/servers/databases"
},
{
"not": {
"field": "Microsoft.Sql/servers/databases/sku.name",
"in": "[parameters('allowedSkus')]"
}
}
]
},
"then": {
"effect": "deny"
}
},
"parameters": {
"allowedSkus": {
"type": "Array",
"metadata": {
"displayName": "Allowed SKUs",
"description": "The list of allowed SKUs for SQL databases."
},
"allowedValues": [
"Free",
"Basic",
"S0",
"GP_Gen5_10",
"GP_S_Gen5_10",
"BC_Gen5_10",
"BC_DC_10",
"HS_DC_10",
"HS_MOPRMS_10",
"HS_PRMS_10",
"HS_Gen5_10"
]
}
}
}
Политика блокирует создание базы данных SQL, если я выбираю любую емкость, кроме 5 и 10.

Политика принимает создание ресурсов, если я выбираю номера мощности 5 и 10.
