我有一个中等复杂的terraform设置,模块目录包含main.tf,variables.tf和input.tf以及包含foo.tf,variables.tf和vars.tf的环境目录 .
我可以成功运行terraform apply,一切都成功 . 但是,如果我立即再次运行terraform,它会进行更改 .
它一直在进行的更改是模块中的资源...从环境tf文件中的变量获取属性的资源 . 我正在创建一个MQ代理和一个仪表板来监控它 .
在环境目录中
top.tf
module "broker" {
source = "modules/broker"
dashboard = "...."
}
在modules目录中
input.tf
variable "dashboard" {
}
amazonmq.tf
resource "aws_cloudwatch_dashboard" "mydash" {
dashboard_name = "foo"
dashboard_body = "${dashboard}"
}
每次我运行terraform应用它说它需要更改仪表板 . 关于我试图用TF_LOG = DEBUG运行的任何提示,但我看不到任何说明为什么需要进行更改的内容 . 提前致谢 .
1 回答
这似乎是terraform提供程序代码本身的问题 . dashboard_body属性应该附加 computed 标志,以允许您提供它,但忽略来自aws的任何传入更改 .
我在这里找到它:https://github.com/terraform-providers/terraform-provider-aws/issues/5729