2017-08-28 83 views
-1

我想編寫一個Lambda函數來檢索s3對象,將其下載到函數的/ tmp文件夾,然後在該對象上運行crypto.createHash(算法)。但我需要超過500MB的對象大小的解決方案,因爲這是Lambda臨時存儲限制。有沒有解決方法? 另外如果我正在檢索的對象是從bucketpolicy中的Glacier存儲類,那麼如何使用Lambda下載它?我需要一個lambda進行檢索,另一個進行下載?任何幫助表示讚賞,謝謝!解決方法lambda 500MB臨時存儲

+0

我不建議使用Lambda。你收取100毫秒的分數和檢索500Mb將需要很多時間 – RuBiCK

回答

1

您應該能夠將S3對象的內容流式傳輸到散列算法中,而無需將其存儲在/tmp文件夾中。你根本不需要將它存儲到本地磁盤。

關於存儲在Glacier中的文件,由於這可能需要很長時間,所以您必須從一個函數調用中觸發恢復,然後觸發另一個調用以在對象恢復後計算哈希。

+0

謝謝馬克!將內容流式傳輸到哈希算法可行,但只適用於較小尺寸的文件,當我使用更大尺寸的文件進行測試時,即使將lambda內存大小配置增加到最大值,該功能也會超時。試圖使用lambda來計算大尺寸S3對象的哈希值的任何其他想法? – Calvin

+1

@Calvin你解決了這個問題嗎?據推測,除了增加RAM大小以獲得相應更多的CPU外,您還增加了Lambda函數超時本身。 – jarmod