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 教程和开发者文章!