использование переменных для создания ресурса - PullRequest
0 голосов
/ 20 марта 2020

Можно ли заменить имя ресурса на переменную Вместо этого

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

Я хочу сделать это

resource "aws_instance" "$my_box" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

, где $ my_box будет определен в моих переменных. TF файл

1 Ответ

2 голосов
/ 20 марта 2020

Dynami c имя ресурса невозможно.

Идентификаторы

Имена аргументов, имена типов блоков и имена большинства специфицированных Terraform c конструкций, таких как ресурсы , входные переменные и т. д. c. все идентификаторы . Идентификаторы могут содержать буквы, цифры, символы подчеркивания (_) и дефисы (-). Первый символ идентификатора не должен быть ди git, чтобы избежать двусмысленности с литеральными числами. Для полных правил идентификатора Terraform реализует синтаксис идентификатора Unicode, расширенный для включения символа дефиса ASCII -.

Имя ресурса - это идентификатор, похожий на имя функции в языке программирования, который (насколько я знаю) ) stati c.

Если есть функция python или C, мы не ожидаем, что имена функций могут быть динамическими c.

def function(arg): 
   ...


void main(void){
   ...
}

Хотя языки например, Python может передавать функцию как объект и устанавливать ее в качестве переменной, HCL не является таким языком.

...