今天,我有一个新的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:DescribeNetworkInterfaces
,ec2:CreateNetworkInterface
和ec2:DeleteNetworkInterface
(请参阅AWS Forum),则此错误很常见。
例如,此策略允许将Lambda部署到VPC中:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeNetworkInterfaces",
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:DescribeInstances",
"ec2:AttachNetworkInterface"
],
"Resource": "*"
}
]
}