AWS Lambda 层如何能够与私有 Conda 存储库一起使用?
How are AWS Lambda layers able to work with private Conda repos?
我使用 Conda 并有一个私有的 Conda 存储库。
一个函数可以使用的最大层数是五个。所以我不能只将我的每个私人 Conda 包作为一个单独的层上传——因为函数可能需要使用超过 5 个包
我不清楚层应该如何解决这个问题,或者它们是否不是为这类事情设计的。
我是否只有一个用于基本 Conda 环境的 lambda 层,然后让 lambda 使用该层来导入我的私有 Conda 包?或者我应该将我的整个功能作为一个新层本身上传,我将在本地构建我的 Conda Python 应用程序与我所有的私人 Conda 部门,将其作为一个新层上传,然后有一个 不同的函数调用了吗?
您可以尝试将所有私有包构建到单独的 - 单个 - 层中,然后将您自己的(单个)层与您的函数一起使用。 ……那对你有用吗? (层数没有限制,只需要包含一个packages/modules)
如果您的基础 conda env 也有 public 包,您还可以为该环境构建一个单独的层 - 那么在您的函数中您将包含两层 - 一个用于您的基础 conda env ,还有一个用于您所有的私人包裹。
在我的代码中,我将 conda 用于开发,但不用于部署。目前,我已经构建并使用了一个包含 skimage 的私有层,但我将所有私有包与 lambda 本身一起构建,而不是将它们捆绑为一个层。不过我想过以后会往那边走。
我还使用 AWS 的 SAM 进行构建和打包,这让事情变得简单多了。但我不确定使用 conda 而不是 pip 是否容易。
- 如果你走那条路可能会有一些帮助(......你现在可以使用 SAM 到 build/install 层,但它需要一点手臂扭动)
我使用 Conda 并有一个私有的 Conda 存储库。
一个函数可以使用的最大层数是五个。所以我不能只将我的每个私人 Conda 包作为一个单独的层上传——因为函数可能需要使用超过 5 个包
我不清楚层应该如何解决这个问题,或者它们是否不是为这类事情设计的。
我是否只有一个用于基本 Conda 环境的 lambda 层,然后让 lambda 使用该层来导入我的私有 Conda 包?或者我应该将我的整个功能作为一个新层本身上传,我将在本地构建我的 Conda Python 应用程序与我所有的私人 Conda 部门,将其作为一个新层上传,然后有一个 不同的函数调用了吗?
您可以尝试将所有私有包构建到单独的 - 单个 - 层中,然后将您自己的(单个)层与您的函数一起使用。 ……那对你有用吗? (层数没有限制,只需要包含一个packages/modules)
如果您的基础 conda env 也有 public 包,您还可以为该环境构建一个单独的层 - 那么在您的函数中您将包含两层 - 一个用于您的基础 conda env ,还有一个用于您所有的私人包裹。
在我的代码中,我将 conda 用于开发,但不用于部署。目前,我已经构建并使用了一个包含 skimage 的私有层,但我将所有私有包与 lambda 本身一起构建,而不是将它们捆绑为一个层。不过我想过以后会往那边走。
我还使用 AWS 的 SAM 进行构建和打包,这让事情变得简单多了。但我不确定使用 conda 而不是 pip 是否容易。