无法导入模块' lambda_function':没有名为'错误的模块'

时间:2018-03-14 11:57:16

标签: python python-3.x aws-lambda elasticsearch-curator

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

现在我想在AWS Lambda中运行它,但是我有这个错误:

  

无法导入模块' lambda_function':没有名为'错误的模块'

以下是我的进展:

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

pip install elasticsearch-curator -t /<path>/myRepository 

我压缩了内容(不是文件夹)并将其上传到我的Lambda中。 我将Handler名称更改为&#34; lambda_function.lambda_handler&#34; (我的函数的名字是&#34; lambda_function.py&#34;)。

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

我已经看到了有关此错误的其他问题:

  

&#34; errorMessage&#34;:&#34;无法导入模块&#39; lambda_function&#39;&#34;

但对我来说没有任何作用。

编辑:

这是我的lambda_function:

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

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

好的,因为你还有其他一切正确,请检查python脚本的权限。

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