Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python 2.7在AWS Lambda中编写hello world示例?_Python_Amazon Web Services_Aws Lambda - Fatal编程技术网

如何使用Python 2.7在AWS Lambda中编写hello world示例?

如何使用Python 2.7在AWS Lambda中编写hello world示例?,python,amazon-web-services,aws-lambda,Python,Amazon Web Services,Aws Lambda,我完全被AWS中的文档搞糊涂了 我试过的 使用区域us-west-2注册AWS帐户 创建了一个名为helloworld的Lambda函数 在内部创建了一个名为hello\u world的处理程序 所选操作>配置测试事件>所选公共>Hello World 按Test,我会收到以下错误消息: 下面的区域显示了函数执行返回的结果。 { “errorMessage”:“模块'helloworld'中的语法错误” } 及 我想要的 我只想成功地执行python hello world,这样我就知

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

我试过的
  • 使用区域us-west-2注册AWS帐户
  • 创建了一个名为helloworld的Lambda函数
  • 在内部创建了一个名为
    hello\u world
    的处理程序
  • 所选操作>配置测试事件>所选公共>Hello World
  • 按Test,我会收到以下错误消息:

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

  • 我想要的 我只想成功地执行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
    
    启动请求ID:33bf2a83-ecda-11e5-bdcd-2DE843A18床版本:$LATEST
    {u'key3':u'value3',u'key2':u'value2',u'key1':u'value1'}
    结束请求ID:33bf2a83-ecda-11e5-bdcd-2de843a18bed
    
    显示为第二个参数的LamdaContext对象究竟是什么?

    对于python函数:

    
    def helloworld():
    打印“helloworld”
    

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

    两个问题:

  • python函数定义错误

  • Lambda的主处理程序需要2个参数

  • 答复:

    def hello_world(event_data, lambda_config):
        print "hello world"
    
    有关主处理程序参数的更多信息,请阅读

    摘录:

    在Python中创建处理程序函数时,请使用以下通用语法结构

    def handler_name(event, context): 
        ...
        return some_value
    
    在语法中,请注意以下内容:

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

    将python语法更改为

    def event_handler(event,context):
        message = "hello{0}".format(event['world'])
    return mesaage 
    
    这里的事件总是像字典类型的对象
    上下文是lambda上下文

    你的回答帮助我让它运行起来。现在的问题是,我的主处理程序需要接受2个参数。不确定原因。因为lambda处理程序需要两个参数,例如
    def lambda_处理程序(事件,上下文):也许您可以阅读aws lambda的文档了解更多信息。
    
    def event_handler(event,context):
        message = "hello{0}".format(event['world'])
    return mesaage