【问题标题】:using count.index in terraform?在 terraform 中使用 count.index?
【发布时间】:2018-10-22 09:56:15
【问题描述】:

我正在尝试从模板生成一堆文件。我需要用 count.index 替换硬编码的 1,不确定 terraform 允许我使用什么格式。

resource "local_file" "foo" {
  count = "${length(var.files)}"
  
  content  = "${data.template_file.tenant_repo_multi.1.rendered}"
  #TODO: Replace 1 with count index.
  filename = "${element(var.files, count.index)}"
}


data "template_file" "tenant_repo_multi" {

  count = "${length(var.files)}"
  template = "${file("templates/${element(var.files, count.index)}")}"

}

variable "files" {
  type    = "list"
  default = ["filebeat-config_filebeat.yml",...]
}

我正在运行:

Terraform v0.11.7
+ provider.gitlab v1.0.0
+ provider.local v1.1.0
+ provider.template v1.0.0

【问题讨论】:

    标签: terraform terraform-template-file


    【解决方案1】:

    您可以像这样遍历tenant_repo_multi 数据源 -

    resource "local_file" "foo" {
      count    = "${length(var.files)}"
      content  = "${element(data.template_file.tenant_repo_multi.*.rendered, count.index)}"
      filename = "${element(var.files, count.index)}"
    }
    

    但是,您是否考虑过在 Terraform 模板提供程序中使用 template_dir 资源。下面的例子 -

    resource "template_dir" "config" {
        source_dir      = "./unrendered"
        destination_dir = "./rendered"
    
        vars = {
            message = "world"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 2021-08-06
      • 2020-01-16
      • 1970-01-01
      • 2018-09-09
      • 2022-11-03
      • 2018-10-15
      • 2019-08-14
      • 2020-05-23
      相关资源
      最近更新 更多