Skip to content
Go back

AWS 知识点 - 无服务器应用程序

| 0 Views Edit page

AWS Serverless 相关知识点。


无服务器服务和事件驱动架构

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

一、无服务器服务和事件驱动架构的例子

无服务器服务和事件驱动架构的例子

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

无服务器服务基本概念


AWS Lambda

一、AWS Lambda 基本概念

AWS Lambda 基本概念

  • Lambda 最长的代码运行时间为 15 分钟

二、AWS Lambda 使用场景

AWS Lambda 使用场景

三、AWS Lambda 函数调用

AWS Lambda 函数调用

  • 同步调用
    • 从 CLI、SDK 或者 API Gateway 触发
  • 异步调用
    • S3SNSCloudWAtch 事件等来源
    • Lambda 函数最多重试 3 次
    • 处理必须是幂等的:不能因为重试导致结果不同
  • 事件源映射
    • Lambda 将进行轮询
    • SQSKinesis 等数据流和 DynamoDB
    • 记录按顺序处理(除了 SQS

      SQS 消息无序。

四、AWS Lambda 函数并发

AWS Lambda 函数并发

  • 默认单 区域 所有函数总并发上限为 1000
  • ⭐ 达到并发上限后,将无法再扩展,会碰到 Rate Exceeded429 TooManyRequestsException 错误

应用程序集成服务 (Application Integration) 概述

一、应用程序集成服务 (Application Integration) 种类

应用程序集成服务 (Application Integration) 种类

二、AWS Step Functions

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

Kinesis vs SQS vs SNS

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


AWS SQS

一、使用 SQS 队列解耦

使用 SQS 队列解耦

二、SQS 队列类型

SQS 队列类型
SQS 队列类型的不同
SQS FIFO 队列特点

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

三、SQS 死信队列 (DLQ, dead-letter queues)

SQS 死信队列样例
SQS 死信队列

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

SQS 延迟队列

  • 在延迟秒数内,消息不可见

五、SQS 短轮询和长轮询 (SQS short and long polling)

SQS 短轮询和长轮询 SQS 短轮询和长轮询的特点


AWS SNS

一、AWS SNS 基本概念

SNS 样例
SNS 基本概念 01
SNS 基本概念 02

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

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


亚马逊 API 网关

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

亚马逊 API 网关所处位置

二、亚马逊 API 网关类型

亚马逊 API 网关类型

三、REST API 架构

REST API 架构

HTTP API 没有上图中的方法请求,而是使用路由,通过路由将请求发送到 AWS Lambda 函数或其他可路由的 HTTP 终端节点。

四、API 网关集成 (API Gateway API integration)

API 网关集成

  • AWS 服务操作只有非代理类型

五、API 网关缓存

API 网关缓存

六、API 网关限流

API 网关限流

  • 限制为每秒 10,000 个请求或 5000 个并发
  • 超过限制后将返回 429 TooManyRequestsException 错误

七、API 网关使用计划 (Usage plans) 和 API 密钥 (API keys)

API 网关使用计划和 API 密钥

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

Edit page