如何使用 Terraform 从另一个帐户获取 vpc id

如何使用 Terraform 从另一个帐户获取 vpc id

我在一个单独的帐户中有一个现有的 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

相关内容