terraform - цикл for для реплики - имя региона для глобальной таблицы

Я создаю глобальную таблицу aws с terraform с многорегиональной репликацией.

    resource "aws_dynamodb_global_table" "test_table" {
  depends_on = ["aws_dynamodb_table.us-east-1", "aws_dynamodb_table.us-west-2"]
  provider   = "aws.us-east-1"

  name = "test"

  replica {
    region_name = "us-east-1"
  }

  replica {
    region_name = "us-west-2"
  }
}

Далее я создаю обе региональные таблицы в виде модулей с countinterpolation и возвращая ARN для каждой таблицы.

Как мне создать Global Table как модуль, куда я добавляю ссылку на обе таблицы? depends_on а также replica в этом случае.

Обновлено с проверенным подходом:

//Templ1 
{ region_name = "${region_name}" }

//Templ2
  ${value} 

data "template_file" "replica_region" {
  template = "${file("${path.module}/replica-region.json.tmpl")}" 
  count = "${length(var.regions)}"
  vars {
    region_name = "${element(var.regions, count.index)}"
  }
}

data "template_file" "replica_regional" {
  template = "${file("${path.module}/replica-regional.json.tmpl")}" 
  vars {
    value = "${join(",", data.template_file.replica_region.*.rendered)}"
  }
}

Я передаю ниже в глобальную таблицу

replica = [ "${data.template_file.replica_regional.rendered}" ] 

но получаю ошибку replica.0.region_name : required field is not set где, когда я делаю вывод для "${data.template_file.replica_regional.rendered}" Я получаю ниже выходной.

 { region_name = "us-east-1" },{ region_name = "us-west-2" }

И если я жестко запрограммирован выше, рецепт терраформ работает просто отлично. Что мне не хватает? Я имею в виду эту статью Ссылка

1 ответ

В итоге я установил его как переменную, как показано ниже variables.tf и использовать его непосредственно в глобальном ресурсе БД.

    replica = [
        {
            region_name = "us-east-1"
        },
        {
            region_name = "us-west-1"
        }
    ]
Другие вопросы по тегам