Terraform 地形文字未终止

Terraform 地形文字未终止,terraform,Terraform,我定义了以下变量 variable "pg_parameters" { type = "list" description = "A list of parameters for configuring the parameter groups." default = [ { name = "rds.logical_replication" value = 1 apply_method = "p

我定义了以下变量

variable "pg_parameters" {
  type        = "list"
  description = "A list of parameters for configuring the parameter groups."

  default = [
    {
      name         = "rds.logical_replication"
      value        = 1
      apply_method = "pending-reboot"
    },
  ]
}
然后在我的tf模块中,我想向名为
参数的列表中添加一个额外的项

  parameter = "[
    "${var.pg_parameters}",
    "{
      "name": "rds.force_ssl",
      "value": "${lookup(var.ssl, element(var.environments, count.index), 1)}",
      "apply_method": "pending-reboot"
    }",
  ]"
但是,我得到了这个错误:

Error loading modules: module postgres_ssl_off: Error parsing .terraform/modules/5ee2f0efac9d712d26a43b2388443a7c/main.tf: At 46:17: literal not terminated

我不确定实际的终止丢失在哪里?

列表中的第二个元素是映射。您需要使用
=
,而不是
来指定地图。您还可以在键周围放置
,并映射自身,如下所示:

variable "pg_parameters" {
  type        = "list"
  description = "A list of parameters for configuring the parameter groups."

  default = [
    {
      name         = "rds.logical_replication"
      value        = 1
      apply_method = "pending-reboot"
    },
  ]
}

locals {
  my_params = [
    "${var.pg_parameters}",
    {
      name         = "rds.force_ssl"
      value        = "hello"
      apply_method = "pending-reboot"
    },
  ]
}

output "example" {
  value = "${local.my_params}"
}
应用节目

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

example = [
    {
        apply_method = pending-reboot,
        name = rds.logical_replication,
        value = 1
    },
    {
        apply_method = pending-reboot,
        name = rds.force_ssl,
        value = hello
    }
]

列表中的第二个元素是映射。您需要使用
=
,而不是
,来分配映射。您还可以在键周围放置
,并映射自身,如下所示:

variable "pg_parameters" {
  type        = "list"
  description = "A list of parameters for configuring the parameter groups."

  default = [
    {
      name         = "rds.logical_replication"
      value        = 1
      apply_method = "pending-reboot"
    },
  ]
}

locals {
  my_params = [
    "${var.pg_parameters}",
    {
      name         = "rds.force_ssl"
      value        = "hello"
      apply_method = "pending-reboot"
    },
  ]
}

output "example" {
  value = "${local.my_params}"
}
应用节目

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

example = [
    {
        apply_method = pending-reboot,
        name = rds.logical_replication,
        value = 1
    },
    {
        apply_method = pending-reboot,
        name = rds.force_ssl,
        value = hello
    }
]