因为Lambda 所以Serverless

进化过程

课程章节:https://edu.51cto.com//center/course/lesson/index?id=199646

[AWS] Serverless & Lambda-LMLPHP

作用和优势

event --> 胶水 --> server

  • 无需维护
  • 天然高可用
  • 自动扩展
  • 按调用付费
  • 安全可靠

撰写一个Lambda函数

触发的事件

[AWS] Serverless & Lambda-LMLPHP

实验设计

客户按下IoT button触发lamdba函数,Send SMS 给员工。

[AWS] Serverless & Lambda-LMLPHP

DynamoDB 管理数据

相较于“关系型数据库”的优势:

  • 不需要多表查询
  • 适合高频词高并发访问
  • 可以无限提高表的读写能力

创建第一个表

记录"顾客请求"的表。

[AWS] Serverless & Lambda-LMLPHP

创建第二个表

记录Button对应的区域信息、员工信息。

[AWS] Serverless & Lambda-LMLPHP

给表添加一个“项目”,也就是具体内容。

[AWS] Serverless & Lambda-LMLPHP

Lambda 访问 DynamoDB Table

当前,需要给Lambda 加上权限去访问 DynamoDB 表。

(1) 查看当前已有的权限。

第一步,AWS Lambda --> 函数 --> 配置 --> 基本信息 --> 现有角色

[AWS] Serverless & Lambda-LMLPHP

第二步,IAM服务 --> 角色

[AWS] Serverless & Lambda-LMLPHP

(2) 新增“策略”

第一步,IAM页面中,策略 --> 创建策略 --> 策略生成器,添加上“资源名称ARN of 两个表”,两个ARN用“逗号”隔开。

[AWS] Serverless & Lambda-LMLPHP

第二步,策略生成结果。可见 Resource 中多了两条。"策略名称”可以自定义。

[AWS] Serverless & Lambda-LMLPHP

(3) 策略与角色相关联

第一步,在“角色”中找到对应的Lambda函数。

[AWS] Serverless & Lambda-LMLPHP

第二步,附加上新创建的策略。找到策略了名称,再点击“附加策略”即可。

[AWS] Serverless & Lambda-LMLPHP

第三步,最后在IAM的角色页面中多了对应的新的一条策略。

[AWS] Serverless & Lambda-LMLPHP

(4) 代码添加

第一步,使用put方法处理接收到的request。先定义参数request_params,再写docClient.put 函数。

[AWS] Serverless & Lambda-LMLPHP

第二步,测试程序,模拟button摁下后的触发事件。

[AWS] Serverless & Lambda-LMLPHP

[AWS] Serverless & Lambda-LMLPHP

第三步,查看DynamoDB结果,发现多了一条。

[AWS] Serverless & Lambda-LMLPHP

客户案例

Finra 交易合规性检查

每小时峰值可达750亿次。

S3自动出发lambda函数

通过SQS作为缓冲区。

Coca-Cola自助贩卖机

支付请求 --> API Gateway --> Lambda --> 发送支付通知给客户

每月8000万次调用 与 EC2实例基本持平。

[AWS] Serverless & Lambda-LMLPHP

HomeAdvisor家装服务

AWS IoT 服务 --> Lambda --> HomeAdvisor API --> customer

用 Python 写 Lambda 函数

Ref:尝试 AWS Lambda for Python

比较老的博文,目前的使用方式可以另起一篇。

End.

05-28 07:42