使用terraform中其他tf文件的输出



是否有一种方法可以使用位于另一个文件夹中的模块的输出值?想象一下以下环境:

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
}

最新更新