Amazon Serveless:lambda、Dynamo DB、Api gateway Flashcards

(32 cards)

1
Q

AWS Lambda是什么?

A

AWS Lambda是一项无服务器(serverless)计算服务,允许您在无需预置或管理服务器的情况下运行代码 [1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

AWS Lambda的主要优势有哪些?

A

主要优势包括:\n- 易于定价:按请求和计算时间付费,提供免费套餐 [3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Lambda函数的调用类型有哪些?

A

主要有两种调用类型:\n- 同步调用(Synchronous Invocations):客户端等待结果返回,例如通过CLI、SDK、API Gateway或Application Load Balancer调用 [7-9]。\n- 异步调用(Asynchronous Invocations):事件被放置在事件队列中,Lambda会进行错误重试,但不会立即返回结果给调用方,例如S3事件、SNS消息、CloudWatch Events/EventBridge触发 [10-12]。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

在Lambda函数中,如何处理错误和失败事件?

A

对于异步调用,Lambda会自动重试(总共3次,间隔递增),如果多次重试后仍失败,事件可以被发送到死信队列(Dead-Letter Queue - DLQ)(SQS或SNS)进行后续处理和调试 [10

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Lambda函数的并发性(Concurrency)限流(Throttling)是如何工作的?

A

Lambda函数默认有1000个并发执行的限制 [15]。当请求超过此限制时,同步调用会返回429限流错误,异步调用会重新排队并自动重试 [15

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Lambda函数如何访问VPC内的私有资源,例如RDS数据库?

A

默认情况下,Lambda函数运行在AWS拥有的VPC中,无法直接访问您VPC内的私有资源 [19]。要访问VPC内的私有资源,您需要将Lambda函数配置到您的VPC中,指定VPC ID子网安全组 [19-21]。Lambda将会在您的子网中创建一个弹性网络接口(ENI)来建立连接 [21]。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Lambda函数部署到VPC后,如何访问互联网?

A

将Lambda函数部署到VPC的私有子网中,需要配置NAT网关(NAT Gateway)或NAT实例才能访问互联网 [21

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Lambda函数的执行上下文(Execution Context)/tmp目录的作用是什么?

A

执行上下文是一个临时运行时环境,用于初始化函数外部的依赖项(如数据库连接、SDK客户端),并在后续调用中被重用以减少初始化时间 [23]。/tmp目录是函数执行时的临时存储空间,最大10GB,其内容在执行上下文冻结时会保留,可用作瞬态缓存 [24

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

如何管理Lambda函数的代码依赖项和运行时环境?

A

对于大型或复杂的依赖项,可以使用Lambda层(Lambda Layers)来外部化依赖项,实现代码重用 [26-29]。还可以使用容器镜像(Container Images)来部署Lambda函数,支持高达10GB的镜像,并能打包复杂的依赖项 [30-34]。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Lambda函数的版本(Versions)别名(Aliases)有何作用?

A

版本是Lambda函数代码和配置的不可变快照 [34-36]。别名是指向特定Lambda函数版本的指针,可用于实现金丝雀部署(Canary deployment)或蓝/绿部署,通过权重将流量分配给不同版本 [35

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Lambda函数的函数URL(Function URL)有何用途?

A

Lambda函数URL是为Lambda函数提供的专用HTTP(S)端点 [39]。它提供一个唯一的URL,可以直接从浏览器或HTTP客户端调用Lambda函数,无需API Gateway或其他代理 [39]。它支持资源策略CORS配置 [39

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

如何使用AWS SAM(Serverless Application Model)简化Lambda应用的开发和部署?

A

AWS SAM是一个用于构建、部署和运行无服务器应用的框架 [20

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Amazon DynamoDB是什么?

A

Amazon DynamoDB是一个全托管高可用NoSQL数据库服务,提供跨多个可用区的复制 [49]。它能够扩展到海量工作负载,支持每秒数百万次请求和数百万TB的存储 [49]。

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

DynamoDB的主键(Primary Key)类型有哪些?

A

主键有两种类型:\n- 分区键(Partition Key):单一属性,必须是唯一的,且数据分布要多样化以避免热点问题 [26

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

DynamoDB的读/写容量模式(Read/Write Capacity Modes)有哪些?

A

两种模式:\n- 预置模式(Provisioned Mode):您需指定每秒读写容量单位(RCU/WCU),需提前规划容量。支持自动扩缩(Auto-scaling) [26

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

DynamoDB中的RCU(Read Capacity Unit)WCU(Write Capacity Unit)如何计算?

A

WCU:1 WCU代表每秒对大小不超过1KB的项执行一次写入。超过1KB的项会消耗更多WCU,不足1KB按1KB计 [53]。\n- RCU:1 RCU代表每秒对大小不超过4KB的项执行一次强一致性读,或两次最终一致性读。超过4KB的项会消耗更多RCU,不足4KB按4KB计 [55

17
Q

DynamoDB的数据一致性模型(Consistency Models)有哪些?

A

\n- 最终一致性读(Eventually Consistent Reads):默认模式,读取数据可能无法立即反映最近的写入,但通常在几毫秒内保持一致 [26

18
Q

如何处理DynamoDB的热点键(Hot Keys)热点分区(Hot Partitions)问题?

A

热点键是指对单个分区键的读写操作过多导致限流 [58]。热点分区是由于分区键设计不当导致数据分布不均 [56

19
Q

DynamoDB的条件写入(Conditional Writes)有什么作用?

A

条件写入允许您在执行PutItemUpdateItemDeleteItem等写入操作时,指定一个条件表达式 [26

20
Q

DynamoDB Streams是什么,它有什么用?

A

DynamoDB Streams是DynamoDB表项级别修改的有序流(创建、更新、删除)[26

21
Q

DynamoDB的Time To Live (TTL)功能有什么作用?

A

TTL允许您为DynamoDB表中的项定义一个过期时间戳,DynamoDB会在该时间戳过后自动删除这些项 [26

22
Q

DynamoDB Accelerator (DAX)的主要优势和用途是什么?

A

DAX是DynamoDB的全托管、高可用内存缓存服务 [26

23
Q

Amazon API Gateway是什么,它能提供哪些主要功能?

A

Amazon API Gateway是一项全托管的服务,可以帮助开发者构建、发布、维护、监控和保护任意规模的API [69]。它支持RESTful API和WebSocket API [69]。主要功能包括:\n- API版本管理(v1

24
Q

API Gateway支持哪些后端集成类型(Integration Types)?

A

API Gateway支持多种后端集成类型:\n- Lambda函数集成(Lambda Function Integration):将API请求代理到Lambda函数 [81]。\n- HTTP集成(HTTP Integration):将API请求代理到任何HTTP后端,如EC2实例、ALB或公共Web服务 [81]。\n- AWS服务集成(AWS Service Integration):直接调用其他AWS服务的API,如Kinesis、SQS、Step Functions [81

25
API Gateway的**端点类型(Endpoint Types)**有哪些?
API Gateway支持三种端点类型:\n- **边缘优化型(Edge-Optimized)**:默认类型,请求通过CloudFront边缘站点路由,适用于全球客户端,提高延迟 [82]。\n- **区域型(Regional)**:适用于API客户端位于同一AWS区域内的场景 [71]。\n- **私有型(Private)**:只能从您的VPC内部通过**接口VPC端点(interface VPC endpoint)**访问 [71]。
26
API Gateway如何实现**请求/响应的数据转换(Data Transformations)**和**验证(Validation)**?
**数据转换**:使用**映射模板(Mapping Templates)**,通过Apache Velocity Template Language (VTL) 来修改请求或响应的JSON/XML体、查询字符串参数、头部等 [20
27
API Gateway的**部署阶段(Deployment Stages)**有何作用?
API Gateway的更改需要**部署**到特定的**阶段**才能生效 [35
28
API Gateway如何结合**阶段变量(Stage Variables)**和Lambda**别名(Aliases)**实现动态配置和部署?
**阶段变量**允许您为API Gateway阶段定义类似环境变量的键值对 [41
29
API Gateway如何实现**金丝雀部署(Canary Deployment)**?
API Gateway允许您为API阶段启用**金丝雀部署** [41
30
API Gateway中的**WebSocket API**有何特点?
WebSocket API支持客户端和服务器之间的**双向实时交互** [69
31
API Gateway的API请求缓存是如何工作的?
API Gateway可以**缓存**API响应,从而减少对后端服务的调用次数,并降低延迟 [26
32
API Gateway的**CORS(跨域资源共享)**机制是怎样的?
当API请求来自**不同域**的客户端时,需要启用CORS [20