简体   繁体   English

项目 (AWS CDK) 和 Lambda 特定的 Python 导入

[英]Project (AWS CDK) and Lambda specific python imports

Image you are writing an IaaC (Infrastructure as a Code) project with python programming language.图像您正在使用 Python 编程语言编写 IaaC(基础设施即代码)项目。 There is a good library/sdk that makes it convenient: AWS CDK (Amazon web services cloud development kit).有一个方便的库/sdk:AWS CDK(亚马逊网络服务云开发工具包)。 In the same project you can specify lambda source code too.在同一个项目中,您也可以指定 lambda 源代码。

Now imagine you want that python imports in the lambda function source code would work in the lambda environment and in the project.现在假设您希望 lambda 函数源代码中的 python 导入在 lambda 环境和项目中工作。 One of the simplest ways to achieve that is to try/except ImportError like this:实现这一目标的最简单方法之一是像这样尝试/排除 ImportError

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

However, this solution seems to be kinda ugly.然而,这个解决方案似乎有点难看。 Any better suggestions how to write imports that would work in the AWS CDK project and in the Lambda environment?任何更好的建议如何编写在 AWS CDK 项目和 Lambda 环境中工作的导入?

Is it possible to use the same path for both the Lambda environment and the local environment?是否可以对 Lambda 环境和本地环境使用相同的路径?

If you pack the module together with the lambda source code, then from iaac.project.source.some.path import PathModule should work both locally and in Lambda environment.如果您将模块与 lambda 源代码打包在一起,那么from iaac.project.source.some.path import PathModule应该可以在本地和 Lambda 环境中工作。

If you put the module into a lambda layer , then you can install that module locally using pip , and from some.path import PathModule should work for both.如果您将模块放入lambda 层,那么您可以使用pip在本地安装该模块,并且from some.path import PathModule应该适用于两者。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 AWS CDK Python 创建/部署多个 Lambda 函数 - Create/Deploy multiple Lambda functions using AWS CDK Python 如何在 AWS CDK 创建的 Python Lambda Function 中安装外部模块? - How to install external modules in a Python Lambda Function created by AWS CDK? 如何部署将 Tensorflow 导入 AWS Lambda 的 Python 脚本? - How to deploy Python script that imports Tensorflow to AWS Lambda? AWS Python CDK - 关于策略创建的账户特定资源 - AWS Python CDK - Account specific resource on policy creation 如何使用 aws CDK 和 Python 将层部署和附加到 aws lambda 函数 - How to deploy and attach a layer to aws lambda function using aws CDK and Python 有没有办法使用 AWS-CDK 将新的 lambda function 连接到现有的 AWS ApiGateway? (Python) - Is there a way to connect a new lambda function an existing AWS ApiGateway using AWS-CDK? (Python) 如何使用 Javascript AWS CDK 部署 Python AWS Lambda 及其依赖项? - How to deploy Python AWS Lambda with its dependencies using Javascript AWS CDK? 如何在本地部署AWS python Lambda项目? - How to deploy AWS python Lambda project locally? 为AWS Lambda打包Python Pipenv项目 - Package Python Pipenv project for AWS Lambda aws cdk 将值传递给 lambda 自定义资源 - aws cdk passing values to a lambda custom resource
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM