【问题标题】:Terraform Resource does not have attribute for variableTerraform 资源没有变量的属性
【发布时间】:2019-11-20 16:10:23
【问题描述】:

运行 Terraform 0.11.7 并收到以下错误:

module.frontend_cfg.var.web_acl:资源“data.terraform_remote_state.waf”没有变量“data.terraform_remote_state.waf.waf_nonprod_id”的属性“waf_nonprod_id”

下面是 terraform 文件:

module "frontend_cfg"
{
    source        = "../../../../modules/s3_fe/developers"
    region        = "us-east-1"
    dev_shortname = "cfg"
    web_acl       = "${data.terraform_remote_state.waf.waf_nonprod_id}"
}

data "terraform_remote_state" "waf" {
  backend = "local"
  config = {
    name = "../../../global/waf/terraform.tfstate"
  }
}

创建上面引用的 tfstate 文件的文件如下。此文件在构建时没有问题。

resource "aws_waf_web_acl" "waf_fe_nonprod"
{
    name        = "fe_nonprod_waf"
    metric_name = "fenonprodwaf"

    default_action
    {
        type = "ALLOW"
    }
}

output waf_nonprod_id
{
    value = "${aws_waf_web_acl.waf_fe_nonprod.id}"
}

我将保留 cloudfront 文件的完整输出,但是,以下内容涵盖了文本:

resource "aws_cloudfront_distribution" "fe_distribution"
{
    web_acl_id          = "${var.web_acl}"
}

如果我将 waf ID 的 ID 放入 web_acl 变量中,它工作得很好,所以我怀疑这个问题与我调用数据的方式有关。不过,这似乎与文档相符。

【问题讨论】:

    标签: terraform


    【解决方案1】:

    在 terraform_remote_state 中使用路径而不是名称, https://www.terraform.io/docs/backends/types/local.html

    data "terraform_remote_state" "waf" {
      backend = "local"
      config = {
        path = "../../../global/waf/terraform.tfstate"
      }
    }
    

    data "terraform_remote_state" "waf" {
      backend = "local"
      config = {
        path = "${path.module}/../../../global/waf/terraform.tfstate"
      }
    }
    

    我使用 terraform 版本 0.11.7 和 0.11.14 对其进行了测试


    如果您将 terraform 升级到版本 0.12.x,则使用 remote_state 输出的语法已更改。 所以改变

    web_acl       = "${data.terraform_remote_state.waf.waf_nonprod_id}"
    

    web_acl       = data.terraform_remote_state.waf.outputs.waf_nonprod_id
    

    web_acl       = "${data.terraform_remote_state.waf.outputs.waf_nonprod_id}"
    

    【讨论】:

      猜你喜欢
      • 2018-09-18
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2018-08-01
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多