AWS Lambda函数是不可思议的! 它们是托管在亚马逊网络服务上的函数,可以以许多不同的方式触发。
其中最好的部分是,您只需为Lambda函数运行的时间付费。有什么东西一小时才运行一次,而且只需要2秒钟?您每天只需支付48秒的费用! 这与运行一个24/7的AWS EC2实例或你自己的私有服务器相比,简直太疯狂了。
今天我们将创建一个Lambda函数,并看看使用代码的三种最佳方式。
创建一个Lambda函数
一旦你设置好了AWS账户,有几种方法可以创建一个新的Lambda函数。我们将使用 AWS Console。
AWS 控制台
在AWS控制台中,你可以在服务下找到AWS Lambda,它可以带你进入Lambda控制台。
如果这是您的第一个Lambda函数,您将看到的就是这个。点击创建一个函数按钮,开始设置您的第一个函数。
您将最终进入设置页面,在这里您可以配置函数的一些方面(名称、运行时、角色)。你可以从Blueprints或Serverless Application Repos中创建一个Lambda,但在这个例子中,我们将从头开始Author它。
输入你的函数名称(这必须是你的用户或子账户的唯一名称),选择你的Runtime(我们将使用Node.js 8.10),并选择一个角色。
如果你还没有,你必须创建一个新的角色。从模板中创建一个,你可以让政策模板空白。
编写你的Lambda函数代码
使用Lambdas的一大优势是,你可以选择如何编写和编辑它们。有三种主要方式可以做到这一点
- Lambda控制台
- Cloud9
- 在你的本地机器上
我将介绍这三种方法,并讨论它们各自的优缺点。
方法一:Lambda控制台
这是你创建函数时被发送到的屏幕。你会看到有很多东西在进行。我们现在关心的是函数代码部分,大约在一半处。
在这里我们有一个基本的编辑器。我相信它是基于Cloud 9 IDE的,对于简单的Lambda函数来说非常好用。你可以看到下面的处理程序是一个异步函数,因为我选择使用Node 8.10。如果您喜欢回调,那么Node 6.10就是您的运行时。
优势
- 这是一个不错的编辑器。
- 你可以通过AWS控制台从任何计算机访问它。
缺点
- 它似乎不是100%稳定。有时它不允许你保存,所以你必须将你所有的工作复制到本地文件,重新加载页面,然后将你的工作复制回来。我希望这个问题能尽快得到解决
- 它没有一个终端。这意味着你不能单独使用这种方法使用NPM安装包。
方法二:Cloud9编辑器
亚马逊最近收购了一个在线开发平台Cloud9。它似乎运行一个非常基本的Ubuntu版本,与AWS平台的其他部分集成在一起。
在AWS控制台中搜索Cloud9,进入页面并选择Create environment_._从这里你给你的环境起个名字,然后进入下一步。
在这里,你可以选择你想在什么上运行这个环境。最棒的是,t2.micro是免费层的,所以如果你是免费层,你可以使用这个方法而不被收取任何费用。我从来没有需要比t2.micro更强大的东西。
从这里继续往前走,你将最终进入你的新Cloud9环境!
最酷的是,您可以从Cloud9环境内部访问您的所有Lambda函数。点击AWS资源,在远程函数下,您会发现您所有的函数。点击您要编辑的Lambda函数,然后点击上面的下载图标,将其导入到您的环境中。
完成后,就像你在本地工作一样。
一旦你完成了,只需从本地列表中选择你一直在做的功能,然后点击上传按钮。在几秒钟内,它就会带着你所有的修改上线。
优势
- 同样,这是所有的远程,所以你不需要担心忘记提交你的工作,或保存到记忆棒,如果你在多台机器上工作。
- 获取你的函数并上传它们是超级简单的。这是目前这种方法最棒的一点。
- 你现在有了一个集成的终端,允许你安装npm包,并使用终端做其他一切你想做的事情。
缺点
- 它仍然存在Lambda编辑器一样的稳定性问题。我曾多次想保存函数,但无法保存,只能复制到本地,刷新,再重新复制到云9。几次之后,我放弃了,转到本地编辑。
方法3:本地编辑
这个我就不一样了,我会把优缺点列出来,然后告诉你如何让它变得更好。
优势
- 本地编辑是大多数开发者的工作方式。我们可以使用我们最喜欢的IDE,扩展和颜色方案。
- 它是稳定的(只要你的电脑是稳定的)。
缺点
- 没有花哨的按钮来获取和上传你的作品到AWS。
- 你的作品是本地的,所以有多个用户或只是在多个设备上工作是比较复杂的。
本地编辑技巧
因为这种方法的优点是如此吸引人(或者说其他方法的缺点是如此骇人听闻),我们将利用一些基本的变通方法。设置我们需要的所有东西应该需要15分钟左右!
AWS CLI
要将我们的工作上传到AWS,我们可以使用AWS CLI。这允许我们将一个压缩文件上传到我们的AWS帐户,填充给定的Lambda。
要做到这一点,我们首先需要设置AWS CLI。你可以使用本教程或在终端中输入npm install -g aws-cli
来安装它。现在,我们需要为我们的CLI设置一个用户,以便作为用户登录。
在IAM管理中,点击添加用户_,_给用户起个名字,然后选择程序访问_._这将允许我们远程充当用户。
在权限界面,选择直接附加现有策略,然后选择AdministatorAccess_._这将让你通过CLI做任何你想做的事情。如果你想的话,你可以对这个用户设置更严格的策略,或者如果这是给其他人访问的。
在你最终被显示你的访问密钥之前,还有一个屏幕。复制你的访问密钥,打开一个终端。运行命令aws configure
,它会要求你提供4个东西。
AWS访问密钥ID【无】。"你的访问密钥ID"
AWS秘密访问密钥【无】。"您的秘密访问密钥"
默认区域名称[eu-west-1]。
默认输出格式[json]。
前两个在用户创建的最后一页找到,后面两个可以留为默认,或者改成任何你想要的格式。
使用AWS CLI
现在我们已经设置好了CLI,我们可以用它来让我们的生活变得更简单。如果你有一个文件夹,里面存储了一个Lambda函数,我们可以运行一些简单的命令将其上传到AWS。
cd MyLambdaFunction
rm index.zip
zip -X -r ./index.zip *。
aws lambda update-function-code(更新功能代码)
--function-name MyLambdaFunction(函数名称)。
--zip-file fileb://index.zip
cd .
AWS CLI构建脚本
这是很好的,但是每次你想上传一个新的Lambda版本的时候,把这些都打出来会变得很烦。所以我们将使用一个构建脚本。
为了让这个脚本工作,你需要有一个这样的文件夹结构。每个Lambda都有一个文件夹,里面有相关的文件和一个region.txt文件。
这个脚本不仅运行基本的AWS CLI命令,而且还做额外的检查,运行npm install
,并回传出进度的细节。
这可能看起来像一个复杂的脚本,但它可以很容易地被分解。前32行移动到Lambda函数的文件夹中,运行npm install
并检查AWS CLI是否已安装。第38行对文件夹进行压缩,除了某些文件,第42行上传压缩文件。
现在你需要做的就是导航到Lambdas函数所在的主文件夹,然后运行 "npm install"。
./build.sh example-lambda
这个脚本可以被修改和扩展到包括特定区域的上传,批量上传多个Lambda函数或Git集成。
Git
读到这篇文章的大多数人都会在日常使用Git。这是有原因的:它让生活更简单。
为您的所有 Lambda 函数建立一个 Git 仓库,是您与开发团队合作或独自在多台机器上工作的好方法。
总结
常见的编辑Lambda函数的方法有三种:在Lambda控制台、云9和本地。
这三种方法各有优缺点,但我个人认为最好的选择是在本地编写函数并使用部署脚本进行部署。
如果你觉得这篇文章有用,那就给它一些掌声,并关注我,获取更多AWS教程和开发者文章!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。