我正在用 python 中的 PyCharm 开发一个 API Gateway AWS。我正在使用 AWS 开发工具,并且我已经开始创建 Hello World 模板,它工作正常。然后现在我将添加一个我开发的 python 模块,我想部署它以使其可用于 lambda 函数。那是项目结构:
├── __init__.py
├── library_common
│ ├── __init__.py
│ ├── configuration.py
│ └── encryption.py
├── events
│ └── event.json
├── keepalive_functions
│ ├── __init__.py
│ ├── app.py
│ └── requirements.txt
├── requirements.txt
├── samconfig.toml
├── template.yaml
├── tests
│ ├── __init__.py
│ ├── integration
│ │ ├── __init__.py
│ │ └── test_api_gateway.py
│ ├── requirements.txt
│ └── unit
│ ├── __init__.py
│ └── test_handler.py
基本上,当我在 keepalive_functions 中调用 lambda 函数时,我想使用 library_common 中的函数。
下一个 template.yaml 文本:
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
entry365anchor
Sample SAM Template for entry365anchor
# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
Function:
Timeout: 3
Resources:
GetKeepalive:
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: keepalive_functions/
Handler: app.get_keepalive
Runtime: python3.8
Events:
PutResource:
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: /v1/keepalive
Method: get
我在这个错误中发生的运行方法:
{“errorMessage”:“无法导入模块'app':没有名为'entry365common'的模块”,“errorType”:“Runtime.ImportModuleError”,“stackTrace”:[]}
谢谢你的帮助。