在 Serverless 架构中,数据存储是一个非常重要的问题。DynamoDB 是亚马逊提供的 NoSQL 数据库服务,可以在 Serverless 架构中充当数据存储的角色。本文将介绍在 Serverless 框架中如何使用 DynamoDB 存储数据,并提供示例代码。
准备工作
在开始使用 DynamoDB 之前,需要先创建一个 DynamoDB 表。可以通过 AWS 控制台或 AWS CLI 创建一个 DynamoDB 表。下面是通过 AWS CLI 创建 DynamoDB 表的示例代码:
aws dynamodb create-table \ --table-name MyTable \ --attribute-definitions AttributeName=MyKey,AttributeType=S \ --key-schema AttributeName=MyKey,KeyType=HASH \ --billing-mode PAY_PER_REQUEST
这个命令将创建一个名为 "MyTable" 的 DynamoDB 表,包含一个字符串类型的 "MyKey" 属性作为主键,并使用 PAY_PER_REQUEST 计费模式。更多关于 DynamoDB 表的信息可以参考官方文档。
在 Serverless 框架中使用 DynamoDB
在 Serverless 框架中,可以通过 AWS SDK 或者 AWS Amplify 访问 DynamoDB。AWS SDK 提供了一系列 API 来操作 DynamoDB 表,而 AWS Amplify 可以通过 Model 定义来简化操作。下面分别介绍这两种方式。
使用 AWS SDK
在 Serverless 框架中使用 AWS SDK 访问 DynamoDB,需要先安装 AWS SDK:
npm install aws-sdk
然后在代码中引入 AWS SDK:
const AWS = require('aws-sdk');
接下来可以使用 AWS SDK 提供的 API 来访问 DynamoDB。
添加数据
可以使用 putItem
API 向 DynamoDB 表中添加数据:
-- -------------------- ---- ------- ----- -------- - --- --------------- ----- ------ - - ---------- ---------- ----- - ------ - -- -------- -- -------- - -- ---------- - - -- ------------------------ ----- ----- -- - -- ----- - ------------------- - ---- - ------------------ - ---
这个代码将向名为 "MyTable" 的 DynamoDB 表中添加一条记录,主键为 "my-key",值为 "my-value"。
获取数据
可以使用 getItem
API 从 DynamoDB 表中获取数据:
-- -------------------- ---- ------- ----- -------- - --- --------------- ----- ------ - - ---------- ---------- ---- - ------ - -- -------- - - -- ------------------------ ----- ----- -- - -- ----- - ------------------- - ---- - ------------------ - ---
这个代码将从名为 "MyTable" 的 DynamoDB 表中获取主键为 "my-key" 的记录。
删除数据
可以使用 deleteItem
API 删除 DynamoDB 表中的数据:
-- -------------------- ---- ------- ----- -------- - --- --------------- ----- ------ - - ---------- ---------- ---- - ------ - -- -------- - - -- --------------------------- ----- ----- -- - -- ----- - ------------------- - ---- - ------------------ - ---
这个代码将删除名为 "MyTable" 的 DynamoDB 表中主键为 "my-key" 的记录。
使用 AWS Amplify
AWS Amplify 是一个开发工具包,可以帮助开发者快速构建 Serverless 应用程序。其中包括与 DynamoDB 表交互的 API。
使用 AWS Amplify 访问 DynamoDB,需要先安装 AWS Amplify:
npm install aws-amplify
然后在代码中引入 AWS Amplify:
-- -------------------- ---- ------- ------ ------- ---- -------------- ------------------- ----- - -- --- -- ---- - -- --- -- -------- - -- --- -- ---------- - -- --- -- -- --- ---
在配置 Amplify 之后,可以使用 Amplify 提供的 Model 定义来访问 DynamoDB。
定义 Model
可以使用 @model
注释定义一个 DynamoDB 表:
-- -------------------- ---- ------- ------ - ---- ---------------- - ---- -------------- ----- ------------- - --------- --------------------- -------------------- - -------------------- ------- - ----- ------- - - -- ----- ---------- - ------ ------------------ -------- - ----------------- ------- - ----- ------- - - -- ----- ------------- - --------- --------------------- -------------------- - -------------------- ------- - ----- ------- - - -- ----- ------------- - --------- --------------------- -------------------- - -------------------- ------- - ----- ------- - - -- ----- ------------ - - ----- ---------- -- -- -------- ---- ------- - ------ - ----- ------ --------- ---- -- -------- - ----- --------- --------- ----- - -- -- -- --- -- ---------- - -------------- ---------------- -------------- ---------------- -------------- --------------- -- -------- - ----------- ------------ - -- ------ - ------------- -------------- ----------- -------------- ------------- --
这个代码定义了一个名为 "MyTable" 的 DynamoDB 表,包含一个字符串类型的 "MyKey" 属性作为主键,并定义了添加、获取、删除和更新数据的 API 操作。
使用 API
可以使用 API
对象来调用 API 操作:
-- -------------------- ---- ------- ------ - --- - ---- -------------- ------ - -------------- ----------- -------------- ------------- - ---- ------------------- ------------------------------------------- - ------ - ------ --------- -------- ---------- - --- ---------- -- ------------------ ---------- -- -------------------- ---------------------------------------- - ------ -------- --- ---------- -- ------------------ ---------- -- -------------------- ------------------------------------------- - ------ - ------ -------- - --- ---------- -- ------------------ ---------- -- -------------------- ------------------------------------------- - ------ - ------ --------- -------- ----------- - --- ---------- -- ------------------ ---------- -- --------------------
这个代码将分别调用添加、获取、删除和更新数据的 API 操作。
总结
在 Serverless 架构中,使用 DynamoDB 存储数据是一个非常重要的问题。本文介绍了在 Serverless 框架中如何使用 DynamoDB 存储数据,并提供了示例代码。使用 AWS SDK 或 AWS Amplify 都可以访问 DynamoDB 表,选择哪种方式取决于具体的需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/663c93b7d3423812e4a7dd38