AWS Serverless 相关知识点。
无服务器服务和事件驱动架构
事件驱动型架构 (EDA, Event-driven architecture):事件驱动架构是一种松耦合、分布式的驱动架构,收集到某应用产生的事件后实时对事件采取必要的处理后路由至下游系统,无需等待系统响应。
一、无服务器服务和事件驱动架构的例子

二、无服务器服务基本概念

AWS Lambda
一、AWS Lambda 基本概念

Lambda最长的代码运行时间为 15 分钟
二、AWS Lambda 使用场景

三、AWS Lambda 函数调用

- 同步调用
- 从 CLI、SDK 或者 API Gateway 触发
- 异步调用
S3、SNS和CloudWAtch事件等来源Lambda函数最多重试 3 次- 处理必须是幂等的:不能因为重试导致结果不同
- 事件源映射
- ⭐
Lambda将进行轮询 SQS、Kinesis等数据流和DynamoDB流- 记录按顺序处理(除了
SQS)SQS消息无序。
- ⭐
四、AWS Lambda 函数并发

- ⭐ 默认单
区域所有函数总并发上限为 1000 - ⭐ 达到并发上限后,将无法再扩展,会碰到
Rate Exceeded或429TooManyRequestsException错误
应用程序集成服务 (Application Integration) 概述
一、应用程序集成服务 (Application Integration) 种类

二、AWS Step Functions

- 创建工作流(也称为状态机)来构建分布式应用程序、自动化流程、协调微服务以及创建数据和机器学习管道
- 可视化、编辑和调试应用程序的工作流程
- 检查工作流程中每个步骤的状态,以确保应用程序按预期顺序运行
三、AWS SWF (Simple Workflow Service)
- 可以理解为
Step Functions的简单版本 - ⭐ 适用于需要人工处理一部分工作的工作流
四、Amazon MQ
- ⭐ 适用于本身就适用 Apache Active MQ 或 RabbitMQ 的客户迁移到 AWS
考题中涉及到“行业协议”、“API”和“将队列迁移到 AWS”的术语,则需要注意
Amazon MQ。
五、⭐ Kinesis vs SQS vs SNS

扇出(Fanout):消息先经过 SNS 队列分发给订阅者,再由订阅者放入各自 SQS 队列。
AWS SQS
一、使用 SQS 队列解耦

二、SQS 队列类型



- 标准队列:无法保证消息顺序
- FIFO 队列:消息先进先出
Message group ID:属于同一消息组的消息会严格按照顺序先进先出。Message deduplication ID:特定时间内用以进行消息去重的令牌,确保消息只得到一次处理。
三、SQS 死信队列 (DLQ, dead-letter queues)


四、SQS 延迟队列 (SQS delay queues)

- 在延迟秒数内,消息不可见
五、SQS 短轮询和长轮询 (SQS short and long polling)

AWS SNS
一、AWS SNS 基本概念



二、AWS SNS + AWS SQS Fan-Out(扇出)

亚马逊 API 网关
一、亚马逊 API 网关所处位置

二、亚马逊 API 网关类型

三、REST API 架构

HTTP API 没有上图中的方法请求,而是使用路由,通过路由将请求发送到
AWS Lambda函数或其他可路由的 HTTP 终端节点。
四、API 网关集成 (API Gateway API integration)

- ⭐ AWS 服务操作只有非代理类型
五、API 网关缓存

六、API 网关限流

- 限制为每秒
10,000个请求或5000个并发 - 超过限制后将返回
429TooManyRequestsException错误
七、API 网关使用计划 (Usage plans) 和 API 密钥 (API keys)

- 区分普通用户和高级用户时可以采取
使用计划对访问阈值进行分开限制,和配置到不同的阶段或终端节点 - 使用
API 密钥区分普通用户和高级用户