我更新了连接到 Amazon Virtual Private Cloud (Amazon VPC) 的 AWS Lambda 函数,但收到了以下错误: “You have exceeded the maximum limit for Hyperplane ENIs for your account”(您已超出 VPC 的 Lambda HyperPlane ENI 的最大限制)。
简短描述
当您配置 Lambda 函数以访问 Amazon VPC 中的资源时,Lambda 会创建 Hyperplane 弹性网络接口。Hyperplane 网络接口将在首次定义唯一子网和安全组组合时创建。
Amazon VPC 网络接口的默认配额限制为 500。当超出网络接口配额时,您将收到超出限制错误。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
确定您的 Amazon VPC 中 Hyperplane 网络接口的使用情况
要查找 Lambda 在您的 Amazon VPC 中使用的 Hyperplane 网络接口的总数,请运行 describe-network-interfaces 命令:
$ aws ec2 describe-network-interfaces --region us-east-1 \
--filters 'Name=vpc-id,Values=VPC' 'Name=status,Values=in-use' \
--query 'NetworkInterfaces[?InterfaceType==`lambda`].NetworkInterfaceId'
**注意:**请将 VPC 替换为您的 Amazon VPC ID,将 region 替换为您的 AWS 区域。
要查找属于 Lambda 函数的网络接口,请在 GitHub 网站上运行 Lambda ENI 查找器脚本。
删除不访问私有资源的 Lambda 函数的 Amazon VPC 配置
最佳做法是为您的 Lambda 函数配置 Amazon VPC 以仅访问私有资源。在您更新函数以删除其 Amazon VPC 配置后,Lambda 会删除连接的 Hyperplane 网络接口。
**注意:**仅当没有其他函数或已发布版本使用该 Hyperplane 网络接口时,Lambda 才会删除该接口。
要识别使用网络接口的函数,请参阅为什么我无法分离或删除 Lambda 创建的弹性网络接口?
删除活动 Lambda 函数的未使用版本并重用 Hyplane 网络接口
如果配置了 Amazon VPC 的 Lambda 函数有多个已发布版本,则最佳做法是删除未使用的版本。删除未使用的 Lambda 函数版本有助于释放未使用的 Hyperplane 网络接口。
如果 Lambda 函数连续数周处于空闲状态,则 Lambda 会回收未使用的 Hyperplane 网络接口并将函数状态设置为空闲。Lambda 不会删除 Lambda 函数正在使用的 Hyperplane 网络接口。
Lambda 会将 Hyperplane 网络接口重用于您账户中使用相同子网和安全组组合的其他 Amazon VPC 已激活函数。您可以配置相同的安全组子网配对,以跨函数重用这些网络接口。
有关详细信息,请参阅了解 Hyperplane 弹性网络接口 (ENI)。
**注意:**最佳做法是共享网络接口,以尽可能减少所需的接口数量。
在服务配额控制面板中提交配额增加案例
如果您确定您的用例需要更高的 Hyperplane 网络接口服务配额,请申请增加服务配额。有关详细信息,请参阅申请增加配额。
相关信息
如何请求提高我的 Lambda 函数的并发限制?