模块内部未识别 Terraform 子网详细信息
Terraform Subnet details not identified inside module
我有 Terraform 脚本,它将创建 VPC、负载均衡器和 ECS。
使用模块(主应用程序文件夹内的文件夹)创建任务定义,但它不允许访问在该模块之外创建的资源,例如子网、安全组。
我想知道如何从此模块文件夹 tf
访问这些资源
例如,如果您想访问从名为 create_vpc
的模块创建的 VPC 的 ID,您需要将其导出并在模块代码中添加类似这样的内容。
create_vpc/output.tf:
output "vpc_id" {
value="${aws_vpc.my_vpc.id}"
}
注意:显然您需要在模块内创建一个名为 my_vpc
的 VPC,通常在一个名为 create_vpc/main.tf
的文件中,但我认为您已经控制了它。
然后,您只需调用该模块的 vpc_id
输出,例如:
site/main.tf:
module "create_vpc" {
source = "../create_vpc"
}
resource "aws_internet_gateway" "vpc_internet_gateway" {
vpc_id = "${module.create_vpc.vpc_id}"
}
注意:这里创建的VPC Internet Gateway只是一个使用VPC ID的示例
以类似的方式,您可以将子网、安全组名称和 ID 等从一个模块导出到另一个模块。
我有 Terraform 脚本,它将创建 VPC、负载均衡器和 ECS。 使用模块(主应用程序文件夹内的文件夹)创建任务定义,但它不允许访问在该模块之外创建的资源,例如子网、安全组。 我想知道如何从此模块文件夹 tf
访问这些资源例如,如果您想访问从名为 create_vpc
的模块创建的 VPC 的 ID,您需要将其导出并在模块代码中添加类似这样的内容。
create_vpc/output.tf:
output "vpc_id" {
value="${aws_vpc.my_vpc.id}"
}
注意:显然您需要在模块内创建一个名为 my_vpc
的 VPC,通常在一个名为 create_vpc/main.tf
的文件中,但我认为您已经控制了它。
然后,您只需调用该模块的 vpc_id
输出,例如:
site/main.tf:
module "create_vpc" {
source = "../create_vpc"
}
resource "aws_internet_gateway" "vpc_internet_gateway" {
vpc_id = "${module.create_vpc.vpc_id}"
}
注意:这里创建的VPC Internet Gateway只是一个使用VPC ID的示例
以类似的方式,您可以将子网、安全组名称和 ID 等从一个模块导出到另一个模块。