如何在资源内存储和重用terraform插值结果?

时间:2017-07-29 15:34:01

标签: terraform

如何在不将它们作为输出公开的资源中存储和重用terraform插值结果?

示例:在aws_ebs_volume中,我使用以下方法计算卷大小:

size = "${lookup(merge(var.default_ebs_vol_sizes,var.ebs_vol_sizes),
    var.tag_disk_location[var.extra_ebs_volumes[count.index % length(var.extra_ebs_volumes)]])}"

现在我需要重复使用相同的大小来计算同一资源中的成本标签以及相应的ec2资源(在同一模块中)。如何在不复制粘贴整个公式的情况下执行此操作?

PS:我在多种场景中遇到过这个用例,所以上面只是我需要重用插值结果的一个用例。在这种情况下,使用相应的数据源获取插值结果是一种方法,但寻找更直接的解决方案。

1 个答案:

答案 0 :(得分:1)

现在可以使用从terraform 0.10.3开始提供的局部变量。

https://www.terraform.io/docs/configuration/locals.html

  

本地值为表达式指定一个名称,然后可以使用该名称   在模块中多次。