从 Terraform 中的模块数组创建模块属性数组

时间:2021-04-29 14:50:31

标签: terraform

在 terraform 中,我有一个列表

  lambda_functions = [
    module.lambda1,
    module.lambda2,
    module.lambda3,
    module.lambda4]

(我创建 Lambda 作为派生自 serverless.tf Lambda module 的模块)

我需要像这样创建一个单独的数组:

  lambda_functions = [
    module.lambda1.this_lambda_function_name,
    module.lambda2.this_lambda_function_name,
    module.lambda3.this_lambda_function_name,
    module.lambda4.this_lambda_function_name]

我如何在 Terraform 中实现它?

1 个答案:

答案 0 :(得分:1)

这种情况是 the splat operator[*] 的典型用例。它可以充当访问列表中每个元素的相同属性以构建新列表的简写。

例如:

local.lambda_functions[*].this_lambda_function_name

请注意,为了做到这一点,您需要将 lambda_functions 作为模块对象列表并单独声明此名称列表,因为名称列表源自对象列表。