【问题标题】:AWS Lambda - not uploading to S3 when I publish lambdaAWS Lambda - 当我发布 lambda 时不上传到 S3
【发布时间】:2021-02-28 09:55:30
【问题描述】:

我有一个 AWS .NET Core lambda,我在其中将图像上传到 S3 存储桶。

这在使用测试工具的开发模式下运行良好,但是一旦我发布,它就会超时并且没有错误消息。

这是我在尝试上传到 S3 之前将 base64 图像转换为字节数组的代码。

上传时卡住了。我也尝试过UploadAsync 方法,它的作用相同。

s3Client = new AmazonS3Client(apiKey, apiSecret, bucketRegion);
var fileTransferUtility = new TransferUtility(s3Client);
var bytes = Convert.FromBase64String(body.ImgB64.Split(',')[1]);
using var contents = new MemoryStream(bytes);
fileTransferUtility.Upload(contents, bucketName, filePath + "/" + keyName);

我想知道这是否与将对象上传到 S3 存储桶所需的权限有关?

我目前正在使用一个 IAM 用户,该用户使用 AWS 提供的密钥和秘密对存储桶具有写入权限,如上所述,这在开发模式下工作正常。

我还授予了用于 lambda S3 完全访问权限的 IAM 角色。

谁能帮忙?

【问题讨论】:

  • 你的 lambda 在 VPC 中吗?
  • 不确定,如何检查?
  • 导致 lambda 超时的常见原因通常是由于将其放置在 VPC 中。如果您没有明确这样做,那么它可能不在 VPC 中。您可以在 AWS lambda 控制台中检查它。在底部会有部分VPC
  • 您可以检查 2 件事 - 是否在 VPC 中,如上所述,并检查您的 AWS Lambda 函数超时时间(默认为 3 秒,最长为 15 分钟)
  • 我认为是 VPN,我需要做些什么来解决这个问题。超时已增加到 30 秒

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


【解决方案1】:

记录正在发生的事情 - 使用 Lambda,您只需打印到 stdout,它就会被 CloudWatch 日志获取。之后分析 CloudWatch 日志并从那里开始。

【讨论】:

  • 感谢您的评论,但不确定您的意思,如果卡在那个地方,我可以记录什么?
猜你喜欢
  • 2018-07-12
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 2020-05-16
  • 2021-08-27
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多