我有一個 lambda 來處理 s3 存盤桶檔案夾中的檔案。如果物件在檔案夾中超過 7 小時且未被 lambda 處理,我想設定警報/通知
uj5u.com熱心網友回復:
您可以在 S3 中使用物件的標簽,例如標簽名稱 Processed : true 或 false由您的 lambda 處理器更改。
然后在您的另一個預定 lambda 中,您可以檢查創建物件 if > 7h 并已處理:false(這意味著未由 lambda 處理),如果發現您在 SNS 中創建通知
uj5u.com熱心網友回復:
將S3 存盤桶的物件過期時間設定為 7 小時。然后讓 lambda被洗掉事件觸發。lambda 可以是通知您并將檔案保存到另一個存盤桶或將其轉發到您的原始 lambda 的那個。lambda 觸發可能是上傳物件時應該觸發的那個。
或者,您可以為上傳的檔案添加標簽。標簽可能是ttl: <date-to-delete>. 您有一個 CloudWatch 計劃事件,例如每小時運行一次 lambda,并檢查 S3 存盤桶中的所有物件ttl-tag 的值是否早于當前時間。
就我個人而言,我會采用第一種方法,因為它更多是事件驅動的,而預定的處理更少。
另一方面,很奇怪的是,某些 S3 物件沒有觸發 lambda。我不知道你是如何部署你的 Lambda 并將觸發器配置到 S3 的。如果您使用的是無服務器或CDK,我看不到您的 lambda 是如何不會為每個具有類似于以下配置的上傳檔案觸發的:
// serverless example
functions:
users:
handler: users.handler
events:
- s3:
bucket: photos
event: s3:ObjectCreated:*
rules:
- prefix: uploads/
- suffix: .jpg
在這個例子中,用戶lambda 被觸發為在photos/uploads 中創建的每個 jpg 檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318853.html
標籤:亚马逊-s3 aws-lambda 通知 亚马逊云表
