Azure Policy pattern: value 演算子
value 演算子は、パラメーター、サポートされているテンプレート関数、またはリテラルを、与えられた条件に合うように、指定した値に評価します。
警告
テンプレート関数 の結果がエラーの場合、ポリシーの評価は失敗します。 評価の失敗は、暗黙的な deny です。 詳細については、「テンプレート エラーの回避」を参照してください。
ポリシー定義の例
このポリシー定義では、パラメーター tagName ("文字列") で指定されているタグをリソースに追加または置換します。また、tagName の値はリソースが含まれるリソース グループから継承します。 この評価は、リソースが作成または更新されるときに行われます。 modify 効果として、修復タスクを通じて既存のリソースに対して修復が実行される場合があります。
{
"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')]]"
}]
}
}
}
}
}
説明
"if": {
"allOf": [{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notEquals": "[resourceGroup().tags[parameters('tagName')]]"
},
{
"value": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
value 演算子は、properties 内の policyRule.if ブロックで使用されます。 この例では、論理演算子 allOf を使用して、modify 効果がトリガーされるためには、両方の条件ステートメントが true である必要があることを示しています。
value によって、テンプレート関数 resourceGroup () の結果が、空白の値を持つ notEquals 条件に評価されます。 親リソース グループの tagName に指定されたタグ名が存在する場合、条件は true に評価されます。
次のステップ
- その他のパターンと組み込みの定義を確認します。
- 「Azure Policy の定義の構造」を確認します。
- 「Policy の効果について」を確認します。