我完全被AWS中的文档搞糊涂了。
hello_world
的处理程序。按测试,我收到以下错误消息:
下面的区域显示了函数执行返回的结果。 { “errorMessage”:“模块'helloworld'中的语法错误” }
和
START RequestId: f71b8c46-ecc8-11e5-91b6-c55c85fd12cb Version: $LATEST
Syntax error in module 'helloworld': invalid syntax (helloworld.py, line 1)
END RequestId: f71b8c46-ecc8-11e5-91b6-c55c85fd12cb
REPORT RequestId: f71b8c46-ecc8-11e5-91b6-c55c85fd12cb Duration: 0.29 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 10 MB
我只想成功执行python hello world,所以我知道我应该在哪里观察输出以及如何运行脚本。
我已将代码更改为
def print_something(entry, second_entry):
print str(entry)
print str(second_entry)
return str(second_entry)
并且执行得当。
这就是我所看到的:
START RequestId: 33bf2a83-ecda-11e5-bdcd-2de843a18bed Version: $LATEST
{u'key3': u'value3', u'key2': u'value2', u'key1': u'value1'}
<__main__.LambdaContext object at 0x7f66d1848990>
END RequestId: 33bf2a83-ecda-11e5-bdcd-2de843a18bed
究竟是什么LamdaContext对象出现在第二个参数中?
答案 0 :(得分:2)
两个问题:
错误地定义了python函数
Lambda的主处理程序需要2个参数
答案:
def hello_world(event_data, lambda_config):
print "hello world"
有关主处理程序参数的更多信息,请阅读http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html
摘录:
在Python中创建处理函数时,请使用以下一般语法结构。
def handler_name(event, context):
...
return some_value
在语法中,请注意以下内容:
答案 1 :(得分:1)
将您的python语法更改为
def event_handler(event,context):
message = "hello{0}".format(event['world'])
return mesaage
这里的事件总是像字典类型对象 和Context是lambda context
答案 2 :(得分:0)
对于python函数:
def helloworld():
print "helloworld"
然后,在配置中你应该使用“helloworld”作为lambda处理程序。