terraform Ошибка интерполяции в настройке vpc - PullRequest
0 голосов
/ 29 октября 2018

ребята, я пытаюсь сделать интерполяцию в интерполяции. У меня есть следующее в моем файле vars.tf.

variable "appname" { default = "application2" }

В моем VPC я пытаюсь сослаться на свой vpc по имени

resource "aws_vpc" "${var.appname}" { cidr_block = "10.0.0.0/16" }

Пока все работает хорошо. Так что мне трудно с именами подсетей. Как я могу дать имя для подсети?

resource "aws_subnet" "${var.appname-subnet}" { vpc_id = "${aws_vpc.${aws_vpc.var.appname}.id}" cidr_block = "10.0.1.0/24" }

Эта линия - проблема для меня. Как я могу обратиться к VPC в этом случае?

Спасибо

1 Ответ

0 голосов
/ 29 октября 2018

Я не думаю, что terraform допускает интерполяцию в именах ресурсов.

Вы можете дать ему любое имя и обратиться к нему.

resource "aws_vpc" "yourvpc" {
  cidr_block = "10.0.0.0/16"
}


resource "aws_subnet" "yoursubnet" {
  vpc_id     = "${aws_vpc.yourvpc.id}"
  cidr_block = "10.0.1.0/24"
}

Я знаю, что это довольно очевидно, но я сомневаюсь, что мы можем использовать интерполяцию в именовании ресурсов. Вы можете удалить / прокомментировать ресурс подсети и попробовать только с VPC с интерполяцией и посмотреть, работает ли он.

Если вы хотите разделить ресурсы для разных сред, вы можете использовать рабочие пространства terraform. Для каждого окружения создается отдельный файл состояния.
Ссылка - https://www.terraform.io/docs/state/workspaces.html

выпуск - https://github.com/hashicorp/terraform/issues/1114

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...