AWS CodePipeline报Lambda HyperPlane ENI超VPC限额如何解决
核心问题解答
关联VPC的Lambda创建的HyperPlane ENI是否需要手动在IaC中配置?
不需要,这类ENI完全是AWS Lambda服务自动创建的托管资源。只要你给Lambda函数配置了VPC访问权限(绑定了业务VPC的私有子网、对应安全组),Lambda就会在你指定的可用区自动创建HyperPlane ENI(HENI),完成Lambda服务托管VPC到你业务VPC的网络转发,你在IaC代码里找不到对应ENI的配置是正常情况。
当前是否存在资源泄漏?
大概率存在,两种场景最容易触发HENI占满配额:
- 负载测试短时间内触发Lambda高并发扩容,Lambda会按并发峰值创建对应数量的HENI做网络支撑,且这类HENI不会在请求结束后立刻删除,AWS会保留数小时用于后续请求复用,短时间流量冲得太高很容易打满单个VPC默认250的软限额
- 频繁删除重建VPC绑定的Lambda、频繁修改Lambda的VPC配置(切换子网、更换安全组)时,旧配置关联的HENI不会被同步回收,会长期残留在VPC的ENI列表里,累计到一定数量就会占满配额
修复方案
紧急恢复(快速恢复CodePipeline运行)
- 清理闲置HENI
进入EC2控制台的网络接口列表,筛选描述包含AWS Lambda VPC Hyperplane、状态为available(未绑定任何运行中资源)的ENI,这类都是可以直接删除的残留资源,批量删除后就能立刻释放配额。
也可以用AWS CLI批量操作,参考命令:# 查询所有可清理的闲置Lambda HENI aws ec2 describe-network-interfaces --filters "Name=description,Values=*Lambda Hyperplane*" "Name=status,Values=available" --query 'NetworkInterfaces[*].NetworkInterfaceId' --output text # 确认资源无关联后批量删除 aws ec2 delete-network-interface --network-interface-id <替换为实际ENI ID> - 临时提升配额
如果清理完闲置资源后配额仍无法满足当前需求,直接在AWS Support中心提交服务配额提升申请,将对应区域对应VPC的Lambda HyperPlane ENIs per VPC配额调整到业务需要的数值即可。这是软限额,一般提交后半小时内就能审批通过,无额外费用。
长期规避方案
- 压测前提前评估配额:绑定VPC的Lambda在每个配置的可用区至少会预留1个HENI,高并发场景下HENI数量会随并发规模线性扩容,压测前提前算好峰值需求,提前提交配额申请,不要等超限阻塞流水线
- 非必要不给Lambda配置VPC绑定:只有需要访问VPC内网资源(比如内网RDS、内网ALB、私有云服务)的Lambda才需要关联VPC,不需要访问内网的Lambda直接用默认公网出口即可,不会创建HENI占用配额
- 配置定期清理规则:可以部署一个定时运行的Lambda脚本,每周自动扫描删除VPC内创建时间超过2小时、状态为available的Lambda类型HENI,避免残留资源堆积
- 减少Lambda VPC配置的无意义变更:频繁更新Lambda时不要随意切换绑定的子网、安全组,降低旧HENI残留的概率
内容的提问来源于stack exchange,提问作者sashoalm
相关产品推荐
相关产品推荐

