Serverless 框架中如何使用 DynamoDB 存储数据

阅读时长 9 分钟读完

在 Serverless 架构中,数据存储是一个非常重要的问题。DynamoDB 是亚马逊提供的 NoSQL 数据库服务,可以在 Serverless 架构中充当数据存储的角色。本文将介绍在 Serverless 框架中如何使用 DynamoDB 存储数据,并提供示例代码。

准备工作

在开始使用 DynamoDB 之前,需要先创建一个 DynamoDB 表。可以通过 AWS 控制台或 AWS CLI 创建一个 DynamoDB 表。下面是通过 AWS CLI 创建 DynamoDB 表的示例代码:

这个命令将创建一个名为 "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:

然后在代码中引入 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:

然后在代码中引入 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

纠错
反馈