Я пытаюсь создать файл конфигурации terraform для создания экземпляра ec2. Я использую файл variables.tf
, чтобы поместить все мои переменные. Это работает для большинства случаев, но есть два случая, которых я не могу достичь. Любые указатели очень ценятся.
1.using переменной для имени экземпляра aws. Использование var.service_name
или "${service_name}"
не работает.
resource "aws_instance" var.service_name {
ami = "ami-010fae13a16763bb4"
instance_type = "t2.micro"
.....
}
Эта запись объясняет, что имя ресурса не может быть переменным. Но это довольно старый. Не уверен, что это все еще так.
2.Использование переменной внутри другой переменной. Например, у меня есть параметры подключения, определенные следующим образом:
connection {
host = "${aws_instance.terraformtest.public_ip}"
type = "ssh"
user = "ec2-user"
private_key = "${file("C:/Users/phani/Downloads/microservices.pem")}"
}
Это работает. Я использую IP, сгенерированный из ресурса экземпляра aws. Но если я использую это так. Это не работает
host = "${aws_instance.${service_name}.public_ip}"
Я что-то упустил или есть обходной путь