Terraform объединяет переменную и строку - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь выполнить довольно простую задачу в Terraform, и она не работает:

tfvars:

hosted_zone       = "example.com"
domain            = "my.${var.hosted_zone}"

route_53_record:

resource "aws_route53_record" "regional" {
  zone_id = "${data.aws_route53_zone.selected.zone_id}"
  name    = "${var.domain}"
  type    = "A"
  ttl     = "300"
  records = ["4.4.4.4"]
}

Когда язапустить terraform plan Я получаю это:

+ aws_route53_record.regional
      id:                 <computed>
      allow_overwrite:    "true"
      fqdn:               <computed>
      name:               "my.${var.hosted_zone}"
      records.#:          "1"
      records.3178571330: "4.4.4.4"
      ttl:                "300"
      type:               "A"
      zone_id:            "REDACTED"

домен должен быть my.example.com.Как мне объединить переменную hosted_zoned и строку для формирования домена?

1 Ответ

0 голосов
/ 18 февраля 2019

Вы не можете использовать интерполяцию в файле tfvars.

Вместо этого вы можете присоединить его непосредственно к вашей Terraform следующим образом:

terraform.tfvars

hosted_zone       = "example.com"
domain            = "my"

main.tf

resource "aws_route53_record" "regional" {
  zone_id = "${data.aws_route53_zone.selected.zone_id}"
  name    = "${var.domain}.${var.hosted_zone}"
  type    = "A"
  ttl     = "300"
  records = ["4.4.4.4"]
}

Или, если вам всегда нужно составить эти вещи вместе, вы можете использовать локальный:

locals {
  local = "${var.domain}.${var.hosted_zone}"
}

resource "aws_route53_record" "regional" {
  zone_id = "${data.aws_route53_zone.selected.zone_id}"
  name    = "${local.domain}"
  type    = "A"
  ttl     = "300"
  records = ["4.4.4.4"]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...