AWS放大并在Python中导入Lambda层导致模块未找到错误

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文件夹中删除了层函

如何导入共享lambda层的资产?接下来,我创建了lambda层,向该层添加了共享代码。将层添加到函数中。现在,在使用图层的lambda函数中,如何使用放置在所创建图层的opt文件夹中的文件?文档中说,您可以在lambda层的opt路径中查找文件。但是如果有多个lambda层呢?如何将选择路径缩小到特定层

编辑

我的新文件夹结构如下。我正试图从Index.py调用文件myClass.py中名为my_utils的公共共享实用程序类,并已在
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()