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

如何在CDK(Python)中通过L1构造为Launch Template指定私有子网?

如何在CDK(Python)中为Launch Template指定子网

控制台里可以直接给Launch Template指定子网,但CDK的L2构造LaunchTemplate确实不支持这个配置,得用L1的CfnLaunchTemplate来实现,核心是通过launch_template_data中的network_interfaces属性绑定子网ID。

具体代码示例如下:

from aws_cdk import aws_ec2 as ec2
from aws_cdk import Stack
from constructs import Construct

class MyStack(Stack):
    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        # 假设已存在VPC和子网,这里直接引用示例子网
        vpc = ec2.Vpc.from_lookup(self, "ExistingVpc", vpc_id="vpc-xxxxxx")
        target_subnet = vpc.private_subnets[0]

        # 创建L1的Launch Template并指定子网
        ec2.CfnLaunchTemplate(self, "MyLaunchTemplate",
            launch_template_name="MyLT",
            launch_template_data={
                "imageId": "ami-xxxxxx", # 替换为实际的AMI ID
                "instanceType": "t2.micro",
                "networkInterfaces": [
                    {
                        "subnetId": target_subnet.subnet_id,
                        "deviceIndex": 0,
                        "associatePublicIpAddress": False # 根据需求设置是否分配公网IP
                    }
                ]
            }
        )

关键说明:

  • network_interfaces是数组类型,每个元素对应一块网卡配置,deviceIndex设为0对应实例主网卡
  • 通过subnetId传入目标子网的ID即可完成子网绑定
  • 可根据业务需求添加其他网卡配置项,比如安全组ID、私有IP地址等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:01:20