Terraform - 创建 NAT 网关时出错:InvalidElasticIpID.Malformed
Posted
技术标签:
【中文标题】Terraform - 创建 NAT 网关时出错:InvalidElasticIpID.Malformed【英文标题】:Terraform - Error creating NAT Gateway: InvalidElasticIpID.Malformed 【发布时间】:2022-01-18 10:29:19 【问题描述】:我想使用 Terraform 创建一个具有固定公共 IP 地址的 ***,我可以将其分配给我们的 Lambda 函数。
我找到了这篇博文和执行此操作的代码:
博文:https://jaffarshaik.medium.com/implementing-vpc-architecture-using-terraform-3de6c42d7646 Github:https://github.com/Jaffarterraform786/vpc但是,当我运行脚本时,我得到了这个错误:
│ Error: Error creating NAT Gateway: InvalidElasticIpID.Malformed: The elastic-ip ID 'aws_eip.ip.id' is malformed
│ status code: 400, request id: 96b26796-931d-4470-85b5-5c46c39889a9
│
│ with aws_nat_gateway.natgateway,
│ on natgateway.tf line 1, in resource "aws_nat_gateway" "natgateway":
│ 1: resource "aws_nat_gateway" "natgateway"
这是natgateway.tf文件的内容:
resource "aws_nat_gateway" "natgateway"
allocation_id = "aws_eip.ip.id"
subnet_id = "aws_subnet.publicsubnet.id"
tags =
name = "prod nategatway"
depends_on = [aws_eip.eip]
我尝试过的事情:
在没有创建其他 VPC 的干净区域上运行脚本 - 仍然无法正常工作 在 Github 上提出了一个问题:https://github.com/Jaffarterraform786/vpc/issues/2 运行 Terraform 检查器以查看是否有任何错误,但未发现任何错误。我需要更改脚本中的任何线索或内容?
【问题讨论】:
你实际运行的 TF 代码是什么? @Marcin 我在github.com/Jaffarterraform786/vpc运行代码 【参考方案1】:natgateway.tf
中有错误的字符串。更正的版本是:
resource "aws_nat_gateway" "natgateway"
allocation_id = aws_eip.eip.id
subnet_id = aws_subnet.publicsubnet.id
tags =
name = "prod nategatway"
depends_on = [aws_eip.eip]
请注意,我不检查 VPC 或其其他资源的有效性。我只是解决您报告的错误。
【讨论】:
嗨@Marcin,如果可以的话,我想补充一点。我查看了 repo,使用depends_on
上的Internet Gateway
资源比使用EIP
更好。 Internet Gateway
可能由于多种原因而失败,但 EIP 很容易创建,并且可以为 Nat Gateway
terraform 资源提供“误报”。以上是关于Terraform - 创建 NAT 网关时出错:InvalidElasticIpID.Malformed的主要内容,如果未能解决你的问题,请参考以下文章
使用 Terraform 创建 AWS-OPSWORK-STACK 时出错
使用 terraform 创建 lambda 函数时出错获取验证错误
使用 Terraform 创建 AWS MySQL RDS 实例时出错
在 azure 中使用 terraform 为应用服务创建自动缩放规则时出错