概览
呼叫所有亚马逊云科技超级英雄吧!在这个使用 DynamoDB 并由三个部分组成的系列实验中,使用 DynamoDB 构建任务档案生成器。您已经查看过完成第 1 部分的分步说明。在本实验中,您将构建接下来的两个实验需要用到的基础设施。您将创建一个 DynamoDB 表并添加数据,然后查看用于授予对此数据的安全访问权限的必要 IAM 角色和策略。
在实验 2 和实验 3 中,您将创建与 DynamoDB 交互的 Lambda 函数、通过 API Gateway 服务构建 API,最后利用在三个实验中学到的所有 DynamoDB 技能将一个应用程序发布到公开网络上。在第 3 部分结束时,您将能生成任务档案并派出超级英雄来拯救世界!
涵盖的主题
本实验结束时,您将能够:
- 创建 Amazon DynamoDB 表
- 将项目添加到您的 Amazon DynamoDB 表
- 了解访问您的表所需的 IAM 角色和策略的结构
先决条件
您应该先进行 Introduction to Amazon DynamoDB 和 Introduction to Amazon Identity and Access Management (IAM) 实验,从而熟悉重要概念。本实验是由三部分组成的系列实验中的第一个。三个实验中的每一个都可以独立存在,但因为这些实验要用到您之前学到的知识,所以最好按顺序进行这三个实验。
其他亚马逊云科技服务
在您进行本实验期间,IAM 策略将禁用本实验不需要的其他亚马逊云科技服务。此外,本实验中只会使用所需的服务功能,并且在某些情况下,甚至会根据实验设计特意进一步限制这些功能。在访问其他服务或执行本实验指南中未规定的操作时,可能会出现错误。
AMAZON DYNAMODB
Amazon DynamoDB 是一项快速灵活的 NoSQL 数据库服务,适合所有需要一致性且延迟低于 10 毫秒的任意规模的应用程序。它是一种完全托管的云数据库,支持文档和键值两种存储模式。灵活的数据模型和可靠的性能使其成为移动、Web、游戏、广告技术、物联网和众多其他应用的不二之选。
您可以使用 Amazon DynamoDB 创建一个数据库表来存储和检索任何大小的数据,并处理任何级别的请求流量。Amazon DynamoDB 可以自动将表的数据和流量分布到足够多的服务器中,以便处理客户指定的请求容量和数据存储量,同时保持一致的性能和高效的访问。
DYNAMODB 术语
表 与其他数据库管理系统类似,DynamoDB 将数据存储在表中。表是数据的集合。例如,在本实验中,您将创建一个名为 SuperMission 的表,用来存储任务信息。您还可以创建一个“人员”表来存储有关朋友、家人或您关注的其他人员的数据,或者创建一个“车辆”表来存储有关人们驾驶的车辆的信息。
项目 每个表都包含多个项目。项目是一组属性,可以相对于所有其他项目唯一地标识。在“人员”表中,每个项目代表一个人。对于“车辆”表,每个项目代表一辆车。项目在许多方面都与关系数据库系统中的行、记录或元组类似。在 DynamoDB 中,可以存储在一个表中的项目的数量没有限制。
属性 每个项目都由一个或多个属性组成。属性是基本数据元素,不需要进一步分解。在本实验中,您将创建一个“任务”项目,该项目具有超级英雄、任务状态、反派 1、反派 2、反派 3 和秘密身份等属性。再举一个例子,一个“部门”项目可能具有部门编号、姓名、管理者等属性。“人员”表中的项目可以包含人员编号、姓氏和名字等等属性。DynamoDB 中的属性在许多方面都与其他数据库管理系统中的字段或列类似。
主键 在创建表时,除了表名称外,您还必须指定表的主键。与其他数据库中一样,DynamoDB 中的主键用于唯一地标识表中的每个项目,因此没有两个项目会具有相同的键。在表中添加、更新或删除项目时,您必须为该项目指定主键属性值。键值是必需的,不能省略。DynamoDB 支持两种不同的主键:分区键以及分区键和排序键。
辅助索引 在 DynamoDB 中,您可以通过提供主键属性值来读取表中的数据。如果您要使用非键属性来读取数据,则可以使用辅助索引来执行此操作。在表上创建辅助索引后,您可以从索引中读取数据,而且方式与从表中读取数据非常相似。通过使用辅助索引,您的应用程序除了通过主键值访问数据外,还可以使用许多不同的查询模式。
AMAZON IDENTITY AND ACCESS MANAGEMENT 文档
Amazon Identity and Access Management (IAM) 是一项 Web 服务,让 Amazon Web Services(亚马逊云科技)客户能够在亚马逊云科技中管理用户和用户权限。该服务主要面向在云中拥有多用户或多系统并使用亚马逊云科技产品(例如 Amazon DynamoDB、Amazon Lambda 和亚马逊云科技管理控制台)的组织。借助 IAM,您可以集中管理用户、访问密钥等安全凭证,以及对用户可以访问何种亚马逊云科技资源进行控制的权限。有关更多信息,请参阅 https://aws.amazon.com/iam/。
AMAZON LAMBDA
Amazon Lambda 是一项计算服务,可以在云中提供大小可调的计算容量,让开发人员更容易进行 Web 规模的计算。将您的代码上传到 Amazon Lambda,Amazon Lambda 就会负责预置和管理用于运行代码的服务器。Amazon Lambda 支持多种编码语言:Node.js、Java 或 Python。 您可以通过两种方式来使用 Amazon Lambda:
- 作为一项事件驱动的计算服务:Amazon Lambda 运行您的代码来响应事件,例如您将在本实验中看到的上传图像文件。
- 作为一项计算服务:运行您的代码来响应使用 Amazon API Gateway 发出的 HTTP 请求或响应 API 调用。
Amazon Lambda 可以为您带来 Amazon 规模的经济效益。Lambda 只在必要时执行您的代码并进行自动扩展,从每天处理数次请求扩展到每秒处理数千次请求。借助 Lambda,您可以轻松地为亚马逊云科技服务(如 Amazon S3 和 Amazon DynamoDB)构建触发程序、处理存储在 Amazon Kinesis 中的流数据,或创建您自己的、达到亚马逊云科技的规模、性能和安全性的后端。
本实验指南逐步说明了亚马逊云科技的基本概念。但是,它只对 Lambda 概念进行了简单概述。要了解更多信息,请参阅适用于 Lambda 的 Amazon Web Services 文档:https://aws.amazon.com/documentation/lambda/。有关定价详情,请参阅 https://aws.amazon.com/lambda/pricing/。