现在函数的创建工作已经完成了,我们可以直接从Web控制台进行测试。在控制台的左上角点击测试按钮,然后需要为所有的测试准备一个测试事件(图2-5)。当调用Lambda函数时,使用JSON格式表述的事件对象信息会被实际的函数运行时转化为它们各自的原生对象或类型,如JavaScirpt对象或Python中的Dict类型。
图2-5 从Web控制台快速测试函数,先使用JSON格式配置测试用的事件
测试界面的下拉菜单有一些样板的事件,这些事件在订阅了如Amazon S3或Amazon DynamoDB等标准资源时会被接收到。我们的函数使用自定义格式的事件,所以这些样板事件模版暂时用不到。你需要编辑事件的信息,为函数提供name作为输入。
可以把John更改为你自己的名字。
点击窗口中的“Save and test”,函数会使用你所编辑的事件信息作为输入而被调用。执行的结果会显示在窗口页面的底部(如图2-6,你需要向下滚动页面才能看到)。显示的结果包括了函数的返回值、日志和执行情况的汇总:如实际的执行时间,计费的时间(以100ms为单位),内存使用量。所有这些信息同时也以原始日志的方式被输出。
图2-6 Web控制台显示的测试执行结果,包括执行信息汇总和原始日志输出
如果一切正常,你将会在执行结果中看到“Hello John!”(或你自己的名字)。现在,你已经成功执行了第一个Lambda函数!
警告
如果函数返回报错,请确保你复制的代码是完整的。检查代码最后一行的内容是否正确,Node.js是callback(),Python是一个返回声明。
尝试多次执行这个函数,你会注意到函数的第一次执行耗时较之后的执行都长一些,这在实际的生产环境中并不会是一个问题,因为函数通常都会被多次执行。
提示
如果你的函数已经被AWS Lambda执行过,AWS可以释放所有的执行环境,这样再次执行这个函数会相比之前速度有所减慢。如果为了保障给用户的服务水平协议(SLA)而始终需要函数以较短的时间被执行,你可以选用定时执行(例如每隔五分钟)的harmless参数,这样函数所做的数据存储不会被修改,环境始终处于可用的状态。
为了测试在没有name信息情况下函数的执行结果,我们需要修改测试用的事件信息。在Actions菜单,选择“Configure test event”并从JSON中删除name字段,这样事件就是空的了:
保存并使用这个空事件进行测试,检查页面底部显示的输出信息:当无name信息输入给函数时,函数的逻辑(见代码清单2-1和代码清单2-2)会用World替代名字,现在输出的内容是“Hello World!”。恭喜!你完成了每一本编程图书都应该提供的Hello World例子!