[AWS] 04 - Serverless & Lambda

因为 Lambda 所以 Serverless

一、是什么

  • 进化过程

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

 

  • 作用和优势

event --> 胶水 --> server

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

 

二、需求场景

  • 触发的事件

这是一个IOT的例子,用来学习实践。

 

  • “一键呼叫” 项目

(1) 客户按下IoT button触发lamdba函数,

(2) Send SMS 给员工。

 

 

三、Lambda函数配置实操

如下,一个 node.js 编写的 Lambda 函数。

 

  • 代码

[Python的demo写法],主要是对两个参数的理解。

def lambda_handler(event, context):
    print("Fargate Lambda Triggered!")
    
    print(str(event))
    
    try:
        for record in event["Records"]:
            reqBody = record['body']
            dictBody = ast.literal_eval(reqBody)
... ...

 

  • 配置

分配内存大小等。

 

  • 触发器

 

 

四、DynamoDB 管理数据

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

(a) 不需要多表查询

(b) 适合高频词高并发访问

(c) 可以无限提高表的读写能力

 

  • 增加两张表

[创建第一个表]

记录"顾客请求"的表。

 

[创建第二个表]

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

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

 

  • 表的策略设置(设权)

[进入策略生成器]

拷贝“表的资源名称”:ARN。

 

粘贴于此。

 

  • 策略 添加到 角色上(放权)

找到Lambda函数对应的“角色”,接下来增强这个角色的权限,使之有操作"表”的权限。

在其上,“附加策略”。

 

  • 调用这两张表

[代码添加]

第(1)步,先定义参数 request_params,再通过 docClient.put 函数写入表中。

 

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

 

第(3)步,查看DynamoDB结果,发现多了一条

手机端随后得到消息通知 by SNS.

 

 

客户案例

一、Finra 交易合规性检查

每小时峰值可达750亿次。

S3自动触发lambda函数

通过SQS作为缓冲区。

 

二、Coca-Cola自助贩卖机

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

每月8000万次调用 与 EC2实例基本持平。(每秒35个requests)

 

三、HomeAdvisor家装服务

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

 

End.

posted @ 2019-08-14 21:20  郝壹贰叁  阅读(536)  评论(0编辑  收藏  举报