terraform - 基于另一个变量的引用变量
问题描述
在file1.tf
(由kops生成)我有这样的资源:
resource "aws_vpc" "my-vpc-tf-id" {
...
}
资源 ID 由 kops 动态生成并添加到terraform.tfvars
(因此可以在.tf
文件中的其他位置使用):
my_var = "my-vpc-tf-id"
现在我想在file2.tf
不对其名称进行硬编码的情况下引用 VPC 资源:
resource "aws_security_group" "db" {
...
vpc_id = "${aws_vpc.${var.my_var}.id}"
...
}
但 Terraform 抱怨这${var.my_var}
是不允许的。因此,我将其定义为file2.tf
:
resource "aws_security_group" "db" {
...
vpc_id = "${aws_vpc.{{MY_VAR_VAL}}.id}"
...
}
我用sed
值替换占位符。这很好用,但会使某些其他任务复杂化,所以我想知道是否有其他方法可以在不使用sed
或硬编码my_var
值的情况下实现这一点(只是 Terraform 的 HCL)。
解决方案
推荐阅读
- php - 为什么我的 php pdo 语句在数据库中插入两次
- jquery - 如何通过单击使用 jquery 的复选框从包含具有特定文本的 div 的列表中过滤元素?
- mysql - 有没有更好的方法来编写我写的查询
- c - 如果用户给出“y”作为输入,C 程序需要继续循环
- arrays - 如何通过其他一维数组访问一维数组的元素?
- angular - mat-side-nav 栏不会延伸到窗口的整个宽度
- typescript - 在 VS 代码中重新索引打字稿文件不会自动运行
- javascript - jQuery - 将函数挂钩到 html 属性
- javascript - 提交 html 表单并通过电子邮件发送(PHP、AJAX、HTML)
- angular - ng serve --open 错误您可能需要适当的加载程序来处理此文件类型