簡體   English   中英

有沒有辦法讓多個S3存儲桶觸發Lambda函數?

[英]Is there a way for a Lambda function to be triggered by multiple S3 buckets?

我正在嘗試創建一個Lambda函數,該函數將由對S3控制台中的任何存儲桶進行的任何更改觸發。 有沒有辦法將S3中每個存儲桶中的所有創建事件都綁定到我的Lambda函數?

似乎在創建Lambda函數時,您只能選擇一個S3存儲桶。 如果不是在Lambda控制台中,是否可以通過編程方式執行此操作?

至少有一種方法:您可以為要監視的每個存儲桶設置s3事件通知,所有這些通知都指向一個SQS隊列。

然后,該SQS隊列可以成為lambda函數的事件源。

如果您使用任何aws-sdk上載到s3,則有一種解決方法,方法是設置一個API網關端點,以在成功上載到s3時觸發lambda。 將bucket-name和object-key傳遞給lambda,您也可以動態指定dest bucket。

這對於嵌套前綴也將有所幫助。 例如bucket / users / avatars / user1.jpg bucket / users / avatars / thumbnails / user1-thumb.jpg

是的,可以,假設您只想在幾個存儲桶中有新創建的對象時觸發Lambda,則可以通過AWS Console,cli,boto3和其他SDK進行操作。

如果隨着時間的推移創建了新的存儲桶,並且您還想將其添加為Lambda的事件源,則可以創建Cloudtrail API事件源,以觸發另一個Lambda以編程方式將這些新存儲桶作為原始Lambda的事件源。

暫無
暫無

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

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