今天,我有一个新的AWS Lambda问题,在Google中找不到任何地方。

我新增了Lambda函数,这是毫无疑问的。
但是当我在此函数中输入任何代码时[例如console.log();],然后单击“保存”,发生错误:
“提供的执行角色无权在EC2上调用DescribeNetworkInterfaces”

exports.handler = (event, context, callback) => {
    callback(null, 'Hello from Lambda');
    console.log();  // here is my code
};

我用角色绑定(bind)了该函数:lambda_excute_execution(Policy:AmazonElasticTranscoderFullAccess)
并且此函数现在不与任何触发器绑定(bind)。

然后,赋予角色“AdministratorAccess”策略,可以正确保存源代码。

该角色可以在今天之前成功运行功能。

有人知道这个错误吗?

非常感谢!

最佳答案

如果您尝试在VPC中部署Lambda而不赋予其所需的网络接口(interface)相关权限ec2:DescribeNetworkInterfacesec2:CreateNetworkInterfaceec2:DeleteNetworkInterface(请参阅AWS Forum),则此错误很常见。
例如,此策略允许将Lambda部署到VPC中:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeNetworkInterfaces",
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface",
        "ec2:DescribeInstances",
        "ec2:AttachNetworkInterface"
      ],
      "Resource": "*"
    }
  ]
}

07-24 09:39
查看更多