是否有一种方法可以使用位于另一个文件夹中的模块的输出值?想象一下以下环境:
tm-project/
├── lambda
│ └── vpctm-manager.js
├── networking
│ ├── init.tf
│ ├── terraform.tfvars
│ ├── variables.tf
│ └── vpc-tst.tf
├── prd
│ ├── init.tf
│ ├── instances.tf
│ ├── terraform.tfvars
│ └── variables.tf
└── security
└── init.tf
我想创建EC2实例,并将它们放在网络文件夹中声明的子网中。因此,我想知道是否有机会访问我在网络/vpc tst.tf中使用的模块的输出,作为我的prd/instance.tf的输入。
提前感谢。
您可以使用outputs.tf文件来定义地形模块的输出。您的输出将具有变量名称,例如下面的内容。
output "vpc_id" {
value = "${aws_vpc.default.id}"
}
然后,可以通过引用资源名称和您在文件中定义的输出名称,在prd/instances.tf
中引用这些名称。
例如,如果您有一个名为vpc
的模块使用该模块,那么您可以使用类似于下面的输出。
module "vpc" {
......
}
resource "aws_security_group" "my_sg" {
vpc_id = module.vpc.vpc_id
}