【问题标题】:Terragrunt - Unsupported attribute --- but tfstate has the attributeTerragrunt - 不支持的属性 --- 但 tfstate 具有该属性
【发布时间】:2021-03-10 05:59:39
【问题描述】:

我无法解决这个问题,它已经发生了几次,这次我无法解决它。

我从 terragrunt 得到的错误是

terragrunt.hcl:25,47-50:不支持的属性;此对象没有名为“id”的属性。

我的问题是我试图引用的 id 存在于 tfstate 中,为什么它看不到它?

下面的短代码 terragrunt.hcl

dependency "vm01" {
  config_path = "../vm01"
}

include {
  path = find_in_parent_folders()
}

terraform {
  source = "//core/azurerm_virtual_machine_extension"
}

locals {
  vm_name = "vm01"
}

inputs = {
  name                  = local.vm_name
  virtual_machine_id    = dependency.vm01.id
.....
}

输出.hcl

output "id" {
  value = azurerm_windows_virtual_machine.vm.id
}

tfstate 直接从后端存储帐户中提取

{
  "version": 4,
  "terraform_version": "0.14.7",
  "serial": 4,
  "lineage": "abcde-guid-abcde",
  "outputs": {
    "id": {
      "value": "/subscriptions/abcde-guid-abcde/resourceGroups/rg-name/providers/Microsoft.Compute/virtualMachines/vm01",
      "type": "string"
    }
  }
...........
}

【问题讨论】:

  • terragrunt 输出还将 id 和 virtual_machine_id 显示为 vm01 上的可用输出

标签: terraform terraform-provider-azure terragrunt


【解决方案1】:

感谢terraform github 的 yorinasub17 我找到了答案。

输出嵌套在输出下,因此 id 的路径是 dependency.vm01.outputs.id,而不是你现在的dependency.vm01.id 在代码 sn-p 中引用。请参阅dependency block reference 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2011-10-25
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多