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

部署在VPC内的Lambda无法启动ECS Fargate任务且超时如何解决?

故障根因

Lambda部署到VPC后默认没有公网访问能力,你代码中调用的client.run_task()属于ECS服务的公网API端点,请求无法从VPC内发出直接导致超时。EC2上运行正常是因为该EC2已配置公网出口(公网IP或NAT网关路由)。

解决方案

方案1:为Lambda所在子网配置公网出口

  • 将Lambda部署到VPC的私有子网,在该私有子网的路由表中添加指向NAT网关的默认路由
  • NAT网关需部署在VPC的公有子网,且绑定弹性公网IP(EIP),实现VPC内资源的公网出网能力
  • 注意:Lambda部署在VPC中时不会被分配公网IP,即使绑定了互联网网关的公有子网也无法直接让Lambda访问公网,必须通过NAT网关中转

方案2:配置ECS服务的VPC端点(PrivateLink)

  • 在Lambda所在的VPC内创建ECS服务的Interface类型VPC端点,所有ECS API调用请求会直接通过AWS内网链路传输,无需走公网
  • 开启VPC端点的私有DNS解析功能,确保boto3 SDK会自动将ECS API域名解析到内网端点地址,无需修改现有代码
  • 配置VPC端点的安全组入站规则,允许Lambda的安全组访问端点的443端口

排查补充项

  • 确认Lambda执行角色已包含ecs:RunTask、iam:PassRole(如果任务定义指定了执行角色/任务角色)的相关权限,权限不足也可能导致调用失败
  • 你代码中Fargate任务配置的assignPublicIp: ENABLED仅在任务部署到公有子网时生效,如果任务子网为私有子网需改为DISABLED,否则会导致Fargate任务启动失败(该问题不会导致Lambda调用超时,属于后续任务启动的排查项)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:36:04