簡體   English   中英

使用 Docker 容器在 SAM 應用程序中的多個 AWS Lambda 之間共享代碼

[英]Sharing code between multiple AWS Lambdas in a SAM app using Docker Containers

我有一個帶有多個 Lambda 的 SAM 應用程序和一些我想在它們之間共享的實用程序代碼。 使用 zip 文件打包 Lambda 時,可以使用 Lambda 層進行代碼共享。 但是,根據 AWS 文檔,使用容器時不支持 Lambda 層。

定義為容器鏡像的函數不支持層。 構建容器鏡像時,您可以將 package 您首選的運行時和依賴項作為鏡像的一部分

I've tried copying my dependencies into a separate docker image, then pulling from that image in my lambda dockerfile, which is suggested in the AWS blog post Working with Lambda layers and extensions in container images . 但是,我只是在嘗試調試或運行sam local invoke時收到Unable to import module 'app': No module named '<my_dependency>'錯誤。 我在最終圖像中驗證了依賴項位於我的 python lambda 的/opt/python/目錄中,並嘗試了其他文件夾結構,但沒有運氣。

有沒有人能讓這個工作?

我已經想通了。 依賴項(例如,utils.py)確實需要在/opt/python/文件夾中,但是當我嘗試對此進行測試時,我正在使用 docker cli 手動構建我的 docker 映像,而不是使用sam build錯誤的圖像標簽。 因此,調試器使用了我的 docker 映像的先前版本,該版本無法正常工作。 為了解決這個問題,我只需要在嘗試本地調試 lambda 之前運行sam build

暫無
暫無

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

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