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

从Terraform中的列表中选择一系列元素,terraform,Terraform,有没有办法从Terraform中的列表中选择一系列元素 例如,如果我们有: [a, bb, ccc, dddd, eeeee] 如何选择前3个元素 a, bb, ccc 然后是第四和第五元素 dddd, eeeee 使用。该页面描述了您可用的完整表达式语言 根据该列表的来源,您可能会发现在其源位置拆分它更方便。例如,与其声明5个aws\u实例资源,然后尝试以这种方式对其输出进行切片,不如分别声明3个和2个实例,并只处理整个输出列表。您正在查找的列表子集通常称为切片。Terraform为此有

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

例如,如果我们有:

[a, bb, ccc, dddd, eeeee]
如何选择前3个元素

a, bb, ccc
然后是第四和第五元素

dddd, eeeee
使用。该页面描述了您可用的完整表达式语言


根据该列表的来源,您可能会发现在其源位置拆分它更方便。例如,与其声明5个
aws\u实例
资源,然后尝试以这种方式对其输出进行切片,不如分别声明3个和2个实例,并只处理整个输出列表。

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

slice(<put_reference_to_list_here, 0, 3)
slice(<put_reference_to_list_here, 3, 5)
省去了
terraforminit;地形刷新

data.null_data_source.slices: Refreshing state...

Outputs:

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

啊,那一个从我的视线中溜走了——谢谢你,大卫!我相信如果每个TF内置功能都有一个单独的网页和几个不同用例的示例,这将是非常有用的-我将向TF的团队提出这个建议。顺便说一下-我正在尝试完成代码,应该能够创建多个托管区域,创建多个AWS ACM证书并通过DNS验证自动验证。我正在尝试使用尽可能干燥的代码,而不需要两次声明任何内容,等等。上面的函数是在验证的最后一步切片“validation\u record\u fqdns”所需要的。
data.null_data_source.slices: Refreshing state...

Outputs:

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