利用 AWS 服务构建无服务器应用
在构建无服务器应用的过程中,除了 Lambda 提供的计算能力,我们还需要能够长时间持久化数据或状态的组件。当应用变得更加复杂时,还需要一种方法来编排分布式事务和决策。本文将介绍可用于存储数据对象的组件、NoSQL 数据库和工作流工具,并从事件源和 SDK 使用两个角度进行探讨。
1. 技术要求
虽然不会深入介绍每个服务的高级细节,但需要对 Amazon DynamoDB、Amazon S3 和 AWS Step Functions 有一定的了解。
2. 使用 Amazon S3 与 Lambda
S3(简单存储服务)是一个完全托管的对象存储服务,具有容错、耐用和无限存储容量的特点。
2.1 S3 简介
- 对象存储系统 :与块存储和文件系统不同,S3 是对象存储系统,每个数据被视为一个对象,并与元数据一起存储在扁平存储池中,在扩展能力和数据检索性能方面具有优势。
- 对象前缀 :为了便于管理和组织数据,可以使用 S3 对象前缀,类似于文件夹,例如
raw-data/
或processed/
。 - 服务器less 服务优势 :无需运行自己的存储集群,不用担心冗余问题,容量无限,带宽高且无聚合吞吐量限制,还可以启用版本控制和加密。
- 存储类 :S3 提供多种存储类,包括标准存储、低频访问存储、单可