如何使用 CDK 获取现有 Transit Gateway 的属性?

How do I obtain the properties of an existing Transit Gateway with the CDK?

我正在将我的应用程序部署到一个账户中,该账户具有通过 Resource Access Manager 从另一个 AWS 账户共享的 Transit Gateway。

Transit Gateway 不是由 CDK 创建的。它不存在于不同的堆栈或应用程序中。

我想为该 Transit Gateway 创建一个 Transit Gateway VPC 附件。

要创建 Transit Gateway VPC 附件对象,我需要提供一个 Transit Gateway ID。 https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.CfnTransitGatewayVpcAttachment.html#class-cfntransitgatewayvpcattachment-construct

我找不到使用 CDK 从现有 Transit Gateway 获取 Transit Gateway ID 的方法。我应该使用什么方法来获取 Transit Gateway ID?

我没有在 https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.CfnTransitGateway.html

中看到“查找”现有 Transit Gateway 的方法

我想你可以

  • 将 Transit Gateway ID 导出为创建它的堆栈中的 CloudFormation 输出?
  • 自己查找 Transit Gateway ID 并将其注入 CDK 源代码?

我在其中一个项目中选择了第二个选项,后来没有遇到任何问题。

使用您的 SDK 进行查找。

在部署堆栈期间,使用您的语言 SDK(例如 python 的 boto3)访问 AWS API 命令以查找信息并检索它。我经常使用跨多个堆栈相同的图层执行此操作,但是您需要版本号才能导入图层(我不想创建同一图层的多个版本)-我使用 boto3 获取最新版本的图层和 from_attributes 命令将其导入堆栈。

您可以对所选语言的任何 SDK 实现执行类似的操作,复制此 CLI 命令:https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-transit-gateways.html