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

blu*_*kin 11 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之外还有更好的方法吗?

blu*_*kin 14

正如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"
            ]
        }
Run Code Online (Sandbox Code Playgroud)


Dav*_* S. 6

AWS的官方专线(通过他们的文档和支持服务单)是使用AWS管理的策略AWSLambdaVPCAccessExecutionRole.

摘自私人支持票:

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

值得注意的是,有时需要花费几个小时才能获得独立的ENI.