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

如何使用AWS CDK为Lambda添加已通过控制台创建的VPC?

在AWS CDK中为Lambda关联已存在的VPC(TypeScript)

要给Lambda关联控制台已创建好的VPC,你可以通过AWS CDK的Vpc.fromLookup方法引用现有VPC,无需重新创建。具体实现步骤如下:

1. 导入EC2模块

确保代码中导入AWS EC2相关模块:

import { Vpc, SubnetType } from 'aws-cdk-lib/aws-ec2';

2. 查找已存在的VPC

使用Vpc.fromLookup方法,通过VPC ID、标签等属性定位目标VPC。最直接的方式是通过VPC ID匹配:

const existingVpc = Vpc.fromLookup(this, 'ExistingVpc', {
  vpcId: 'vpc-xxxxxxxxx', // 替换为你控制台创建的VPC实际ID
});

如果不想硬编码ID,也可以通过VPC的标签匹配(比如你给VPC设置了Name: MyProductionVpc标签):

const existingVpc = Vpc.fromLookup(this, 'ExistingVpc', {
  tags: {
    Name: 'MyProductionVpc',
  },
});

3. 为Lambda配置VPC关联

修改你的Lambda函数定义,添加vpc参数,同时指定子网类型和安全组(安全组可选,若不指定CDK会自动创建默认安全组):

const hello = new Function(this, "HelloHandler", {
  role: lambdaRole,
  runtime: Runtime.NODEJS_16_X,
  code: Code.fromAsset("dist"),
  handler: "index.handler",
  vpc: existingVpc,
  // 指定子网类型,根据业务需求选择
  vpcSubnets: {
    subnetType: SubnetType.PRIVATE_WITH_EGRESS, // 适合需要访问公网的场景,或选PRIVATE_ISOLATED仅访问VPC内资源
  },
  // 可选:关联现有安全组,若省略则CDK自动创建
  // securityGroups: [yourExistingSecurityGroup],
});

注意事项

  • 使用Vpc.fromLookup时,CDK会在部署阶段查询你的AWS账户获取VPC信息,需确保CDK环境已完成cdk bootstrap,且部署用户拥有EC2资源的查询权限。
  • 若Lambda需要访问公网,建议选择PRIVATE_WITH_EGRESS子网并确保VPC配置了NAT网关;仅访问VPC内资源时,可使用PRIVATE_ISOLATED子网。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:20:26