如何使用在本地和 AWS 上运行的单个导入语句导入 AWS lambda 层?

问题描述 投票:0回答:0

我正在使用 AWS SAM 构建一个 Python 应用程序。该应用程序使用自定义 lambda 层。由于 AWS 打包代码的方式,在运行 lambda 处理程序时很容易从这些层导入函数。如果层中包含

my_lib
,我可以将
from my_lib import my_func
添加到lambda处理程序源代码中。

这些导入显然在存储库源代码的上下文中不起作用,因为文件结构和 python 路径不同。导入需要符合

from src.libs.layers.my_lib import my_func
from ..layers.my_lib import my_func
.

的内容

有人有好的方法来管理导入,以便它们在本地和 AWS 上运行时工作吗?我希望能够:

  1. 在 CI 中运行
    pylint
    而不会出现
    E0401
    错误
  2. 编写单元测试来测试 lambda 处理程序中的函数

我想在不需要 SAM 构建步骤的情况下执行上述两项操作,这意味着导入需要在源代码文件结构和 AWS 文件结构中正常工作。

一个明显的方法是在 SAM 构建之前对文件使用

sed
以将导入更新为 AWS 期望的格式,但我希望有一个更清洁的解决方案。

python aws-lambda python-import aws-lambda-layers
© www.soinside.com 2019 - 2024. All rights reserved.