terraform输出eip公共IP地址

terraform输出eip公共IP地址,terraform,Terraform,试图找出如何输出eip公共IP地址而不是eip id。我在VPC模块内的输出文件中有此代码 output "instance_eip_public_ip"{ value = aws_eip.instance_eip.*.public_ip } 但是我使用根模块来调用VPC模块。那么,在应用根模块时,如何获得eip公共ip地址的输出呢 我写了这段代码,但它给了我eip的分配id output "eip_allocation_id"{ val

试图找出如何输出eip公共IP地址而不是eip id。我在VPC模块内的输出文件中有此代码

output "instance_eip_public_ip"{
  value = aws_eip.instance_eip.*.public_ip
}
但是我使用根模块来调用VPC模块。那么,在应用根模块时,如何获得eip公共ip地址的输出呢

我写了这段代码,但它给了我eip的分配id

  output "eip_allocation_id"{
    value = module.vpc.instance_eip.*.id
  }
那么我是否需要将其写成:

output "eip_public_ip"{
  value = module.vpc.instance_eip.public_ip
}

我对如何将输出从一个模块传输到另一个模块感到困惑。

您可以只写module.vpc.instance\u eip\u public\u ip

您可以以下方式调用模块变量。基于我手头的其他模块

在文件“/modules/glue_database/output.tf”中编写代码

调用main.tf中的模块:

module "glue_database" {
   source      = "./modules/glue_database"
   ... module variables you need to pass
}
在main.tf的其他部分中使用变量

module.glue_database.glue_temp_bucket_id

那么module.vpc.instance\u eip.public\u ip如何变成module.vpc.instance\u eip\u public\u ip呢?根据您在模块中对输出的定义。输出“instance_eip_public_ip”{value=aws_eip.instance_eip.*.public_ip}根模块输出中的输出名称必须完全相同吗?输出“instance_eip_public_ip”{value=aws_eip.instance_eip.*.public_ip}
module.glue_database.glue_temp_bucket_id