Azure DevOps Terraform-azurerm“策略”分配错误-“;无法分析修正作用域ID:ID为空";

Azure DevOps Terraform-azurerm“策略”分配错误-“;无法分析修正作用域ID:ID为空";,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,我们有一个使用Terraform 0.12.3系列任务创建VM的发布管道,其中一部分涉及创建自动标记资源的策略。以下是给出错误的相关地形代码: # Assign tagging policy resource "azurerm_policy_assignment" "tag_policy" { count = length(var.tagNames) name = "Apply${var.tagNames[count.inde

我们有一个使用Terraform 0.12.3系列任务创建VM的发布管道,其中一部分涉及创建自动标记资源的策略。以下是给出错误的相关地形代码:

# Assign tagging policy
resource "azurerm_policy_assignment" "tag_policy" {
  count                = length(var.tagNames)
  name                 = "Apply${var.tagNames[count.index]}Tag"
  scope                = azurerm_resource_group.rsg.id
  policy_definition_id = "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498"
  description          = "Assign policy for Tag '${var.tagNames[count.index]}' Value '${var.tagValues[count.index]}'"
  display_name         = "Apply${var.tagNames[count.index]}Tag"

  parameters           = <<PARAMETERS
{
    "tagName": {
      "value": "${var.tagNames[count.index]}"
    },
    "tagValue": {
      "value": "${var.tagValues[count.index]}"
    }
}
PARAMETERS
}
我已再次检查策略定义ID是否正确:

名称:将标记及其值附加到资源

定义ID:/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498


Hashicorp关于azurerm_策略_分配的指南没有提到需要修正作用域ID,也没有设置忽略它的标志。

对于这个问题,我认为对资源
azurerm_策略_分配属性的介绍以错误的方式误导了您。您可以看到它引用了属性的
azurerm\u policy\u定义.example.id
,但当您输出该id时,您会知道它是策略定义的资源id,而不是您提供的id。因此
策略定义\u id
如下所示:

/subscriptions/xxxxxxxx/providers/Microsoft.Authorization/policyDefiniti
ons/my-policy-definition

对于这个问题,我认为资源
azurerm\u policy\u赋值属性的引入以错误的方式误导了您。您可以看到它引用了属性的
azurerm\u policy\u定义.example.id
,但当您输出该id时,您会知道它是策略定义的资源id,而不是您提供的id。因此
策略定义\u id
如下所示:

/subscriptions/xxxxxxxx/providers/Microsoft.Authorization/policyDefiniti
ons/my-policy-definition

还有问题吗?它能解决你的问题吗?如果有任何更新,请告诉我。还有问题吗?它能解决你的问题吗?如果有任何更新,请告诉我。