AWS Lambda包部署

时间:2016-03-03 20:30:43

标签: python amazon-web-services aws-lambda

我尝试将python .zip包部署为AWS Lambda

我选择了hello-python足迹。

我使用内联代码创建了第一个lambda,之后我尝试更改为从开发.zip上传。

我使用的包是.zip包含一个名为hello_python.py的文件,其代码与默认的内联代码示例相同,如下所示:

from __future__ import print_function

import json

print('Loading function')


def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))
    print("value1 = " + event['key1'])
    print("value2 = " + event['key2'])
    print("value3 = " + event['key3'])
    return event['key1']  # Echo back the first key value
    #raise Exception('Something went wrong')

点击"保存并测试"后,没有任何反应,但我得到了这个奇怪的红丝带,但没有其他实质性错误信息。如果修改为源,重新打包并再次上传,则日志和运行结果不会显示任何更改。enter image description here

1 个答案:

答案 0 :(得分:6)

Lambda函数需要格式为<FILE-NAME-NO-EXTENSION>.<FUNCTION-NAME>的处理程序。在您的情况下,处理程序设置为lambda_function.lambda_handler,这是AWS Lambda分配的默认值。但是,您已将文件命名为hello_python.py。因此,AWS Lambda正在寻找名为lambda_function.py的python文件并且什么也没找到。

要解决此问题:

  1. 将您的hello_python.py文件重命名为lambda_function.py
  2. 将lambda函数处理程序修改为hello_python.lambda_handler
  3. 你可以在documentation中看到一个如何工作的例子,它们在文件my_handler()中创建一个名为hello_python.py的python函数,并创建一个lambda函数来调用它处理程序hello_python.my_handler