Skip to content

TransitGatewayVpcAttachment ​

The TransitGatewayVpcAttachment resource allows you to manage VPC attachments to an AWS Transit Gateway. This resource facilitates the connection of multiple VPCs to a single transit gateway, enabling easier network management and routing. For more details, refer to the AWS EC2 TransitGatewayVpcAttachments documentation.

Minimal Example ​

Create a basic Transit Gateway VPC attachment with required properties and a common optional tag.

ts
import AWS from "alchemy/aws/control";

const transitGatewayVpcAttachment = await AWS.EC2.TransitGatewayVpcAttachment("myVpcAttachment", {
  TransitGatewayId: "tgw-0abcd1234efgh5678",
  VpcId: "vpc-12345678",
  SubnetIds: [
    "subnet-12345678",
    "subnet-87654321"
  ],
  Tags: [
    {
      Key: "Name",
      Value: "My VPC Attachment"
    }
  ]
});

Advanced Configuration ​

Configure a Transit Gateway VPC attachment with additional subnets and specific options.

ts
const advancedTransitGatewayVpcAttachment = await AWS.EC2.TransitGatewayVpcAttachment("advancedVpcAttachment", {
  TransitGatewayId: "tgw-0abcd1234efgh5678",
  VpcId: "vpc-12345678",
  SubnetIds: [
    "subnet-12345678",
    "subnet-87654321"
  ],
  AddSubnetIds: [
    "subnet-13572468"
  ],
  RemoveSubnetIds: [
    "subnet-87654321"
  ],
  Options: {
    ApplianceMode: "enable"
  }
});

Example with Adoption ​

If a Transit Gateway VPC attachment already exists, you can adopt it instead of failing.

ts
const adoptedTransitGatewayVpcAttachment = await AWS.EC2.TransitGatewayVpcAttachment("adoptedVpcAttachment", {
  TransitGatewayId: "tgw-0abcd1234efgh5678",
  VpcId: "vpc-12345678",
  SubnetIds: [
    "subnet-12345678",
    "subnet-87654321"
  ],
  adopt: true
});

Example with Multiple Tags ​

Create a Transit Gateway VPC attachment with multiple tags for better organization and management.

ts
const taggedTransitGatewayVpcAttachment = await AWS.EC2.TransitGatewayVpcAttachment("taggedVpcAttachment", {
  TransitGatewayId: "tgw-0abcd1234efgh5678",
  VpcId: "vpc-12345678",
  SubnetIds: [
    "subnet-12345678",
    "subnet-87654321"
  ],
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    },
    {
      Key: "Project",
      Value: "Project X"
    }
  ]
});