AWS Python层在本地运行

AWS Python层在本地运行,python,amazon-web-services,aws-lambda,layer,Python,Amazon Web Services,Aws Lambda,Layer,如何在本地运行带有层的AWS Lambda函数 我的环境: Pycharm项目,用于带有Python 3.6运行时的AWS Lambda函数 AWS工具包 创建Lambda层的类似文件/文件夹结构:如下所示: 和部署模板,如: 我可以正确部署该功能,并在AWS上运行它,效果良好, 每当我尝试在本地运行该函数时,它都会失败,并显示错误消息: `Unable to import module 'app': No module named 'sql'` 我试图阅读所有关于图层和Pycharm

如何在本地运行带有层的AWS Lambda函数

我的环境:

  • Pycharm项目,用于带有Python 3.6运行时的AWS Lambda函数
  • AWS工具包
  • 创建Lambda层的类似文件/文件夹结构:如下所示:
  • 和部署模板,如:
我可以正确部署该功能,并在AWS上运行它,效果良好, 每当我尝试在本地运行该函数时,它都会失败,并显示错误消息:

`Unable to import module 'app': No module named 'sql'`
我试图阅读所有关于图层和Pycharm的可能资源,但没有任何真正的帮助

有人能帮忙吗


谢谢,

我在PyCharm中通过添加一个符号链接到另一个包含层代码的目录,解决了这个问题。

app.py中的
import
语句是什么样子的?@PeterHalverson,例如:from utils import*utils是依赖项/python/utils.py,它在AWS中的/opt下展开,并正确导入。错误是:(昨天我有一个类似的导入,但我希望是从sql.py文件导入的。)我正在用pyodbc进行尝试,并将其符号链接,但仍然存在问题。我将/pyodbc符号链接到/path/to/extracted/layer_归档文件,现在我导入了一个名为pyodbc的东西,但它没有任何预期的方法。
testFunc:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: teest/
      Handler: app.test
      Runtime: python3.6
      FunctionName: testFunc
      Events:
        test:
          Type: Api
          Properties:
            Path: /test
            Method: ANY
      Layers:
        - !Ref TempConversionDepLayer

  TempConversionDepLayer:
        Type: AWS::Serverless::LayerVersion
        Properties:
            LayerName: Layer1
            Description: Dependencies
            ContentUri: dependencies/
            CompatibleRuntimes:
              - python3.6
              - python3.7
            LicenseInfo: 'MIT'
            RetentionPolicy: Retain
`Unable to import module 'app': No module named 'sql'`