Lambda每次调用时都会创建ENI:达到限制

时间:2016-03-14 14:50:12

标签: amazon-web-services aws-lambda

我的Lambda访问我的VPC上的资源,因此我在文档中指示我已经为Lambda提供了创建网络接口的角色。我假设ENI被重用但看起来每个调用都会创建一个新的ENI导致错误

Lambda was not able to create an ENI in the VPC of the Lambda function because the limit for Network Interfaces has been reached.

我搜索谷歌但找不到解决此问题的最佳方法。除了定期手动删除这些ENI之外还有更好的方法吗?

2 个答案:

答案 0 :(得分:12)

正如Mark所说,问题是我的AWS Lambda没有在lambda设置的角色(Policy)中指定的DeleteNetworkInterface Action。通过给出适当的策略,Lambda现在可以在完成后分离并删除ENI。

        {
            "Effect": "Allow",
            "Resource": "*",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:CreateNetworkInterface",
                "ec2:AttachNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DeleteNetworkInterface",
                "ec2:DetachNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:ResetNetworkInterfaceAttribute",
                "autoscaling:CompleteLifecycleAction"
            ]
        }

答案 1 :(得分:6)

来自AWS的官方热线(通过their docs和支持服务单)将使用AWS管理的政策AWSLambdaVPCAccessExecutionRole

摘自私人支持票:

  

您在Lambda函数中使用的角色具有附加策略“AWSLambdaVPCAccessExecutionRole”,该策略是支持VPC的Lambda函数的AWS托管策略。此策略包含所有必需的权限,如果由于服务更新而需要新权限,将来可能会更新。

值得注意的是,有时需要花费数小时才能收获分离的ENI。