Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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 Lamda因can';t导入lambda_处理程序外部的变量_Python_Aws Lambda_Amazon Sqs - Fatal编程技术网

Python AWS Lamda因can';t导入lambda_处理程序外部的变量

Python AWS Lamda因can';t导入lambda_处理程序外部的变量,python,aws-lambda,amazon-sqs,Python,Aws Lambda,Amazon Sqs,我在这里检查了之前提出的所有问题,没有找到答案。 我的项目结构如下: project/ ├── └── lambdas ├── __init__.py ├── lambda_handler_1.py # def main(event, context) ├── lambda_handler_2.py └── my_lib ├── __init__.py. # Here I have `import my_lids.utils \n import my_lids

我在这里检查了之前提出的所有问题,没有找到答案。 我的项目结构如下:

project/
├── 
└── lambdas
    ├── __init__.py
    ├── lambda_handler_1.py  # def main(event, context)
    ├── lambda_handler_2.py
└── my_lib
    ├── __init__.py. # Here I have `import my_lids.utils \n import my_lids.exceptions`
    ├── exceptions.py
    ├── utils.py
└── api
    ├── __init__.py
    ├── some_api.py  # Here I make `from my_lids.utils import my_func` and `from my_lids.exceptions import MyException`
当触发器运行lambda's时,我得到一个错误

Runtime.ImportModuleError: Unable to import module 'lambdas/lambda_handler_1': cannot import name 'my_func' from 'my_lib.errors' (/var/task/my_lib/utils.py)
我不使用lambda中模块utils中的任何函数。我做错了什么? 我将所有代码和需求归档到zip文件中并进行部署。此外,也没有任何
\uuuu pycache\uuuu


谢谢

一个Lambda函数可以包含多个文件

如果仅对该函数使用
utils.py
,则应将其源代码作为该函数的另一个文件

如果是这种情况,则将每个Lambda函数放在其自己的文件夹(而不是单个文件)中,将utils.py添加到要与之一起使用的Lambda的文件夹中。然后使用SAM CLI构建/打包/部署lambda

如果在多个位置使用,则应将其打包为Lambda层

然而,Lambda层是一个很难更新的问题


PS安装SAM ClI时不需要安装Docker,老实说
utils.py
仅在API中使用。我不在任何lambda函数中使用它