簡體   English   中英

如何在對象上載時停止/控制由AWS S3觸發的事件以調用AWS Lambda?

[英]How to stop/control events triggered by AWS S3 on Object upload for invoking AWS Lambda?

我目前正在將文件上傳到250 MB大小和100萬條記錄的AWS S3 Bucket(B1)。 這將觸發Lambda(L1-1.5GB,3分鍾),該Lambda讀取該文件並使用某些條件將記錄分組,並在不同存儲桶(B2)上再次將約25K文件寫入S3。

現在,在存儲桶(B2)上配置的通知事件會向不同的Lambda(L2-512MB,2Mins,Concurrency-2)生成25K事件(請求)。 此Lambda調用基於Java的微服務,該微服務在處理后進入DB,每次調用大約需要1-2秒。

這里的問題是,一旦觸發第二Lambda(L2),就無法停止它。 它運行了幾個小時,直到完全處理完所有事件為止,並且沒有收到相同lambda的任何其他事件,並且我無法控制已觸發的S3事件。

有人可以解釋一下如何在Amazon S3上處理文件上載(架構)時在S3上觸發的事件以及如何對觸發的S3事件進行細粒度控制嗎?

我可以在AWS Lambda方面采取什么措施來停止已觸發的S3事件?

我認為在一次寫入25K對象時,在B2上設置通知事件不是最佳選擇。 我認為可以簡化流程。

  • B2中寫入25K對象的Lambda L1可以創建要寫入的對象鍵數組,並將其放入B2 確保將其寫入單獨的文件夾中,並且在該文件夾上而不是在寫入25K文件的位置中設置了通知事件。

  • 當您寫入包含25K對象密鑰的文件時, L2將被觸發,該文件可以傳遞給您的microservice

使用SNS的另一種選擇

  • B2中寫入25K對象的Lambda L1可以創建要寫入的對象鍵數組,並將其發布到SNS主題。 SNS消息大小為256 KB,足以滿足您的使用情況

  • mircoservice可以訂閱SNS Topic以接收對象密鑰並在數據庫中進行輸入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM