首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用Terraform AWS VPC模块导出VPC ID

无法用Terraform AWS VPC模块导出VPC ID
EN

Stack Overflow用户
提问于 2021-08-01 03:22:27
回答 1查看 682关注 0票数 1

我试图在同一个模块中构建一个aws vpc和安全组。我的项目中有这样的结构:

代码语言:javascript
复制
.
├── README.md
├── commit.sh
├── main.tf
├── modules
│   └── networking
│       ├── README.md
│       ├── main.tf
│       ├── outputs.tf
│       └── variables.tf
├── plans
├── terraform.sh
├── variables.tf
├── vars
└── versions.tf

在我的项目根目录中,我用一个非常简单的main.tf调用模块:

代码语言:javascript
复制
## Networking
module "networking" {
  source = "./modules/networking/"
}

我需要用于安全组的VPC ID,SGs与VPC模块在同一个文件中定义为不同的模块:

代码语言:javascript
复制
module "web_ingress_sg" {
  source = "terraform-aws-modules/security-group/aws//modules/http-80"

  name        = "wordpress-ingress"
  description = "Security group for web-server with HTTP ports open within VPC"
  vpc_id      = module.vpc.vpc_id

  ingress_cidr_blocks = ["50.82.222.12/32"]
  computed_egress_with_source_security_group_id = [
    {
      rule                     = "http-80-tcpp"
      source_security_group_id = module.wordpress_instance_sg.security_group_id
    },
  ]
}

vpc_id是在模块中的outputs.tf文件中定义的,但是我一直得到错误消息“参数”"vpc_id“是必需的,但没有找到定义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-01 03:52:03

模块不能引用自己的输出。你必须直接得到vpc id。假设您在此网络模块中定义了vpc,那么以下内容就足够了:

代码语言:javascript
复制
vpc_id      = aws_vpc.vpc.vpc_id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68607294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档