如何在中转网关模块 Terraform 中创建附件

How to create attachments in transit gateway module terraform

我使用 terraform tgw 模块创建了一个中转网关,如下所示。

module "transit-gateway" {
  source          = "terraform-aws-modules/transit-gateway/aws"
  version         = "1.4.0"
  name            = "tgw-nprod"
  description     = "My TGW shared with several other AWS accounts"
  amazon_side_asn = 64532

  enable_auto_accept_shared_attachments = true
  vpc_attachments = {
    vpc1 = {
      vpc_id                                          = module.vpc.vpc_id
      subnet_ids                                      = module.vpc.private_subnets
      dns_support                                     = true
      ipv6_support                                    = false
      transit_gateway_default_route_table_association = false
      transit_gateway_default_route_table_propagation = false
    }
  }

  ram_allow_external_principals = true
  ram_principals                = [1234567890, 0987654321]

  tags = {
    Purpose = "tgw-testing"
  }
}

我已经使用 terraform vpc 模块创建了 vpc。

当我 运行 上面的 terraform Iam 收到错误“错误:创建 EC2 Transit Gateway VPC 附件时出错:DuplicateSubnetsInSameZone:相同 AZ 的重复子网

我在 ap-south-1 中有 2 个私有子网,在 ap-south-1 中有 1 个 public。

AWS docs 写道您的网关只能在每个 AZ 的一个子网中:

You must select at least one subnet. You can select only one subnet per Availability Zone.

您的错误信息表明您的 module.vpc.private_subnets 在同一个 AZ 中。您必须 重新定义 您的 VPC 以便 module.vpc.private_subnets 在两个不同的 AZ 中,或者只使用 一个子网 在您的 subnet_ids.

要使用一个子网:

subnet_ids                                      = [module.vpc.private_subnets[0]]