【问题标题】:Amazon S3 read file operation times out from Lambda function with Task timed out after 30.03 secondsAmazon S3 从 Lambda 函数读取文件操作超时,任务在 30.03 秒后超时
【发布时间】:2021-08-22 00:20:25
【问题描述】:

此代码在我本地机器上的 .net 核心控制台中运行

await S3Client.GetObjectAsync(new GetObjectRequest { BucketName = bucketName, Key = key });

但同一行在 aws 中的 Lambda 函数中不起作用,它超时并显示“任务在 30.03 秒后超时”

我已经关注了

  1. 将 lambda 函数的超时时间增加到 5 分钟。
  2. 增加了 lambda 函数的内存使用限制。
  3. 将策略“AmazonS3FullAccess”附加到 lambda 函数 IAMRole。 还将策略“AmazonS3ReadOnlyAccess”附加到同一角色(绝望措施)
  4. 向所有人公开存储桶。
  5. 确保存储桶和函数位于同一区域。

仍然没有运气,我在这里做错了什么?谢谢

【问题讨论】:

  • lambda 是否在 vpc 中?
  • 正如@Marcin 所指出的,VPC 配置可能确实与它相关。但是,只是为了方便起见,您能否将 lambda 函数的基本配置发送给我们,并将来自 lambda 执行的 cloudwatch 日志中有关内存使用量 + 总运行时间的部分也作为问题的一部分? 95% 的时间都归结为内存消耗或超时。让我们首先尝试确认是这种情况还是其他 5%(例如 VPC)的其他情况。干杯,
  • 感谢@Marcin 和 Lucas Barbosa。是的,问题确实与 VPC 有关。

标签: amazon-web-services amazon-s3 .net-core aws-lambda


【解决方案1】:

是的,需要移除 VPC 才能使其工作。

但是,如果您不想删除您的 VPC,请执行以下操作。

  1. 在公共子网中创建一个新的 nat 网关。
  2. 在私有路由表中添加一个新角色以允许 0.0.0.0 到 nat 网关。

Ta da,现在您的 Lambda 可以从 s3 存储桶中读取文件了。但是,请注意 nat 网关有与之相关的成本。所以它不是免费选项。

有一种新的做事方式。阅读This 并应用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-26
    • 2018-05-15
    • 2018-08-08
    • 2021-10-17
    • 2020-11-06
    • 2018-02-15
    • 2015-01-26
    • 2019-01-28
    相关资源
    最近更新 更多