Isa*_*acD 8 variables terraform terraform-provider-aws
有谁知道是否有可能用代码片段来表示我是否可以在 terraform 变量的地图变量中创建地图变量?
variable "var" {
type = map
default = {
firstchoice = {
firstAChoice ="foo"
firstBChoice = "bar"
}
secondchoice = {
secondAChoice = "foobar"
secondBChoice = "barfoo"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人对这是否可行或任何详细说明的文档有任何见解,那就太好了。
Avi*_*aya 14
是的,可以将地图变量作为地图变量键的值。您的变量只需要正确的缩进。此外,我正在考虑访问该变量的方法。
variable "var" {
default = {
firstchoice = {
firstAChoice = "foo"
firstBChoice = "bar"
}
secondchoice = {
secondAChoice = "foobar"
secondBChoice = "barfoo"
}
}
}
Run Code Online (Sandbox Code Playgroud)
要访问地图键的整个地图值firstchoice,您可以尝试以下操作
value = "${var.var["firstchoice"]}"
output:
{
firstAChoice = foo
firstBChoice = bar
}
Run Code Online (Sandbox Code Playgroud)
要访问该映射键的特定键(示例firstAChoice),您可以尝试
value = "${lookup(var.var["firstchoice"],"firstAChoice")}"
output: foo
Run Code Online (Sandbox Code Playgroud)
这种语法可能吗?${var.var[firstchoice[firstAchoice]]}
Terraform 0.12+ 嵌套块被无缝支持。扩展@Avichal Badaya 的回答以使用示例进行解释:
# Nested Variable
variable "test" {
default = {
firstchoice = {
firstAChoice = "foo"
firstBChoice = "bar"
}
secondchoice = {
secondAChoice = "foobar"
secondBChoice = "barfoo"
}
thirdchoice = {
thirdAChoice = {
thirdBChoice = {
thirdKey = "thirdValue"
}
}
}
}
}
# Outputs
output "firstchoice" {
value = var.test["firstchoice"]
}
output "FirstAChoice" {
value = var.test["firstchoice"]["firstAChoice"]
}
output "thirdKey" {
value = var.test["thirdchoice"]["thirdAChoice"]["thirdBChoice"]["thirdKey"]
}
Run Code Online (Sandbox Code Playgroud)
应用上述内容,您可以验证 Terraform 地图嵌套现在非常强大,这使很多事情变得更容易。
# Apply complete! Resources: 0 added, 0 changed, 0 destroyed.
# Outputs:
firstchoice = {
"firstAChoice" = "foo"
"firstBChoice" = "bar"
}
thirdKey = thirdValue
Run Code Online (Sandbox Code Playgroud)
有关更复杂的结构和丰富的值类型,请参阅HashiCorp Terraform 0.12 预览版:丰富的值类型
| 归档时间: |
|
| 查看次数: |
11109 次 |
| 最近记录: |