我正在尝试使用具有Terraform的弹性IP设置EC2。我正在尝试将现有的VPC和子网用于新的EC2。 但是Terraform无法识别现有子网。
我正在使用这样的现有子网-
variable "subnet_id" {}
data "aws_subnet" "my-subnet" {
id = "${var.subnet_id}"
}
运行Terraform Plan时出现此错误-
Error: InvalidSubnetID.NotFound: The subnet ID 'subnet-02xxxxxxxxxx7' does not exist
status code: 400, request id: c4b6142b-5dfd-458c-959d-e5440b89c9fd
on ec2.tf line 3, in data "aws_subnet" "my-subnet":
3: data "aws_subnet" "my-subnet" {
此子网由terraform过去创建。那么为什么说它不存在呢?
答案 0 :(得分:0)
与子网最初是否由Terraform创建无关。 数据源正在尝试在当前状态文件中查找子网。您的plan命令返回错误,因为子网不在您的状态文件中。
尝试导入子网,然后重新运行计划。
$ terraform import aws_subnet.public_subnet subnet-02xxxxxxxxxx7
答案 1 :(得分:0)
建议的调试:
创建2个新的Terraform文件:
第一个文件,创建一个简单的子网(或先创建VPC,再创建子网)
第二个文件,尝试像您发布的那样检索子网ID。
这里的想法是不改变其他任何东西,也就是说,相同的地区,相同的信誉,相同的一切。
可能的输出:
1)您无法获取子网ID-那么您应该查看terraform版本,提供程序版本之类的东西
2)您将获得子网ID,这意味着您的信誉,地区,名称的复制和粘贴中的某些内容,基本上是人为错误导致了这种封锁,因此您应该重新检查自己在错别字和权限方面的表现。 / p>