Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在无服务器框架中将外部python模块导入AWS Lambda函数?_Python_Amazon Web Services_Module_Aws Lambda_Package - Fatal编程技术网

如何在无服务器框架中将外部python模块导入AWS Lambda函数?

如何在无服务器框架中将外部python模块导入AWS Lambda函数?,python,amazon-web-services,module,aws-lambda,package,Python,Amazon Web Services,Module,Aws Lambda,Package,如何导入utils.py中的类和方法,并将其放在一个完全不同的目录中?正如您所知,无服务器框架将压缩其所在目录中的所有内容,并将其部署到云中。但是我们的Lambda使用完全不同的目录中的函数和类,所以当我们部署函数时,它不包括这些文件 我们如何才能做到这一点 我们可以复制该模块并将其粘贴到Lambda函数目录中,以便在部署Lambda时包含它 这是不可行的,假设10个不同的Lambda模块需要该模块 root - module_1 - utils.py - mod

如何导入utils.py中的类和方法,并将其放在一个完全不同的目录中?

正如您所知,无服务器框架将压缩其所在目录中的所有内容,并将其部署到云中。但是我们的Lambda使用完全不同的目录中的函数和类,所以当我们部署函数时,它不包括这些文件

我们如何才能做到这一点

我们可以复制该模块并将其粘贴到Lambda函数目录中,以便在部署Lambda时包含它

这是不可行的,假设10个不同的Lambda模块需要该模块

root
    - module_1
        - utils.py
    - module_2 
        - handler.py (Lambda Function) (Requires functions from utils.py)
        - serverless.yml
    - module_3
        - handler.py (Lambda Function)
        - serverless.yml

utils.py中的单个更改必须在10个不同的地方进行,呃

不用担心,serverless有一个插件可以帮助你

root
    - module_1
        - utils.py
    - module_2 
        - handler.py (Lambda Function) (Requires functions from utils.py)
        - serverless.yml
        .
        .
        .
        
    - module_10
        - handler.py (Lambda Function) (Requires functions from utils.py)
        - serverless.yml

这个插件将帮助你解决你的问题。祝你有愉快的一天

为这类东西创建lambda层,以便您也可以将同一模块用于其他lambda函数,它更具可扩展性。您也可以将它与lambda函数打包,作为开始,最好使用lambda层。使用lambda函数添加图层,可以导入所需的模块

serverless-package-external