购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 创建一个新的函数

一本好的编程图书通常都采用“Hello World”作为入门的例子。但是在AWS Lambda中,开发者所拥有的并不是独立的应用,而是一个接受输入(事件)并选择性地返回结果(当被同步调用时)的函数。

让我们从一个比“Hello World”略微复杂的任务开始:开发一个函数,它会关注事件中的某个名字,并返回“Hello<名字>!”。如果输入事件没有提供名字,则函数返回一个更加通用的问候语“Hello World!”。

为了创建第一个函数,首先要在浏览器中访问AWS的控制台https://console.aws.amazon.com/。登录后,在Compute区域选择Lambda,从顶端菜单的右侧选择AWS Region(通常选择距离你较近的区域来降低网络延时),然后在弹出页面点击“Get Started Now”。如果这不是所选区域中的第一个函数,你不会看到欢迎页面,而会看到一组已经存在函数的代码清单。这种情况下,直接点击“Create a Lambda Function”即可。

为了简化新Lambda函数的创建过程,一些预置的蓝图(blueprint)整合了AWS和其他服务,以及诸如Amazon Alexa、Twilio和Algorithmia等第三方服务(图2-1)。选择“Blank Function”来从头创建一个函数。

图2-1 AWS Lambda允许用户通过预置的“蓝图”快速创建新的函数,在本例中,我们选择从空白的函数开始

接下来需要为新的函数选择一个触发器(图2-2)。触发器是一个事件源,它会触发函数的执行,并把一个事件对象作为输入提供给函数。有关触发器,用户可以有多种选择,其中一些会在这本书中作为例子使用。

例如,选择Amazon API Gateway通过Web API调用或使用AWS IoT来调用函数,从而通过AWS为物联网平台及其各种互联设备创建一个无服务器后端。在目前的例子中,我们直接调用函数,暂时还不使用触发器。选择“Next”。

图2-2 可以为新的函数选择一个触发器,当特定的事件发生时,函数会被执行

现在你已经创建了一个全新的函数(图2-3),我们使用“greetingsOnDemand”作为函数的名字。

图2-3 配置新的函数,从输入函数名称和描述信息开始,选择运行时,输入代码

注意 关于函数名称,AWS Lambda并没有官方命名规范。有时人们使用全小写字母加中划线的方式命名函数,在本书中,我们采用lowerCamelCase的命名规范,把所有单词组合在一起,组成变量的第一个单词的首字母小写,后续其余单词的第一个首字母大写。

函数的描述信息可以是“Returns greetings when you ask for them”。提供一个清晰可读的函数描述是构建多函数复杂应用的好习惯之一,在调用众多函数构建应用或者重构某个已有函数(或仅用其代码)来实现新的目标时,这个习惯能派上大用场。

提示 函数的描述也可以通过AWS的API来读取。在描述内容中包含一些约定,例如输入输出等内容,将有助于实现自动发现函数的功能。

使用AWS Lambda的Web控制台,有三种输入函数代码的方式:

·在控制台界面直接输入和编辑代码。

·从本地上传包含代码和二进制库文件的zip压缩文件。

·从Amazon S3上传包含代码和二进制库文件的zip压缩文件。

你可以在压缩文件中加入你的代码所需要的自定义库或模块。在本书的第三部分你会看到,在用AWS Lambda实现自动部署和持续集成的过程中,通过Amazon S3上传函数是一项相当有趣的功能。

至于函数的运行时(runtime)环境,目前可选的是Node.js 4.3或Python 2.7 。本章中我们提供了基于Node.js 4.3和Python 2.7运行时环境的例子,选择你喜欢的语言进行后端部署即可。

使用Java运行时

为了简化流程,全书并未提供Java 8实例代码,因为Java的代码无法在Lambda Web控制台直接输入,必须在读者本地编译、打包、上传。如果一定要这样做,建议使用Eclipse AWS工具包:https://aws.amazon.com/eclipse。 HlEZYgnNXKOnaiz0NeCZVDx7w4ziJHUJVX7BFdRLtVSNznzO89MtNUlJ/zL7PWUK

点击中间区域
呼出菜单
上一章
目录
下一章
×