【问题标题】:Terrafrom v11.13 Attach Multiple Data Templates To Single ResourceTerraform v11.13 将多个数据模板附加到单个资源
【发布时间】:2020-01-26 04:47:40
【问题描述】:

我正在使用 AWS 提供商运行 Terraform v11.13。是否可以将多个数据模板文件附加到单个资源?

这方面的一个示例是,您只有一个 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 "$"

关于如何实现这一点的任何想法?

【问题讨论】:

  • 什么失败了?你能分享这个失败的minimal reproducible example 并包括完整的错误吗?
  • 从低层次来看,变量插值内的变量插值是不可能的。从高层次来看,在 Terraform

标签: terraform terraform-provider-aws


【解决方案1】:

根据错误消息和 Matt Schuchard 的建议,可以得出结论 data.template_file 选项在 v11.13 中不支持插值

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 2021-07-29
    • 2012-10-15
    • 1970-01-01
    • 2020-07-05
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多