terraform - Terraform - 未在根模块中声明托管资源
问题描述
我正在尝试使用 terraform 创建 ec2 实例并设置负载均衡器,但我面临以下错误。如何在单个 main.tf 文件中创建实例并配置负载均衡器?
错误:引用未声明的资源
"aws_lb_target_group" "front-end":27: vpc_id = "${aws_vpc.terrafom-elb.id}" 未在根模块中声明托管资源 "aws_vpc" "terrafom-elb".source`
代码:
region = "us-east-1"
access_key = "*********************"
secret_key = "**********************"
}
resource "aws_instance" "terraform" {
ami = "ami-07ebfd5b3428b6f4d"
instance_type = "t2.micro"
security_groups = ["nodejs","default"]
tags = {
Name = "terrafom-elb"
}
}
resource "aws_lb" "front-end"{
name = "front-end-lb"
internal = false
security_groups = ["nodejs"]
}
resource "aws_lb_target_group" "front-end" {
name = "front-end"
port = 8989
protocol = "HTTP"
vpc_id = "${aws_vpc.terrafom-elb.id}"
depends_on = [aws_instance.terraform]
}
解决方案
您可以将data
结构添加到顶部并将 VPC ID 作为变量传递:
data "aws_vpc" "selected" {
id = var.vpc_id
}
并将其引用为vpc_id = data.aws_vpc.selected.id
推荐阅读
- c# - 读取和写入文本文件
- git - git更改父分支
- soap - 使用 Spring-WS 路由 WS-Addressing 响应
- excel - 我如何在 VBA 宏中告诉 MS Word,如果它找到“文本”,它应该在“文本 2”下面写我
- javascript - React - 单击按钮时禁用行
- django - 使用自定义数据类型归档的 Django Rest Framework Seralize 持续时间
- oracle - 合计一个组内的金额并且不包括重复值
- python - 如何使用@符号来装饰python中的函数
- c# - 搜索控件。C#、WinForms、用户控件
- python - 此平台不支持 XX-cp36-cp36m-linux_x86_64.whl