【问题标题】:Project (AWS CDK) and Lambda specific python imports项目 (AWS CDK) 和 Lambda 特定的 python 导入
【发布时间】:2020-09-11 06:44:03
【问题描述】:

您正在使用 Python 编程语言编写 IaaC(基础设施即代码)项目。有一个很好的库/sdk 使它很方便:AWS CDK(亚马逊网络服务云开发工具包)。在同一个项目中你也可以指定 lambda 源代码。

现在假设您希望 lambda 函数源代码中的 python 导入可以在 lambda 环境和项目中工作。实现这一目标的最简单方法之一是像这样尝试/排除 ImportError

try:
    # Lambda-specific import.
    from some.path import PathModule
except ImportError:
    # Project-specific import.
    from iaac.project.source.some.path import PathModule 

但是,这个解决方案似乎有点难看。关于如何编写适用于 AWS CDK 项目和 Lambda 环境的导入,有什么更好的建议吗?

【问题讨论】:

    标签: python amazon-web-services aws-lambda python-import aws-cdk


    【解决方案1】:

    是否可以对 Lambda 环境和本地环境使用相同的路径?

    如果您将模块与 lambda 源代码打包在一起,那么 from iaac.project.source.some.path import PathModule 应该可以在本地和 Lambda 环境中工作。

    如果您将模块放入lambda layer,那么您可以使用pip 在本地安装该模块,from some.path import PathModule 应该适用于两者。

    【讨论】:

    • 嗯。为了维护一个良好的项目结构,有一个专门的“源”目录来存放 lambda 函数代码是有意义的。
    • 另外,关于层 - 您需要将它们放在链式目录中才能工作。例如。 /source/python/你的东西。这再次使导入变得困难。
    猜你喜欢
    • 2020-02-04
    • 2016-02-05
    • 1970-01-01
    • 2020-12-02
    • 2021-12-18
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多