2016-03-14 11 views
8

私のLambdaは、ラムダにネットワークインターフェースを作成する役割を与えたドキュメントの指示に従って、私のVPC上のリソースにアクセスします。私は、ENIが再利用されるという仮定の下だったが、すべての呼び出しはエラーENIが呼び出されるたびにLambdaが作成されます。打撃限界

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を作成しているように見える私はグーグルの検索が、この問題を解決するための最良の方法を見つけることができませんでした。定期的にこれらのENIを手動で削除する以外にも、より良い方法がありますか?

+4

ラムダロールにはENIを削除する権限または作成する権限しかありませんか? –

+0

@ MarkB:興味深い、それについて考えなかった。削除権限はありません。その許可を与えて何が起こるかを見てみましょう。 – blueskin

+0

@blueskin私は同様の問題を調査しています。あなたがあなたの質問に言及したエラーをどこで手に入れましたか? – Nic

答えて

11

マークが示唆したように、AWS Lambdaにはラムダが設定されたロール(ポリシー)に指定されたアクションDeleteNetworkInterfaceがありませんでした。適切なポリシーを与えることで、LambdaはENIの終了と削除を完了します。

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

AWS(their docsとサポートチケットを経由して)から公式のラインは、AWS管理のポリシーAWSLambdaVPCAccessExecutionRoleを使用することです。民間のサポートチケットから

抜粋:

あなたはラムダ関数内で使用している役割が付加されたポリシーVPC-有効ラムダ関数のポリシーをAWSが管理されている「AWSLambdaVPCAccessExecutionRole」を、持っています。このポリシーには、必要なすべてのアクセス許可が含まれており、将来、サービスの更新により新しいアクセス許可が必要になった場合に更新される可能性があります。

離散化されたENIが収穫されるまでには数時間かかることもあります。

関連する問題