You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS CDK获取已存在Transit Gateway的属性及ID

跨账号共享Transit Gateway ID的CDK获取方案

你可以根据实际场景选择以下任意一种方式获取ID:

  • 方案1:通过栈参数/上下文变量传入
    将提前获取到的共享Transit Gateway ID作为CDK栈参数或者cdk.json的上下文变量传入,适用于Transit Gateway ID固定不变的场景。
    示例代码(栈参数方式):
const tgwId = new cdk.CfnParameter(this, 'TransitGatewayId', {
  type: 'String',
  description: '跨账号共享的Transit Gateway资源ID'
}).valueAsString;

示例代码(上下文变量方式):

const tgwId = this.node.tryGetContext('transitGatewayId');
  • 方案2:从SSM参数存储读取
    提前在部署账号对应区域的AWS Systems Manager参数存储中存储Transit Gateway ID,CDK部署时直接读取即可,适合多栈共享同一资源ID的场景。
    示例代码:
import * as ssm from 'aws-cdk-lib/aws-ssm';

const tgwId = ssm.StringParameter.valueForStringParameter(
  this,
  '/shared/resources/transit-gateway/id' // 替换为你实际存储的参数路径
);
  • 方案3:动态查询获取
    如果需要CDK部署时自动获取ID,可使用EC2模块的lookup方法通过标签等唯一属性查询Transit Gateway资源。注意你的CDK执行角色需要拥有ec2:DescribeTransitGateways权限,且RAM共享的Transit Gateway已经在当前账号完成接受、处于可用状态。
    示例代码:
import * as ec2 from 'aws-cdk-lib/aws-ec2';

const sharedTgw = ec2.TransitGateway.fromLookup(this, 'SharedTGW', {
  tags: {
    'Name': 'CrossAccount-Shared-TGW' // 替换为你的Transit Gateway实际唯一标签
  }
});
const tgwId = sharedTgw.transitGatewayId;

获取到tgwId后,即可直接传入CfnTransitGatewayVpcAttachment的构造参数中使用。

内容的提问来源于stack exchange,提问作者Mike Marseglia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:30:02