AWS Python Lambda 使用 Layer

使用 Python 書寫 AWS Lambda 的一個好處就是能夠在控制檯中直接編輯源代碼,非常方便進行快速驗證測試 AWS 環境相關的。這只限於使用 AWS 爲 Python Lambda 運行時提供的默認組件(比如 boto3),尚若需要在自己的 Python Lambda 中使用其他的組件(如 redis), 就不得不把自己的代碼及依賴打成一個 zip 包再部署,這時候就無法在控制檯直接編輯代碼了,也只能墜入本地修改代碼,重新打包上傳測試的循環當中。

欲瞭解 Python Lambda 中除了 boto3 外還能直接使用別的什麼組件,可點擊此鏈接 https://gist.github.com/gene1wood/4a052f39490fae00e0c3 查看當前。該 gist 也還提供了代碼 code to run in Lambda 來獲得所有依賴。試了下在 Python Lambda 中,用通常的

help('modules')    # 或
help('modules package')

竟然連大名鼎鼎的 boto3 都無法列出來。

回到正題來,如果既想用第三方的依賴,又想要在控制檯中直接編輯代碼進行測試,是否有他法呢?有,那就是 AWS 在 2018 年 11 月推出的 Lambda 層。見 AWS Lambda Now Supports Custom Runtimes and Enables Sharing Common Code Between Functions, 這裏的層除了能用來提供 Python 依賴,還許自定義運行時,如 C++ 或 Rust 等寫 Lambda 都不是夢。

AWS 的服務就像個大口袋,何時偷偷的加添了什麼服務,或出了什麼新的我,不時關注它的 What's New with AWS 必是個好習慣。 閱讀全文 >>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章