首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure DevOps平台- azurerm_policy_assignment错误-“无法解析修正作用域ID: ID为空”

Azure DevOps平台- azurerm_policy_assignment错误-“无法解析修正作用域ID: ID为空”
EN

Stack Overflow用户
提问于 2020-04-22 00:44:08
回答 1查看 350关注 0票数 1

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

代码语言:javascript
运行
复制
# 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
}

(代码的“计数”部分是由于要应用3个标签,这是在variables.tf中定义的)

我们收到的错误是:

代码语言:javascript
运行
复制
2020-04-17T15:40:29.5769619Z Error: cannot parse "policy_definition_id" as a Policy Definition ID: unable to parse Policy Definition ID "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498": unable to parse Remediation Scope ID: ID is empty
2020-04-17T15:40:29.5771388Z 
2020-04-17T15:40:29.5771960Z   on main.tf line 62, in resource "azurerm_policy_assignment" "tag_policy":
2020-04-17T15:40:29.5772430Z   62: resource "azurerm_policy_assignment" "tag_policy" {

我已经仔细检查了策略定义ID是否正确:

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

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

Hashicorp的azurerm_policy_assignment指南没有提到需要补救作用域ID,也没有设置一个标记来忽略它。

EN

回答 1

Stack Overflow用户

发布于 2020-04-23 15:58:07

对于这个问题,我认为对资源azurerm_policy_assignment的属性policy_definition_id的介绍误导了您。您可以看到它引用了属性的azurerm_policy_definition.example.id,但是当您输出该Id时,您将知道它是策略定义的资源id,而不是您提供的Id。所以policy_definition_id看起来像这样:

代码语言:javascript
运行
复制
/subscriptions/xxxxxxxx/providers/Microsoft.Authorization/policyDefiniti
ons/my-policy-definition
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61348666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档