因为Lambda 所以Serverless
进化过程
课程章节:https://edu.51cto.com//center/course/lesson/index?id=199646
作用和优势
event --> 胶水 --> server
- 无需维护
- 天然高可用
- 自动扩展
- 按调用付费
- 安全可靠
撰写一个Lambda函数
触发的事件
实验设计
客户按下IoT button触发lamdba函数,Send SMS 给员工。
DynamoDB 管理数据
相较于“关系型数据库”的优势:
- 不需要多表查询
- 适合高频词高并发访问
- 可以无限提高表的读写能力
创建第一个表
记录"顾客请求"的表。
创建第二个表
记录Button对应的区域信息、员工信息。
给表添加一个“项目”,也就是具体内容。
Lambda 访问 DynamoDB Table
当前,需要给Lambda 加上权限去访问 DynamoDB 表。
(1) 查看当前已有的权限。
第一步,AWS Lambda --> 函数 --> 配置 --> 基本信息 --> 现有角色
第二步,IAM服务 --> 角色
(2) 新增“策略”
第一步,IAM页面中,策略 --> 创建策略 --> 策略生成器,添加上“资源名称ARN of 两个表”,两个ARN用“逗号”隔开。
第二步,策略生成结果。可见 Resource 中多了两条。"策略名称”可以自定义。
(3) 策略与角色相关联
第一步,在“角色”中找到对应的Lambda函数。
第二步,附加上新创建的策略。找到策略了名称,再点击“附加策略”即可。
第三步,最后在IAM的角色页面中多了对应的新的一条策略。
(4) 代码添加
第一步,使用put方法处理接收到的request。先定义参数request_params,再写docClient.put 函数。
第二步,测试程序,模拟button摁下后的触发事件。
第三步,查看DynamoDB结果,发现多了一条。
客户案例
Finra 交易合规性检查
每小时峰值可达750亿次。
S3自动出发lambda函数
通过SQS作为缓冲区。
Coca-Cola自助贩卖机
支付请求 --> API Gateway --> Lambda --> 发送支付通知给客户
每月8000万次调用 与 EC2实例基本持平。
HomeAdvisor家装服务
AWS IoT 服务 --> Lambda --> HomeAdvisor API --> customer
用 Python 写 Lambda 函数
比较老的博文,目前的使用方式可以另起一篇。
End.