AWS ECR 存储库的跨区域复制

paw*_*n19 3 amazon-web-services terraform amazon-ecr terragrunt elastic-container-registry

我正在尝试使用 terraform 将我的 AWS ECR 存储库复制到同一账户内的多个区域。我从 AWS 控制台手动尝试,它工作正常,但从 terraform ,我无法找到解决方案。我尝试过的操作:我尝试为名为replicate_region的区域创建一个单独的变量,并尝试在列表中提供该区域,但它一直给我一个名为replicate_region的错误

属性“region”的值不合适:需要字符串。

这是变量代码:

variable "replicate_region" {
 description = "value"
 type = list(string)
}
Run Code Online (Sandbox Code Playgroud)

这是我的 ecr 复制代码:

resource "aws_ecr_replication_configuration" "replication" {
 replication_configuration {
  rule {
   destination {
     region      = var.replicate_region
     registry_id = "xxxxxxxx"
  }
}}}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

谢谢,

Mar*_*cin 8

你的replicate_region 应该是 string,而不是字符串列表。应该是,例如:

variable "replicate_region" {
 description = "value"
 type = string
 default = "us-east-1"
}
Run Code Online (Sandbox Code Playgroud)

更新

使用动态块进行迭代。

variable "replicate_region" {
 description = "value"
 type = list(string)
 default = ["us-east-1", "ap-southeast-1", "ap-south-1"]
}

resource "aws_ecr_replication_configuration" "replication" {

 replication_configuration {
  rule {

   dynamic "destination" {

       for_each = toset(var.replicate_region) 

       content {
         region      = destination.key
         registry_id = "xxxxxxxx"
      }
  }
}}}
Run Code Online (Sandbox Code Playgroud)