多名称模式和参数定义
Multiple Name Pattern and Parameter definition
我制定了一项政策来监控资源的命名约定。我们有一个特定的指导方针,提供了一些变化,我想我已经准确地抓住了它。
以此为样本
https://docs.microsoft.com/en-us/azure/governance/policy/samples/allow-multiple-name-patterns
我想出了以下我认为可行的方法。问题是当我去部署它时,Azure Policy api 说我定义了参数,但它们没有被使用,很明显它们被使用了。寻求有关使用参数创建多名称模式的帮助,如果可能的话。
"properties": {
"displayName": "Match multiple name patterns.",
"description": "Allows one of multiple naming patterns for resources.",
"mode": "Indexed",
"parameters": {
"buName": {
"type": "String",
"metadata": {
"description": "Abbreviated Business Unit / i.e. USNR, SHSD, MAXD"
}
},
"regionShortCode": {
"type": "String",
"metadata": {
"description": "Shortcode for the region / i.e. CUS, NCU, EUS"
}
},
"environmentShortCode": {
"type": "String",
"metadata": {
"description": "Environment code / i.e. D (dev), U (uat), P (prod)"
}
}
},
"policyRule": {
"if": {
"allOf": [
{
"not": {
"field": "name",
"match": "[parameters('buName')]-[parameters('regionShortCode')]-[parameters('environmentShortCode')]-???-###"
}
},
{
"not": {
"field": "name",
"match": "[parameters('buName')]-[parameters('regionShortCode')]-[parameters('environmentShortCode')]-???"
}
},
{
"not": {
"field": "name",
"match": "[parameters('regionShortCode')]???[parameters('environmentShortCode')]##"
}
},
{
"not": {
"field": "name",
"match": "[parameters('regionShortCode')]???[parameters('environmentShortCode')]###"
}
}
]
},
"then": {
"effect": "audit"
}
}
}
} ```
您遇到的错误是在分配时发生的吗?
另外,对于你使用的参数?是否有用户必须使用的定义列表?如果它只是一个模式约定,比如 bus 它是一个 4 个字母的名称,那么您应该使用通配符。
请记住,在分配时您必须指定每个参数。
你应该只用一次括号并将所有内容连接在一起。尝试使用此方法:[concat(parameters('buName'), '-', parameters('regionShortCode'), '-', parameters('environmentShortCode'), '-???-# ##')]
我制定了一项政策来监控资源的命名约定。我们有一个特定的指导方针,提供了一些变化,我想我已经准确地抓住了它。
以此为样本
https://docs.microsoft.com/en-us/azure/governance/policy/samples/allow-multiple-name-patterns
我想出了以下我认为可行的方法。问题是当我去部署它时,Azure Policy api 说我定义了参数,但它们没有被使用,很明显它们被使用了。寻求有关使用参数创建多名称模式的帮助,如果可能的话。
"properties": {
"displayName": "Match multiple name patterns.",
"description": "Allows one of multiple naming patterns for resources.",
"mode": "Indexed",
"parameters": {
"buName": {
"type": "String",
"metadata": {
"description": "Abbreviated Business Unit / i.e. USNR, SHSD, MAXD"
}
},
"regionShortCode": {
"type": "String",
"metadata": {
"description": "Shortcode for the region / i.e. CUS, NCU, EUS"
}
},
"environmentShortCode": {
"type": "String",
"metadata": {
"description": "Environment code / i.e. D (dev), U (uat), P (prod)"
}
}
},
"policyRule": {
"if": {
"allOf": [
{
"not": {
"field": "name",
"match": "[parameters('buName')]-[parameters('regionShortCode')]-[parameters('environmentShortCode')]-???-###"
}
},
{
"not": {
"field": "name",
"match": "[parameters('buName')]-[parameters('regionShortCode')]-[parameters('environmentShortCode')]-???"
}
},
{
"not": {
"field": "name",
"match": "[parameters('regionShortCode')]???[parameters('environmentShortCode')]##"
}
},
{
"not": {
"field": "name",
"match": "[parameters('regionShortCode')]???[parameters('environmentShortCode')]###"
}
}
]
},
"then": {
"effect": "audit"
}
}
}
} ```
您遇到的错误是在分配时发生的吗?
另外,对于你使用的参数?是否有用户必须使用的定义列表?如果它只是一个模式约定,比如 bus 它是一个 4 个字母的名称,那么您应该使用通配符。
请记住,在分配时您必须指定每个参数。
你应该只用一次括号并将所有内容连接在一起。尝试使用此方法:[concat(parameters('buName'), '-', parameters('regionShortCode'), '-', parameters('environmentShortCode'), '-???-# ##')]