我在一个单独的帐户中有一个现有的 VPC,并且正在为新帐户中的更多 vpc 创建独立的 terraform。我希望在每个帐户中对等特定的 vpc,但发现很难以编程方式从目标 vpc 获取 vpc_id。由于这些 vpc 是短暂的,因此 vpd_id 会发生变化,因此我想对此进行编码,而不是登录帐户从控制台获取 vpc_id。
我尝试了多种不同的数据源并结合资源“aws_vpc_peering_connection”和资源“aws_vpc_peering_connection_accepter”,但到目前为止都失败了。
任何帮助,将不胜感激。
答案1
如果你要跨账户进行 VPC 对等连接,则需要实例化多个 AWS 提供商在 Terraform 中,每个帐户一个。然后,您应该能够使用aws_vpc
具有对等帐户的特定提供程序实例的数据源来检索 VPC ID。
这文档显示aws_vpc_peering_connection_accepter
了如何使用多个提供程序实例。如果对等 VPC 已经存在,那么您应该能够执行以下操作,而不是使用 Terraform 创建它:
data "aws_vpc" "peer" {
provider = "peer"
# Whatever combination of filters are necessary to locate the VPC, cidr_block, etc.
}
${data.aws_vpc.peer.id}
然后您可以在您的资源中参考aws_vpc_peering_connection
。