AWS放大并在Python中导入Lambda层导致模块未找到错误
如何导入共享lambda层的资产?接下来,我创建了lambda层,向该层添加了共享代码。将层添加到函数中。现在,在使用图层的lambda函数中,如何使用放置在所创建图层的opt文件夹中的文件?文档中说,您可以在lambda层的opt路径中查找文件。但是如果有多个lambda层呢?如何将选择路径缩小到特定层 编辑 我的新文件夹结构如下。我正试图从Index.py调用文件myClass.py中名为my_utils的公共共享实用程序类,并已在AWS放大并在Python中导入Lambda层导致模块未找到错误,python,aws-lambda,aws-amplify,aws-lambda-layers,Python,Aws Lambda,Aws Amplify,Aws Lambda Layers,如何导入共享lambda层的资产?接下来,我创建了lambda层,向该层添加了共享代码。将层添加到函数中。现在,在使用图层的lambda函数中,如何使用放置在所创建图层的opt文件夹中的文件?文档中说,您可以在lambda层的opt路径中查找文件。但是如果有多个lambda层呢?如何将选择路径缩小到特定层 编辑 我的新文件夹结构如下。我正试图从Index.py调用文件myClass.py中名为my_utils的公共共享实用程序类,并已在site packages文件夹以及opt文件夹中删除了层函
site packages
文件夹以及opt
文件夹中删除了层函数文件
app-root
-amplify
-backend
-function
-myLayer
-lib\python\lib\python3.8\site-packages\myClass.py
-opt\myClass.py
-amplify
-backend
-function
-myFunction
-Index.py
下面是我在调用处理程序Index.py中尝试导入的各种组合
from myClass import my_utils
import myClass
import my_utils
通过上述安排和导入语句,我仍然从有关lambda层的文档中获得了一个
modulenofounderror
图层按指定的顺序应用,合并所有同名文件夹
导入此处显示的python层:
第1层
def foo():
print('I am from layer 1')
return 1
第二层
def bar():
print('I am from layer 2')
return 1
然后像这样从层中导入函数。他们在哪里并不重要
实际功能
import foo
import bar
为了使导入正常工作,请确保将层放在opt/python
目录中并压缩内容。我是从以下方面得到这一信息的:
注:
不同层的顺序并不重要,除非其中有具有相同功能名称的层。就像两个层导出相同的函数:
foo()
,那么顺序将决定在实际函数中导入哪一个。来自关于lambda层的文档
图层按指定的顺序应用,合并所有同名文件夹
导入此处显示的python层:
第1层
def foo():
print('I am from layer 1')
return 1
第二层
def bar():
print('I am from layer 2')
return 1
然后像这样从层中导入函数。他们在哪里并不重要
实际功能
import foo
import bar
为了使导入正常工作,请确保将层放在opt/python
目录中并压缩内容。我是从以下方面得到这一信息的:
注:
不同层的顺序并不重要,除非其中有具有相同功能名称的层。就像两个层导出同一个函数:
foo()
,那么顺序将决定在实际函数中导入哪一个。谢谢你的回复。这似乎是在纯lambda的上下文中创建的,而不是在AWS Amplify创建函数时创建的。使用Amplify,层函数将在另一个文件夹中创建,该文件夹与包含调用函数的文件夹处于同一级别。我更新了问题,提供了更多详细信息,以显示有问题的文件夹结构。您上面的链接有一个关于通过Amplify cli更改顺序的部分,因此应该适用。再次感谢。为了简单起见,我现在只保留了一层函数,在检查了您发送的链接后,我对设置进行了一些调整,但仍然得到了相同的错误。我遇到了相同的问题,并在“amplify/backend/function/layerfc/opt/python/lib/python3.8/site packages/testi.py”中使用了层python文件导入过程如下所示:将testii作为tf导入,执行函数:tf.foo()Hi。谢谢你的回复。这似乎是在纯lambda的上下文中创建的,而不是在AWS Amplify创建函数时创建的。使用Amplify,层函数将在另一个文件夹中创建,该文件夹与包含调用函数的文件夹处于同一级别。我更新了问题,提供了更多详细信息,以显示有问题的文件夹结构。您上面的链接有一个关于通过Amplify cli更改顺序的部分,因此应该适用。再次感谢。为了简单起见,我现在只保留了一层函数,在检查了您发送的链接后,我对设置进行了一些调整,但仍然得到了相同的错误。我遇到了相同的问题,并在“amplify/backend/function/layerfc/opt/python/lib/python3.8/site packages/testi.py”中使用了层python文件导入过程如下所示:将testii作为tf导入,执行函数:tf.foo()