介绍
Lambda 是一种无服务器(Serverless), 而且设计成事件驱动的计算服务器. 简单来说, 你可以将你的 code 上传, 当有事件产生(例如cronjob , 或者S3有新的文件被上传上來) , 你的code 就会在瞬间(零点几秒以內)被叫起來执行. 由于你不用管 Server如何维护, 或者自动扩展之类的事, 所以叫做 Serverless ,這些都被处理了,我們只需写code即可.
测试使用
HelloWorld
AWS Lambda 目前支持 NodeJS,Go,PowerShell,Java,Python以及C#, 以 Python 为例, 這边就是新Function的空白样板, 代码进入点就在 lambda_handle(event,context)这边.
按 Test 即可手动執行, 以下是执行结果:
以上是程序輸出, 最后记录了這程序执行的统计资料, 像是花了 15ms (0.015s) 跑完全程, 这是在一个 128MB 记忆体的小容器執行的, 但最多只用掉了 15MB等等.
既然是 python 3.7 , 如果有中文字符串总担心会有utf-8的问题需要解決, 不过只要加了encoding 语法后, 都很正常.
收费
AWS Lambda 主要是收取两个费用: Request 数量, 以及你使用量(RAM 有多大? 跑了多久?)
1. 请求 :
我们根据您所有函数上的请求总数进行收费。Lambda 会在收到事件通知或调用 (包括来自控制台的测试调用) 时执行函数,每执行一次就计为一次请求。
此后每 100 万个请求 ¥ 1.36 (每个请求 ¥ 0.00000136)
2. 持续时间 :
持续时间从代码开始执行的时间开始算起,到其返回或终止时结束,向上取整到最近的 100ms。价格取决于您给函数分配的内存量。对于所使用的每 GB-秒,您需要支付 0.000113477USD。
这里有不同内存大小每使用 100ms 的大致价格 : https://www.amazonaws.cn/lambda/pricing/
從字面上來看, 小數位這麼多位 ,再加上免費方案的推廣, 可以說非常的便宜. 適合寫一些規模不大,單次執行不會跑太久的小服務.
参考资料
AWS Lambda中国区定价
使用 AWS Lambda 函数的最佳实践
AWS Lambda 介绍
AWS Lambda python 例子
AWS SDK for python