我寫了一個通過s3存儲桶的putObject事件觸發的lambda函數。我正在修改對象發佈上傳的標題,下載對象,並用適當的標題重新上傳。但是因爲函數本身使用putObject來重新加載對象,所以lambda觸發自己。如何避免lambda觸發器遞歸調用
2
A
回答
1
三個選項:
使用不同的API來上傳你的變化比你有一個事件之一。也就是說,如果您的lambda是由PUT觸發的,那麼之後使用POST來修改內容(由於POST由於AFAIK不太受支持,所以這可能不是一個選項)。
跟蹤使用情況並在處理程序開始時有一個小警戒線,如果對文件所做的唯一更改是短路。如果您無法以編程方式檢測您設置的標題,則可能需要一個小型發電機表或類似的工具來跟蹤您已觸摸的文件。這會讓你立即放棄,只收取最低100毫秒的費用。
重組您的項目以擁有「攝取」存儲桶和輸出存儲桶。未經處理的是放入前者,進行修改,然後放入後者。這具有許多優點。首先,你不會因目前的情況而結束,所以這是一個加分。第二個是你沒有任何進程使用這些修改過的文件,可能會拖動一個未修改的版本。第三,您可以更好地瞭解流程 - 如果出現問題,很容易看出哪些批次的文件經歷了哪個流程。
總的來說,我建議選擇3,你,但我知道,在我的懶惰時刻,我可能會嘗試選擇1種或2
無論哪種方式,祝你好運。
相關問題
- 1. 如何調試遞歸觸發器
- 2. 避免遞歸
- 3. 避免遞歸
- 4. MYSQL觸發器遞歸規避
- 5. 如何避免與字節好友遞歸調用 - java.lang.StackOverflowError
- 6. 如何避免存儲過程中的遞歸調用?
- 7. 如何避免super()的無限遞歸?
- 8. 如何避免遞歸堆棧溢出?
- 9. 如何避免遞歸依賴屬性
- 10. 如何編寫遞歸觸發器
- 11. 避免遞歸bannerView:didFailToReceiveAdWithError:iPad上
- 12. 遞歸的深淺解析器 - 避免左遞歸
- 13. SQL - 如何避免最大遞歸的遞歸查詢使用CTE
- 14. 觸發來避免衝突
- 15. 如何在調試時避免觸發屬性?
- 16. 避免將積累參數在尾遞歸調用
- 17. 如何避免調用get_query_set()
- 18. 如何在使用遞歸製作時避免這些重複?
- 19. 如何使用React設置狀態並避免遞歸?
- 20. 尾遞歸函數總是要避免?
- 21. 在Haskell中避免顯式遞歸
- 22. 在遞歸中避免Stackoverflow的技巧
- 23. 避免RxJS5可觀察量的遞歸
- 24. 避免使用Doctrine實體和JMS串行器遞歸
- 25. 嵌套遞歸是可能的還是應該避免遞歸?
- 26. Boost lambda遞歸?
- 27. 當使用ajax調用下載文件時,避免觸發window.onbeforeunload
- 28. 如何避免使用生成器的Python中的最大遞歸深度?
- 29. 如何避免使用觸摸UITableView?
- 30. 遞歸觸發功能