我正在阅读terraform并找到以下代码:
resource "aws_vpc" "vpc_main" {
cidr_block = "10.0.0.0/16"
tags {
Name = "Main VPC"
}
}
在这里,我无法理解资源定义中 vpc_main 代表什么。有人可以解释一下吗?
答案 0 :(得分:2)
它是资源的用户定义名称 - 如果没有这个名称,您将无法区分同一资源类型的多个实例。
有关详细信息,请参阅the docs。
答案 1 :(得分:0)
其他编程语言中的变量类型和名称是一个很好的类比。例如,在Java中,您可以按如下方式声明变量:
String foo
变量的类型为String
,变量的名称为foo
。您必须指定一个名称,以便(a)将其与同类型的其他变量区分开来,(b)稍后再参考。
在Terraform中,它基本上是相同的想法:
resource "aws_instance" "foo" { ... }
此处,资源的类型为aws_instance
,名称为foo
。您必须指定一个名称,以便(a)将其与相同类型的其他资源区分开来,并(b)稍后再参考。例如,要输出该实例的公共IP地址,您可以执行以下操作:
output "public_ip" {
value = "${aws_instance.foo.public_ip}"
}