首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用模块在Terraform中将弹性公网in关联到我的NAT网关时出错

使用模块在Terraform中将弹性公网in关联到我的NAT网关时出错
EN

Stack Overflow用户
提问于 2021-01-14 00:25:19
回答 1查看 447关注 0票数 0

我正在尝试使用带有模块的Terraform在AWS中创建一个基础架构。因此我得到了两个模块,一个用于我的Nat网关,另一个用于EIP创建和关联。在我的主文件中,为了将EIP关联到NAT网关,我使用了NAT GW和EIP的两个输出属性,分别是NAT的ID和EIP ID,如下所示:

代码语言:javascript
复制
module "eip_assoc" {
  source = "../Modules/eip_assoc"
  nat_gw_qa = module.NAT_GW.aws_nat_gateway_id_output
  nat_gw_association = module.EIP.eip_one_id_output
}

其余的基础架构都没问题,当我应用主文件时,它会在AWS中创建资源,并将EIP关联到NAT GW,但在控制台的末尾,它会显示如下错误:

“错误:关联弹性公网id时出错: InvalidNetworkInterfaceId.Malformed:无效id:”nat-0c15axxxxxxxxxxxx“(应为”eni-...“)

所以好吧,上面说我需要埃尼...NAT GW的输出而不是Allocation_id,我将输出改为返回NAT GW的网卡ID的network_interface_id,但之后我得到了另一个不同的错误:

错误:关联弹性公网EIP出错: AuthFailure:您没有访问指定资源的权限。

在这种情况下,和以前一样,它在亚马逊网络服务中创建基础架构,并将弹性公网EIP与NAT GW进行关联,完全没有问题,但在Terraform文档中查找该错误消息后,它说“不要使用network_interface将企业EIP与aws_lb或aws_nat_gateway资源关联。相反,使用这些资源中可用的allocation_id来允许亚马逊网络服务管理关联,否则您将看到AuthFailure错误。”

因此,如果我使用分配ID,它会显示预期弹性网卡ID的错误,如果使用弹性网卡ID,它会显示AuthFailure错误,在这两个场景中,都部署了整个资源,但得到了这些错误消息。

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 00:53:08

我从这段代码中看到了什么

代码语言:javascript
复制
    module "eip_assoc" {
    source = "../Modules/eip_assoc"
    nat_gw_qa = module.NAT_GW.aws_nat_gateway_id_output
    nat_gw_association = module.EIP.eip_one_id_output
    }

在我的主文件中,为了将弹性公网ID关联到NAT网关,我使用了NAT网关和弹性公网ID的两个输出属性,分别是NAT ID和弹性公网ID

问题出在顺序上,您必须已有弹性公网EIP或通过创建NAT网关创建新的弹性公网EIP,或者换句话说,您不能先创建弹性公网EIP并创建NAT网关,然后再将弹性公网EIP与NAT网关关联。

这就是NAT网关创建后不能更换弹性公网EIP的原因。

引用documentation

创建NAT网关后,弹性IP地址将无法与NAT网关解除关联。要对您的NAT网关使用不同的弹性IP地址,您必须使用所需的地址创建一个新的NAT网关,更新您的路由表,然后删除不再需要的现有NAT网关。

引用自documentation

要对NAT网关使用与您当前用于NAT实例相同的弹性IP地址,还必须先取消弹性IP地址与NAT实例的关联,然后在创建网关时将其与您的NAT网关关联。指定要在其中创建NAT网关的子网,并选择要与NAT网关关联的弹性IP地址的分配ID。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65705922

复制
相关文章

相似问题

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