简体   繁体   English

如何在 Lambda function 中获取 S3 触发器详细信息?

[英]How to get S3 trigger details inside Lambda function?

I created a lambda function that is triggered using S3 PutObject event.我创建了一个使用 S3 PutObject 事件触发的 lambda function。 My S3 bucket looks liks this:我的 S3 存储桶看起来像这样:

s3://my-bucket-name/directory_1/...
s3://my-bucket-name/directory_2/...
s3://my-bucket-name/directory_3/...

Another application is creating folders like directory_1 and so on.另一个应用程序正在创建像 directory_1 这样的文件夹。 Once data is created in this directory, the application also creates a file called _SUCCESS.在此目录中创建数据后,应用程序还会创建一个名为 _SUCCESS 的文件。 so one of the directories look like this:所以其中一个目录如下所示:

s3://my-bucket-name/directory_1/data.txt
s3://my-bucket-name/directory_1/_SUCCESS

Now I want to trigger my lambda function as soon as this _SUCCESS file is created.现在我想在创建这个 _SUCCESS 文件后立即触发我的 lambda function。 so I added a trigger of S3 in lambda as follows:所以我在lambda中添加了S3的触发器如下:

Event type: ObjectCreatedByPut
Bucket: my-bucket-name
Prefix: directory
Suffix: _SUCCESS

Currently, I'm able to see that lambda function is triggered properly whenever a new _SUCCESS file is created any directory.目前,我可以看到,只要在任何目录中创建新的 _SUCCESS 文件,就会正确触发 lambda function 。 But I also want to know what is the exact key of the _SUCCESS file that triggered this function.但我也想知道触发这个 function 的 _SUCCESS 文件的确切键是什么。 How to do this?这个怎么做?

For example, if s3://my-bucket-name/directory_1/_SUCCESS triggers my lambda, I should be able to get full path of this file inside this lambda function.例如,如果 s3://my-bucket-name/directory_1/_SUCCESS 触发了我的 lambda,我应该能够在此 lambda ZC1C425268E68385D1ABZA79 中获取此文件的完整路径。

S3 notification event structure is described in details here . S3 通知事件结构在此处详细描述。

For example to get bucket name from the event (assuming 1 record in the event):例如从事件中获取存储桶名称(假设事件中有 1 条记录):

bucket_name = event['Records'][0]['s3']['bucket']['name']

Similarly for key:同样的关键:

key_name = event['Records'][0]['s3']['object']['key']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM