gpt4 book ai didi

terraform - 从 Terraform 的列表中选择一系列元素

转载 作者:行者123 更新时间:2023-12-04 16:29:48 24 4
gpt4 key购买 nike

有没有办法从 Terraform 的列表中选择一系列元素?

例如 - 如果我们有:

[a, bb, ccc, dddd, eeeee]

如何选择前3个元素?
a, bb, ccc

然后是第 4 个和第 5 个元素?
dddd, eeeee

最佳答案

您正在查找的列表子集通常称为切片。 Terraform 为此有一个内置函数,称为 slice ,自 0.8.8 版起可用。你正在寻找

slice(<put_reference_to_list_here, 0, 3)
slice(<put_reference_to_list_here, 3, 5)

从文档:

slice(list, from, to) - Returns the portion of list between from (inclusive) and to (exclusive).



最值得注意的是 sliceto很挑剔参数,它可能必须小于或等于列表长度,否则 TF 会提示。
这些 fromIndex,toIndex界面对我来说并不直观,所以我开始为我(必须)使用的每种语言保留代码片段。这是我的 Terraform 助手:
variable "mylist" { default = [ 101, 102, 103, 104, 105 ] }

locals{
everything = "${slice(var.mylist, 0 , length(var.mylist) )}"
butlast = "${slice(var.mylist, 0 , length(var.mylist)-1)}"
thelast = "${slice(var.mylist, length(var.mylist)-1, length(var.mylist) )}"
}


data "null_data_source" "slices" {
inputs {
everything = "${join(",",local.everything)}"
butlast = "${join(",",local.butlast)}"
thelast = "${join(",",local.thelast)}"
}
}

output "slices" {
value = "${data.null_data_source.slices.outputs}"
}

为您省心 terraform init; terraform refresh :
data.null_data_source.slices: Refreshing state...

Outputs:

slices = {
butlast = 101,102,103,104
everything = 101,102,103,104,105
thelast = 105
}

关于terraform - 从 Terraform 的列表中选择一系列元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com