elasticsearch-curator,Python,Python 3.x,Aws Lambda,elasticsearch Curator" /> elasticsearch-curator,Python,Python 3.x,Aws Lambda,elasticsearch Curator" />

Python 无法导入模块';lambda_函数';:没有名为';错误';

Python 无法导入模块';lambda_函数';:没有名为';错误';,python,python-3.x,aws-lambda,elasticsearch-curator,Python,Python 3.x,Aws Lambda,elasticsearch Curator,我有一个简单的Python代码,它使用Elasticsearch模块“curator”制作快照。 我已经在本地测试了我的代码,它可以正常工作 现在我想在AWS Lambda中运行它,但出现以下错误: 无法导入模块“lambda_函数”:没有名为“error”的模块 以下是我的行动: 我手动创建了一个Lambda,并给它一个“AISA BasicLambdaExecutionRole”角色。然后,我用我的函数和我用命令安装的依赖项创建了我的包: pip install elasticsearch-

我有一个简单的Python代码,它使用Elasticsearch模块“curator”制作快照。 我已经在本地测试了我的代码,它可以正常工作

现在我想在AWS Lambda中运行它,但出现以下错误:

无法导入模块“lambda_函数”:没有名为“error”的模块

以下是我的行动:

我手动创建了一个Lambda,并给它一个“AISA BasicLambdaExecutionRole”角色。然后,我用我的函数和我用命令安装的依赖项创建了我的包:

pip install elasticsearch-curator -t /<path>/myRepository 
pip安装elasticsearch策展人-t//myRepository
我压缩了内容(不是文件夹)并将其上传到我的Lambda中。 我将处理程序名更改为“lambda_function.lambda_Handler”(我的函数名为“lambda_function.py”)

我错过什么了吗?这是我第一次使用Lambda和Python

我看到了关于此错误的其他问题:

“errorMessage”:“无法导入模块‘lambda_函数’”

但对我来说什么都不管用

编辑:

以下是我的lambda_函数:

from __future__ import print_function
import curator
import time
from curator.exceptions import NoIndices
from elasticsearch import Elasticsearch

def lambda_handler(event, context):



  es = Elasticsearch()

  index_list = curator.IndexList(es)

  index_list.filter_by_regex(kind='prefix', value="logstash-")

  Number = 1

  try:
    while Number <= 3:

        Name="snapshotLmbd_n_"+ str(Number) +""

        curator.Snapshot(index_list, repository="s3-backup", name= Name , wait_for_completion=True).do_action()     
        Number += 1

        print('Just taking a nap ! will be back soon')
        time.sleep(30)

  except KeyboardInterrupt:
        print('My bad ! I interrupted this')
        return
from\uuuuu future\uuuuu导入打印功能
进口馆长
导入时间
从策展人处。例外情况导入无条件
从elasticsearch导入elasticsearch
def lambda_处理程序(事件、上下文):
es=弹性搜索()
索引列表=馆长索引列表(es)
索引列表。按正则表达式(kind='prefix',value=“logstash-”)过滤
数字=1
尝试:

虽然NumberOk,但由于其他内容都正确,请检查python脚本的权限


它必须具有可执行权限(755)

您的
lambda_function.py
中是否有
导入错误的
。不,我不导入错误。我编辑了我的帖子以添加函数。请检查您的python脚本是否具有可执行权限。乔姆755@omuthu这就是问题所在!尽管我将权限设置为755,但在上传到aws后,权限显然丢失了。实际上,我所做的是使用无服务器来完全避免这个问题。你能写下答案让我接受吗?再次感谢你的见解谢谢你。我仍然建议使用serverless来避免所有的麻烦。事实上,@AsmaaM,我刚才在Chromebook上使用Termux的serverless hello world python模板遇到了这个问题,遵循我的教程中的步骤,这可能是我没有想到的平台。模板文件已经创建了600次。将模板的handler.py更改为755为我修复了它。这简直让我发疯,因为它看起来和手动创建的窗口中的一样。这篇评论一部分是为了表示真诚的感谢,另一部分是为了添加一些有用的搜索关键词,以防其他人被类似的问题困住。:)