Python 无法导入模块';lambda_函数';:没有名为';错误';
我有一个简单的Python代码,它使用Elasticsearch模块“curator”制作快照。 我已经在本地测试了我的代码,它可以正常工作 现在我想在AWS Lambda中运行它,但出现以下错误: 无法导入模块“lambda_函数”:没有名为“error”的模块 以下是我的行动: 我手动创建了一个Lambda,并给它一个“AISA BasicLambdaExecutionRole”角色。然后,我用我的函数和我用命令安装的依赖项创建了我的包: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-
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为我修复了它。这简直让我发疯,因为它看起来和手动创建的窗口中的一样。这篇评论一部分是为了表示真诚的感谢,另一部分是为了添加一些有用的搜索关键词,以防其他人被类似的问题困住。:)