Terraform 地形资源没有变量的属性
正在运行Terraform 0.11.7并出现以下错误: module.frontend_cfg.var.web_acl: Resource 'data.terraform_remote_state.waf' does not have attribute 'waf_nonprod_id' for variable 'data.terraform_remote_state.waf.waf_nonprod_id' 下面是创建上面引用的tfstate文件的文件。此文件在生成时没有问题Terraform 地形资源没有变量的属性,terraform,Terraform,正在运行Terraform 0.11.7并出现以下错误: module.frontend_cfg.var.web_acl: Resource 'data.terraform_remote_state.waf' does not have attribute 'waf_nonprod_id' for variable 'data.terraform_remote_state.waf.waf_nonprod_id' 下面是创建上面引用的tfstate文件的文件。此文件在生成时没有问题 resourc
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\u remote\u状态下使用路径而不是名称, 或 我用terraform版本0.11.7和0.11.14测试了它
如果将terraform升级到版本0.12.x,则使用远程状态输出的语法已更改。 所以改变
web_acl = "${data.terraform_remote_state.waf.waf_nonprod_id}"
到
或
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"
}
}
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}"