Terraform无法识别AWS中的现有子网

时间:2019-12-11 08:38:22

标签: terraform terraform-provider-aws

我正在尝试使用具有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过去创建。那么为什么说它不存在呢?

2 个答案:

答案 0 :(得分:0)

与子网最初是否由Terraform创建无关。 数据源正在尝试在当前状态文件中查找子网。您的plan命令返回错误,因为子网不在您的状态文件中。

尝试导入子网,然后重新运行计划。

$ terraform import aws_subnet.public_subnet subnet-02xxxxxxxxxx7

答案 1 :(得分:0)

建议的调试:

创建2个新的Terraform文件:

第一个文件,创建一个简单的子网(或先创建VPC,再创建子网)

第二个文件,尝试像您发布的那样检索子网ID。

这里的想法是不改变其他任何东西,也就是说,相同的地区,相同的信誉,相同的一切。

可能的输出:

1)您无法获取子网ID-那么您应该查看terraform版本,提供程序版本之类的东西

2)您将获得子网ID,这意味着您的信誉,地区,名称的复制和粘贴中的某些内容,基本上是人为错误导致了这种封锁,因此您应该重新检查自己在错别字和权限方面的表现。 / p>