使用 AWS Lambda 调整图像大小 - 问题

使用 AWS Lambda 调整图像大小 - 问题

我正在尝试使用 Amazon S3/Lambda 自动调整图像大小。问题是我在创建 Lambda 函数时无法连接到 Amazon S3 存储桶。

  1. 在 AWS Lambda 中创建新的空白函数
  2. 使用 Python 3.8
  3. 将权限设置为“使用现有角色”-> S3accessrole

我在 IAM 管理器控制台中检查了 S3 访问角色的策略和权限。我还将 AMAZON S3FULLACCESS 添加到了 S3accessrole。因此,此角色应该有权访问我帐户中的所有 S3 存储桶。

但是在创建函数时,没有与任何 S3 存储桶建立连接。此外,具有相同角色的 Amazon Cloudwatch 日志也不会出现在设计窗格中。例如,观看此 YT 视频:https://youtu.be/EyeduLX17Mc?t=120

在 2 分钟标记处,您可以看到该函数可以访问 CloudWatch Logs 和 Amazon S3。创建函数时会自动显示该信息。尽管此用户为此使用了另一个角色。我的设计页面仅显示橙色函数,并且无权访问 S3。为 S3 添加新触发器时,还会出现一条警告消息,提示未使用其他 S3 存储桶,这可能会导致问题。

所以我的问题是,我遗漏了什么?该函数具有正确的角色,可以访问我帐户中的所有 S3 存储桶。而且我的 S3 存储桶权限没有任何限制。

答案1

  1. 确保你已经lambda.amazonaws.com进入角色信任关系,否则你的 Lambda 无法假设它。
  2. 查看 Lambda 的CloudWatch 日志并查看会出现什么错误。
  3. 搜索云Trail查看 lambda 事件并查看它使用的角色,然后您就会获得任何见解。请注意,lambda 调用和日志进入 CloudTrail 之间可能会有长达 10 分钟的延迟。
  4. 如果是VPC-Lambda确保它确实可以到达 S3 端点。如果它仅用于调整 S3 中的图像大小,则可能根本不需要 lambda 中的 VPC 配置。

希望有帮助:)

相关内容