for_each 的 Terraform 动态块不适用于空列表

Terrform dyamic block with for_each not working with empty list

我正在尝试扩展包装 AWS Secrets Manager 的模块。目前它不支持复制,我正在尝试添加它。我正在使用 terraform 0.14.

这是我添加的变量:

variable "replica_regions" {
  type        = list(string)
  description = "A List of Regions"
  default     = []
}

这是我在“aws_secretsmanager_secret”资源中添加的内容:

  dynamic "replica" {
    for_each = var.replica_regions
    content {
      region = replica.value
    }
  }

这似乎有效,因为当我添加区域时,它开始将秘密复制到这些区域。当我从列表中删除区域时,它会停止在那里复制它们。唯一的问题是当我尝试从 1 个区域转到 0 个区域时,它似乎什么也没做,秘密仍然被复制。当我从调用中删除 replica_regions 并将其明确设置为 [].

时,就会发生这种情况

想知道这是为什么吗?

这是 terraform-provider-aws 的错误。如果bug被修复,预计当variable处于[]状态时secret replication会被删除。

This issue应该解决了。