我是 Terraform 的新手,正在尝试在 Azure 上创建一些资源。name对我来说,定义中的资源名称和属性之间似乎存在一些不必要的重复。
resource "azurerm_resource_group" "group_name" {
name = "group_name" # <-- repeated!
location = "${local.location}"
}
Run Code Online (Sandbox Code Playgroud)
有区别吗?我可以本着这样的精神将它们设置为相同吗:
resource "azurerm_resource_group" "group_name" {
name = "${name}"
location = "${local.location}"
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*ins 11
这里的两个名称有不同的用途和不同的范围。
块头中显示的名称是单个 Terraform 模块中使用的本地名称。当将结果从一种资源插入另一种资源时(例如${azurerm_resource_group.group_name}. 远程 API 永远不会看到这个名称;它仅用于内部参考。
在本例中,块name 内的属性是特定于资源类型本身的属性azurerm_resource_group。该名称将被发送到远程 API,并将成为 AzureRM 系统本身描述对象的方式。
在小型组织内的简单配置中,这两个名称确实有可能匹配。在实践中,这些名称之间的范围差异导致它们经常发生变化。例如:
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |