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