【问题标题】:Using Java code how to trigger my Lambda Function when a new file is uploaded to s3 bucket使用 Java 代码如何在将新文件上传到 s3 存储桶时触发我的 Lambda 函数
【发布时间】:2017-12-14 05:04:49
【问题描述】:

我是 AWS 世界的新手。我有一个要求,请帮我查询。 我编写了一个 lambda 函数来从 s3 存储桶中读取文件内容,并将详细信息存储在我在 AWS 中的 PostgreSQL RDS 实例中。幸运的是它工作正常!!!! 我的 lambda 函数名称是“MyFunction”。现在我想做以下事情。如果一个新文件自动落在我的 s3 存储桶“s3-testing”上,则 lambda 函数“MyFunction”应该可以工作。

有什么办法可以做到这一点。我正在使用 eclipse 来创建我的 lambda 函数。

请帮我搞定这个。

【问题讨论】:

标签: java postgresql amazon-web-services amazon-s3 lambda


【解决方案1】:

这是一个非常常见的要求:为 S3 存储桶中的新文件调用 Lambda 函数。

Amazon S3 支持事件。当新对象(也支持其他操作)到达 S3 时,会创建事件。该事件可以发送到 SNS 主题、SQS 队列或 Lambda 函数。

您的 Lambda 函数将接收事件数据结构。此结构详细说明了有关 S3 事件的信息。

本教程将引导您设置 S3 以调用您的 Lambda 函数。

Tutorial: Using AWS Lambda with Amazon S3

【讨论】:

  • 感谢您的回复。再有一个问题,我有我的 s3 存储桶“测试”。在我的存储桶中,我有一个名为“SampleData”的文件夹。在该文件夹中,我上传了 2 个文件 csv1 和 csv2。我写了一个从 bucket 读取文件的代码,我提到了 bucket name 和 key name。什么是真正的关键?如果我想读取 csv1,我的密钥是 SampleData\csv1?
  • 在某些情况下我需要从 csv1 读取数据,而在其他情况下我需要从 csv2 读取数据。在我当前的程序中,我只添加了 2 行代码来获取存储桶名称和密钥。我对名称进行了硬编码。在键值中,我需要在 s3 中上传最新的文件。有什么办法可以得到吗?
  • 键名是 SampleData/csv1 和 SampleData/csv2。 S3 没有文件夹,因此键名始终是完整路径名。
  • 感谢您的宝贵意见。 :-)
猜你喜欢
  • 2017-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 2022-11-23
相关资源
最近更新 更多