首页 > 解决方案 > Terraform 未保存 ECS 集群 containerInsights 设置的状态

问题描述

这是我的模板:

resource "aws_ecs_cluster" "doesntmatter" {
  name = var.doesntmatter_name

  capacity_providers = ["FARGATE", "FARGATE_SPOT"]
  setting {
    name  = "containerInsights"
    value = "enabled"
  }

  tags = var.tags
}

当我运行它时。它会正确创建集群并将 containerInsights 设置为启用。 在此处输入图像描述

但是当我再次运行 terrafrom 时。它想改变这个属性,就好像它以前没有设置过一样。 我运行它多少次都没关系。它仍然认为每次部署都需要对其进行更改。

在此处输入图像描述

此外,terraform state show resName确实显示此设置保存在状态文件中。

标签: amazon-web-servicesterraformterraform-provider-aws

解决方案


这是一个使用 Terraform AWS Provider(昨天发布)的 v3.57.0 解决的错误。

Amazon ECS 正在对 ECS Describe-Clusters API 进行更改。以前,成功的 ECS Describe-Clusters API 请求的响应默认包括集群设置。这种行为是不正确的,因为如此处所述(https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-clusters.html),集群设置是一个可选字段,只有在客户明确要求。随着更改,默认情况下 ECS 将不再显示集群设置字段以响应 Describe-Clusters API。客户可以继续使用带有 Describe-Clusters API 的 --include SETTINGS 标志来接收集群设置。

跟踪错误:https ://github.com/hashicorp/terraform-provider-aws/issues/20684


推荐阅读