我目前正在尝试了解Azure策略。我想我已经对别名有所了解,但是我无法理解在哪里可以找到ExistenceCondition equals field的正确值
我应用的政策规则:
"if":{
"allOf":[
{
"field":"type",
"equals":"Microsoft.Insights/metricalerts"
},
{
"field":"Microsoft.Insights/metricalerts/enabled",
"equals":"true"
},
{
"field":"Microsoft.Insights/metricalerts/actions[*]",
"less":"1"
}
]
}
答案 0 :(得分:1)
ExistenceCondition 在控制方向上与 policyRule
相反。
在策略规则中,只有当条件为真时才继续。在 ExistenceCondition
中,只有当条件为假时才继续。在下面的 policyRule
示例中,您只过滤 storageAccount,然后继续。部署仅在条件为假(deleteRetentionPolicy.enabled ==false)时才会发生,因此它会继续并部署。所以一旦部署完成,它将是 deleteRetentionPolicy.enabled ==true
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Storage/storageAccounts"
},
{
"field": "kind",
"in": [
"Storage",
"StorageV2",
"BlobStorage",
"BlockBlobStorage"
]
}
]
},
"then": {
"effect": "DeployIfNotExists",
"details": {
"type": "Microsoft.Storage/storageAccounts/blobServices",
"existenceCondition": {
"field": "Microsoft.Storage/storageAccounts/blobServices/default.deleteRetentionPolicy.enabled",
"equals": true
},
答案 1 :(得分:0)
我假设ExistenceCondition
的意思是if / then语句。本质上,if / then语句是策略规则。该策略规则将应用为if(something is true) then (effect in some way)
。
您可以从this link
获取有关策略规则的更多信息。答案 2 :(得分:0)
请参见以下示例:
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"existenceCondition": {
"allOf": [{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "[parameters('publisher')]"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"equals": "[parameters('type')]"
}
]
}
}
existenceCondition 使用策略语言元素,例如逻辑 运算符,以确定是否存在匹配的相关资源。在这个 例如,针对每个别名检查的值在 参数。
答案 3 :(得分:0)
ExistenceCondition 仅适用于具有 AuditIfNotExists 和 DeployIfNotExists 效果的策略。
如果是 AuditIfNotExists
<块引用>"如果任何匹配的相关资源评估为真,则效果为 满意且不会触发审核。”
如果是 DeployIfNotExists
<块引用>"如果任何匹配的相关资源评估为真,则效果为 满意并且不会触发部署。”
与 ExistenceCondition 不匹配的现有资源将被标记为非投诉。 PolicyRule 过滤掉的资源不会被标记为不投诉。