Json 强制执行标签和it';使用Terraform的s值Azure策略
我试图强制用户添加一个标记及其值,在我的示例中,名称为“Environment”,值为“Production”。但是这里我的代码有一个问题,一个我无法解决的错误,这就是为什么我在这里。该错误与参数“tagValue”有关,而现有策略(此处为“azurerm_policy_definition”)似乎无法识别该参数。提前感谢您的帮助Json 强制执行标签和it';使用Terraform的s值Azure策略,json,azure,azure-devops,terraform,terraform-provider-azure,Json,Azure,Azure Devops,Terraform,Terraform Provider Azure,我试图强制用户添加一个标记及其值,在我的示例中,名称为“Environment”,值为“Production”。但是这里我的代码有一个问题,一个我无法解决的错误,这就是为什么我在这里。该错误与参数“tagValue”有关,而现有策略(此处为“azurerm_policy_definition”)似乎无法识别该参数。提前感谢您的帮助 variable "requiredTag" { default = "environment" } variable "requiredValue" {
variable "requiredTag" {
default = "environment"
}
variable "requiredValue" {
default = "production"
}
resource "azurerm_policy_assignment" "requiredTag" {
name = "Deny-RequiredTag-${var.requiredTag}"
display_name = "Tag obligatoire '${var.requiredTag}'"
description = "Affectation de la stratégie de balise requise pour '${var.requiredTag}'"
policy_definition_id = "${azurerm_policy_definition.requiredTag.id}"
scope = "/subscriptions/0000000000/resourceGroups/PolicyLab"
parameters = <<PARAMETERS
{
"tagValue": {
"value": "${var.requiredValue}"
},
"tagName": {
"value": "${var.requiredTag}"
}
}
PARAMETERS
}
resource "azurerm_policy_definition" "requiredTag" {
name = "Deny-RequiredTag-Resource"
display_name = "Deny a Required Tag on a Resource"
description = "Deny all resources for a required tag"
policy_type = "Custom"
mode = "All"
policy_rule = <<POLICY_RULE
{
"if": {
"not": {
"field": "[concat('tags[', parameters('tagName'), ']')]",
"equals": "[parameters('tagValue')]"
}
},
"then": {
"effect": "deny"
}
}
POLICY_RULE
parameters = <<PARAMETERS
{
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "Name of the tag, such as 'environment'"
}
},
"tagValue": {
"type": "String",
"metadata": {
"displayName": "Tag Value",
"description": "Value of the tag, such as 'production'"
}
}
}
PARAMETERS
}
策略包含现有策略中不存在且没有默认值的新参数“tagValue”。
只有当新参数具有默认值时,才能将其添加到策略中
删除现有策略,或向terraform脚本添加默认值
"tagValue": {
"type": "String",
"metadata": {
"displayName": "Tag Value",
"description": "Value of the tag, such as 'production'"
},
"defaultValue": [ "production" ]
}
谢谢你知道吗,我添加了一个默认值,如果我有其他问题,我可以pm你吗?打开另一个问题,有更多的人乐于帮助。如果我的答案解决了你的问题,你应该点击复选标记接受它,这样我们就可以保持平台整洁:-)
"tagValue": {
"type": "String",
"metadata": {
"displayName": "Tag Value",
"description": "Value of the tag, such as 'production'"
},
"defaultValue": [ "production" ]
}