0

我正在用 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”:[]}

谢谢你的帮助。

4

0 回答 0