Amazon Serveless:lambda、Dynamo DB、Api gateway Flashcards
(32 cards)
AWS Lambda是什么?
AWS Lambda是一项无服务器(serverless)计算服务,允许您在无需预置或管理服务器的情况下运行代码 [1
AWS Lambda的主要优势有哪些?
主要优势包括:\n- 易于定价:按请求和计算时间付费,提供免费套餐 [3
Lambda函数的调用类型有哪些?
主要有两种调用类型:\n- 同步调用(Synchronous Invocations):客户端等待结果返回,例如通过CLI、SDK、API Gateway或Application Load Balancer调用 [7-9]。\n- 异步调用(Asynchronous Invocations):事件被放置在事件队列中,Lambda会进行错误重试,但不会立即返回结果给调用方,例如S3事件、SNS消息、CloudWatch Events/EventBridge触发 [10-12]。
在Lambda函数中,如何处理错误和失败事件?
对于异步调用,Lambda会自动重试(总共3次,间隔递增),如果多次重试后仍失败,事件可以被发送到死信队列(Dead-Letter Queue - DLQ)(SQS或SNS)进行后续处理和调试 [10
Lambda函数的并发性(Concurrency)和限流(Throttling)是如何工作的?
Lambda函数默认有1000个并发执行的限制 [15]。当请求超过此限制时,同步调用会返回429限流错误,异步调用会重新排队并自动重试 [15
Lambda函数如何访问VPC内的私有资源,例如RDS数据库?
默认情况下,Lambda函数运行在AWS拥有的VPC中,无法直接访问您VPC内的私有资源 [19]。要访问VPC内的私有资源,您需要将Lambda函数配置到您的VPC中,指定VPC ID、子网和安全组 [19-21]。Lambda将会在您的子网中创建一个弹性网络接口(ENI)来建立连接 [21]。
Lambda函数部署到VPC后,如何访问互联网?
将Lambda函数部署到VPC的私有子网中,需要配置NAT网关(NAT Gateway)或NAT实例才能访问互联网 [21
Lambda函数的执行上下文(Execution Context)和/tmp
目录的作用是什么?
执行上下文是一个临时运行时环境,用于初始化函数外部的依赖项(如数据库连接、SDK客户端),并在后续调用中被重用以减少初始化时间 [23]。/tmp
目录是函数执行时的临时存储空间,最大10GB,其内容在执行上下文冻结时会保留,可用作瞬态缓存 [24
如何管理Lambda函数的代码依赖项和运行时环境?
对于大型或复杂的依赖项,可以使用Lambda层(Lambda Layers)来外部化依赖项,实现代码重用 [26-29]。还可以使用容器镜像(Container Images)来部署Lambda函数,支持高达10GB的镜像,并能打包复杂的依赖项 [30-34]。
Lambda函数的版本(Versions)和别名(Aliases)有何作用?
版本是Lambda函数代码和配置的不可变快照 [34-36]。别名是指向特定Lambda函数版本的指针,可用于实现金丝雀部署(Canary deployment)或蓝/绿部署,通过权重将流量分配给不同版本 [35
Lambda函数的函数URL(Function URL)有何用途?
Lambda函数URL是为Lambda函数提供的专用HTTP(S)端点 [39]。它提供一个唯一的URL,可以直接从浏览器或HTTP客户端调用Lambda函数,无需API Gateway或其他代理 [39]。它支持资源策略和CORS配置 [39
如何使用AWS SAM(Serverless Application Model)简化Lambda应用的开发和部署?
AWS SAM是一个用于构建、部署和运行无服务器应用的框架 [20
Amazon DynamoDB是什么?
Amazon DynamoDB是一个全托管、高可用的NoSQL数据库服务,提供跨多个可用区的复制 [49]。它能够扩展到海量工作负载,支持每秒数百万次请求和数百万TB的存储 [49]。
DynamoDB的主键(Primary Key)类型有哪些?
主键有两种类型:\n- 分区键(Partition Key):单一属性,必须是唯一的,且数据分布要多样化以避免热点问题 [26
DynamoDB的读/写容量模式(Read/Write Capacity Modes)有哪些?
两种模式:\n- 预置模式(Provisioned Mode):您需指定每秒读写容量单位(RCU/WCU),需提前规划容量。支持自动扩缩(Auto-scaling) [26
DynamoDB中的RCU(Read Capacity Unit)和WCU(Write Capacity Unit)如何计算?
WCU:1 WCU代表每秒对大小不超过1KB的项执行一次写入。超过1KB的项会消耗更多WCU,不足1KB按1KB计 [53]。\n- RCU:1 RCU代表每秒对大小不超过4KB的项执行一次强一致性读,或两次最终一致性读。超过4KB的项会消耗更多RCU,不足4KB按4KB计 [55
DynamoDB的数据一致性模型(Consistency Models)有哪些?
\n- 最终一致性读(Eventually Consistent Reads):默认模式,读取数据可能无法立即反映最近的写入,但通常在几毫秒内保持一致 [26
如何处理DynamoDB的热点键(Hot Keys)和热点分区(Hot Partitions)问题?
热点键是指对单个分区键的读写操作过多导致限流 [58]。热点分区是由于分区键设计不当导致数据分布不均 [56
DynamoDB的条件写入(Conditional Writes)有什么作用?
条件写入允许您在执行PutItem、UpdateItem、DeleteItem等写入操作时,指定一个条件表达式 [26
DynamoDB Streams是什么,它有什么用?
DynamoDB Streams是DynamoDB表项级别修改的有序流(创建、更新、删除)[26
DynamoDB的Time To Live (TTL)功能有什么作用?
TTL允许您为DynamoDB表中的项定义一个过期时间戳,DynamoDB会在该时间戳过后自动删除这些项 [26
DynamoDB Accelerator (DAX)的主要优势和用途是什么?
DAX是DynamoDB的全托管、高可用内存缓存服务 [26
Amazon API Gateway是什么,它能提供哪些主要功能?
Amazon API Gateway是一项全托管的服务,可以帮助开发者构建、发布、维护、监控和保护任意规模的API [69]。它支持RESTful API和WebSocket API [69]。主要功能包括:\n- API版本管理(v1
API Gateway支持哪些后端集成类型(Integration Types)?
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