当你在AWS Lambda中遇到“AWS Lambda没有被授权执行权限中列出的操作”错误时,表示Lambda函数缺少执行所需的权限。
解决此问题的步骤如下:
打开AWS管理控制台,导航到Lambda函数。
选择Lambda函数,并转到“权限”选项卡。
在“执行角色”字段中,查看正在使用的IAM角色。
打开IAM管理控制台,导航到IAM角色。
找到正在使用的IAM角色,然后转到“权限”选项卡。
确保IAM角色具有执行所需的权限。如果权限不足,可以添加适当的策略。
以下是一个示例代码,展示如何使用AWS CLI为Lambda函数添加S3读取权限:
$ aws lambda add-permission --function-name MyLambdaFunction \
--statement-id S3Access \
--action "lambda:InvokeFunction" \
--principal s3.amazonaws.com \
--source-arn arn:aws:s3:::my-bucket \
--source-account 123456789012 \
--region us-west-2
在这个示例中,我们使用aws lambda add-permission
命令为Lambda函数添加一个权限声明。这个声明允许S3服务通过lambda:InvokeFunction
操作调用Lambda函数。--principal
参数指定了S3服务的Amazon资源名称(ARN),--source-arn
参数指定了S3存储桶的ARN,--source-account
参数指定了你的AWS账号ID。
请根据你的具体需求,修改示例代码以添加适当的权限声明。