我正在使用 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 上运行时工作吗?我希望能够:
pylint
而不会出现 E0401
错误我想在不需要 SAM 构建步骤的情况下执行上述两项操作,这意味着导入需要在源代码文件结构和 AWS 文件结构中正常工作。
一个明显的方法是在 SAM 构建之前对文件使用
sed
以将导入更新为 AWS 期望的格式,但我希望有一个更清洁的解决方案。