【问题标题】:AWS Lambda function not reading bucketAWS Lambda 函数未读取存储桶
【发布时间】:2017-09-28 17:36:40
【问题描述】:

我正在使用 AWS lambda 函数来读取我的 JSON 文件。我创建了一个 Lambda 函数,它检查是否有任何新的 .json 文件上传到 my.bucket。如果是,那么我将按照我的要求使用该 JSON 文件。

下面是我的代码sn-p:

var response = await this.S3Client.GetObjectMetadataAsync(s3Event.Bucket.Name,  s3Event.Object.Key);

s3Event.Bucket.Name 是我的存储桶名称,s3Event.Object.Key 是我正在读取的 JSON 文件。

但是,我收到此错误:

从存储桶 my.bucket 获取对象 example.json 时出错。确保它们存在并且您的存储桶与此函数位于同一区域。

我正在使用点网核心。

【问题讨论】:

  • 您是否验证过该对象存在于正确的存储桶中?并且存储桶和 AWS Lambda 函数托管在同一区域?
  • 是的,它是@MalteR
  • 只是为了进行健全性检查,存储桶位于您认为的同一区域?我经常不小心在默认区域中创建资源,然后给出该错误,因为它应该在 eu-west-1 :-)
  • 对不起@MalteR 我刚刚注意到你已经问过了。
  • 关闭您的问题,但发现它足以告诉您 - 关于“检查是否有任何新的 .json 文件上传到 my.bucket” - 您无需在存储桶上轮询新上传的文件,您可以在该存储桶上设置一个事件来触发您的 lambda。

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


【解决方案1】:

如果您确定这不是权限问题,您还应该确保您要查找的文件/路径名完全匹配。 S3 存储桶和文件名区分大小写,而在 Windows 下它们通常不区分大小写(并且由于您使用 C# 进行编码,因此我假设您来自 Windows 的观点)。

我自己被困在区分大小写的“陷阱”中已经有好几次了......

【讨论】:

    猜你喜欢
    • 2018-01-09
    • 1970-01-01
    • 2020-04-29
    • 2020-07-05
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 2019-11-12
    • 2021-02-08
    相关资源
    最近更新 更多