如何使用python2.7在awslambda中编写helloworld示例?

2024-10-01 11:28:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我完全被AWS中的文档搞糊涂了。在

我尝试了什么

  1. 使用us-west-2地区注册了一个AWS帐户
  2. 创建了一个名为helloworld的Lambda函数

enter image description here

  1. 在内部创建了一个名为hello_world的处理程序。在

enter image description here

  1. 所选操作>;配置测试事件>;所选公用>;Hello World

enter image description here

  1. 按Test,我得到以下错误消息:

    下面的区域显示了函数执行返回的结果。 { “errorMessage”:“模块'helloworld'语法错误” }

enter image description here

以及

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  

enter image description here

我想要什么

我只想成功地执行pythonhelloworld,这样我就知道应该在哪里观察输出以及如何运行脚本。在

更新

我把密码改成

^{pr2}$

而且执行得很好。在

我看到的是:

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

作为第二个param出现的LamdaContext对象到底是什么?在


Tags: 函数gtawsversionlateststarthelloworldms
3条回答

对于python函数:

def helloworld(): print "helloworld"

然后,在配置中,您应该使用“helloworld”作为lambda处理程序。在

将python语法改为

def event_handler(event,context):
    message = "hello{0}".format(event['world'])
return mesaage 

这里的事件总是像字典类型的对象 上下文就是lambda上下文

两个问题:

  1. python函数定义错误

  2. 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中创建处理程序函数时,请使用以下通用语法结构。在

^{pr2}$

在语法中,请注意以下内容:

  • event–AWS Lambda使用此参数将事件数据传递给处理程序。此参数通常为Python dict类型。它也可以是list、str、int、float或NoneType类型。在
  • 上下文–awslambda使用此参数向处理程序提供运行时信息。此参数属于LambdaContext类型。在
  • 处理程序可以选择返回值。返回值的结果取决于调用Lambda函数时使用的调用类型: 如果使用RequestResponse调用类型(同步执行),AWS Lambda将Python函数调用的结果返回给调用Lambda函数的客户机(在对调用请求的HTTP响应中,序列化为JSON)。例如,AWS Lambda控制台使用RequestResponse调用类型,因此当您使用控制台测试调用函数时,控制台将显示返回值。 如果处理程序未返回任何内容,则AWS Lambda将返回null。 如果使用事件调用类型(异步执行),则会丢弃该值。在

相关问题 更多 >