AWS Lambda包部署

AWS Lambda包部署

问题描述:

我试图部署一个Python的.zip包作为一个AWS LambdaAWS Lambda包部署

我选择hello-python Footprint。

我使用内联代码创建了第一个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

+0

CloudWatch Logs中是否显示任何内容? – James

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

你可以看到这是如何工作的documentation为例他们在文件hello_python.py内创建了一个名为my_handler()的python函数,并且它们创建了一个lambda函数来用处理函数调用它hello_python.my_handler