Terrafrom v11.13 Присоединение нескольких шаблонов данных к одному ресурсу - PullRequest
0 голосов
/ 26 сентября 2019

Я использую Terraform v11.13 с провайдером AWS.Можно ли присоединить несколько файлов шаблонов данных к одному ресурсу?

Примером этого является то, что у вас есть один ресурс aws_iam_policy, но для него можно создать несколько политик IAM из разных файлов шаблонов данных.

Это работает, когда это просто один файл шаблона данных с индексом счета.Это также работает, когда файл статичен, как в файле шаблона.

Вот пример кода

variable "policy_list"{
    type = "list"
    default = ["s3,"emr","lambda"]
}

resource "aws_iam_policy" "many_policies" {
  count       = "${length(var.policy_list)}"
  name        = "Policy_${var.policy_list[count.index]}_${var.environment}"
  policy      = "${file("${path.module}/files/policies/${var.environment}/${var.policy_list[count.index]}.json")}"
}

resource "aws_iam_role_policy_attachment" "many_policies_attachment" {
   count      = "${length(var.policy_list)}"
   role       = "${aws_iam_role.iam_roles.*.name[index(var.role_list, "MyRole"))]}"
   policy_arn = "${aws_iam_policy.many_policies.*.arn[count.index]}"
}

Но что не получается, так это

resource "aws_iam_policy" "many_policies" {
  count       = "${length(var.policy_list)}"
  name        = "Policy_${var.policy_list[count.index]}_${var.environment}"
  policy      = "${data.template_file.${var.policy_list[count.index]}_policy_file.*.rendered[count.index]}"
}

Ссообщение об ошибке, подобное

parse error expected "}" but found invalid sequence "$"

Любые идеи о том, как этого можно достичь?

...