是否可以用变量替换资源名称 代替这个
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将在我的vars.tf文件中定义
答案 0 :(得分:2)
无法使用动态资源名称。
大多数Terraform特定的构造(例如资源,输入变量等)的自变量名称,块类型名称和名称。都是标识符。
标识符可以包含字母,数字,下划线(_)和连字符(-)。标识符的首字符不能为数字,以避免与文字数字产生歧义。
对于完整的标识符规则,Terraform实现了Unicode标识符语法,该语法已扩展为包括ASCII连字符-。
资源名称是一种标识符,例如编程语言中的函数名称,据我所知,它是静态的。
如果有python函数或C函数,我们不希望函数名称可以是动态的。
def function(arg):
...
void main(void){
...
}
尽管Python之类的语言可以将函数作为对象传递并将其设置为变量,但HCL并不是这种语言。