Trigger lambda only on S3 object create, but not to trigger on override

0

We had a use case to trigger the AWS Lambda from S3 for the objects which are created for the first time. We don't want the lambda to be triggered for the object overrides. I checked the documentation for S3 POST and PUT, both looks similar.

질문됨 2년 전1609회 조회
1개 답변
1
수락된 답변

There's no particularly easy way to do what you want to do here. PUT/POST events both send out events for object creation even when they are replacing existing objects.

You could enable versioning on the bucket and detect (by looking at the object metadata) whether there is a new version that has just been uploaded. But it would mean that you'd have extra copies of objects in the buckets. Those could be deleted using lifecycle rules but it's extra work to do.

Even more work would be to maintain a database which holds a list of existing objects; the Lambda function would check to see if this is a replace operation rather than a "proper" creation and stop running as appropriate.

That said, if you already have a database (or list or something) which you're trying not to populate with additional data when the objects are replaced then maybe you could query that? If the object doesn't exist in that store then it is new; otherwise it is a replacement.

profile pictureAWS
전문가
답변함 2년 전
profile picture
전문가
검토됨 한 달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠