此代码将创建一个名称为EC2 Instance
的EC2实例:
provider "aws" {
region = "eu-west-1"
}
module ec2 {
source = "./ec2_instance"
name = "EC2 Instance"
}
但是,如果我尝试使用random_pet
资源,则实例名称将成为一个空字符串。
provider "aws" {
region = "eu-west-1"
}
resource "random_pet" "server" {
length = 4
}
module ec2 {
source = "./ec2_instance"
name = "${random_pet.server.id}"
}
为什么?
我正在使用https://www.terraform.io/docs/providers/random/r/pet.html中的random_pet.server.id
代码
更新:通过使用output
我可以调试它。
在plan
期间,Terraform似乎没有显示此变量的值。但是,在执行apply
时,它已成功填充了此变量(因此命名了实例)。然后问题变成why does it not work in plan but does in apply
?