【发布时间】:2021-05-26 23:12:21
【问题描述】:
我有一个 python lambda,它只是示例 hello_world,您可以使用 sam init 创建它。
我稍微修改了一下,在 lambda 文件夹中添加了子文件夹。
所以在 hello_world lambda 文件夹中我有:
app.py # this is the lambda handler
requirements.txt
my_code_folder # I added this and I want to be able to import it and use it in the lambda. It contains a tonne of custom modules.
但是,当我运行 sam local invoke 时,我得到:
[ERROR] Runtime.ImportModuleError: Unable to import module 'app': No module named 'hello_world'
如果我取出导入,它工作正常。
也许我在我的 lambda 中导入错误?
import hello_world.my_code_folder.MyModule as my_module
我的 SAM 模板有这个:
Globals:
Function:
Timeout: 3
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: hello_world/
Handler: app.lambda_handler
Runtime: python3.8
Events:
HelloWorld:
Type: Api # More info about API Event Source: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
Properties:
Path: /hello
Method: get
【问题讨论】:
-
您能否在打包的 ZIP 文件(包括 app.py 和 MyModule.py)中包含模块子集的列表?
-
我认为导入应该是
import my_code_folder.hello_world as mymodule
标签: python amazon-web-services aws-lambda aws-sam aws-sam-cli