Padrão do Azure Policy: o operador value
O operador value avalia parâmetros, funções de modelo com suporte, ou literais para um valor fornecido para uma determinada condição.
Aviso
Se o resultado de uma função de modelo for um erro, a avaliação da política falhará. Uma avaliação com falha é um deny implícito. Para mais informações, confira Evitar falhas de modelo.
Definição de política de amostra
Essa definição de política adiciona ou substitui a marca especificada no parâmetro tagName (string) nos recursos e herda o valor para tagName do grupo de recursos em que o recurso está. Essa avaliação ocorre quando o recurso é criado ou atualizado. Como um efeito modify efeito, a correção pode ser executada em recursos existentes por meio de uma tarefa de correção.
{
"properties": {
"displayName": "Inherit a tag from the resource group",
"policyType": "BuiltIn",
"mode": "Indexed",
"description": "Adds or replaces the specified tag and value from the parent resource group when any resource is created or updated. Existing resources can be remediated by triggering a remediation task.",
"metadata": {
"category": "Tags"
},
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "Name of the tag, such as 'environment'"
}
}
},
"policyRule": {
"if": {
"allOf": [{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/microsoft.authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[resourceGroup().tags[parameters('tagName')]]"
}]
}
}
}
}
}
Explicação
"if": {
"allOf": [{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
O operador valor é usado dentro do bloco policyRule.if nas propriedades. Neste exemplo, o operador lógico allOf é usado para afirmar que ambas as instruções condicionais devem ser verdadeiras para que o efeito modify ocorra.
valor avalia o resultado da função de modelo resourceGroup() à condição notEquals de um valor em branco. Se o nome da marca fornecido em tagName no grupo de recursos pai existir, o condicional será avaliado como true.
Próximas etapas
- Revise outros padrões e definições internas.
- Revise a estrutura de definição do Azure Policy.
- Revisar Compreendendo os efeitos da política.