通过控制台测试 AWS Lambda 会产生拒绝访问错误

Testing AWS Lambda via the console produces an Access Denied error

我刚刚通过 Github 工作流运行器通过 Cloudformation 部署了一个堆栈。 Lambda 然后显示在 AWS 控制台中。在其中,我使用“事件 JSON”测试 Lambda。然后我遇到以下错误消息:

START RequestId: 2ce35782-f9d6-4a33-b9b2-cbc27da7a3f34 Version: $LATEST
HTTP Error: 400 Client Error: Bad Request for url: https://api.random.com/v1/logs/segments/20220504/20220504/aggs
Exporting to path "s3://bucket/folder/2022/05/05/myjson.json"
[ERROR] ClientError: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
Traceback (most recent call last):
  File "/var/task/app.py", line 56, in lambda_handler
    upload_s3(bucket, prefix, json_payload)
  File "/var/task/utils.py", line 54, in upload_s3
    Key=key)
  File "/var/task/botocore/client.py", line 415, in _api_call

投诉是关于上传到 s3,但是 AWS 凭证是在 Github 的“秘密”部分设置的。我哪里错了?

Lambda 执行角色似乎没有将对象放入 S3 存储桶的必要权限。

在 AWS 控制台部署的 lambda 函数的配置选项卡下识别 Lambda 执行角色并验证其权限。您可以为角色添加必要的权限并再次测试。