【问题标题】:How I can get list of objects from S3 bucket via aws lambda?如何通过 aws lambda 从 S3 存储桶获取对象列表?
【发布时间】:2021-09-13 16:16:00
【问题描述】:

当我尝试从 S3 存储桶获取对象列表时,我遇到了 AWS lambda 问题。我是通过 boto3 分页器来做的:

但我无法从分页器接收数据作为结果。棘手的是我可以在本地机器上执行此操作,但是当我尝试通过部署的 aws lambda 执行此操作时 - 它只是超时了。

【问题讨论】:

  • 你的bucket和lambda都在同一个区域?
  • lambda 是否有权访问 S3 或者您是否在私有子网中?
  • @ppostnov 如果是私有子网,您的 lambda 是否有权使用私有子网?如果是,您是使用 VPN 网关访问 S3 还是设置了 NAT?
  • 如果超时,我猜你需要一个 S3 VPC 端点,因为你说 lambda 在私有子网中。如果没有端点,您将获得超时而不是其他类型的错误(假设没有通过 NAT 网关或其他方式访问互联网)。
  • @ppostnov 如果您的 VPC 中没有 S3 终端节点,请添加一个并查看是否对其进行排序。

标签: python amazon-web-services amazon-s3 aws-lambda boto3


【解决方案1】:

我也遇到了同样的问题,对我有用的是将有权访问 S3 的 Lambda 策略提供给您,您可以查看以下有关如何操作的指南:

https://www.anblicks.com/blog/10-step-guide-to-configure-s3-bucket-with-a-lambda-function-using-sqs

并且还将 Lambda 的超时时间从 3 秒增加到更多

【讨论】:

    猜你喜欢
    • 2015-04-30
    • 2019-07-08
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 2018-01-09
    • 2023-03-31
    • 2019-11-12
    • 1970-01-01
    相关资源
    最近更新 更多