Node.js 和 DAX - Amazon DynamoDB

Node.js 和 DAX

执行这些步骤可在 Amazon EC2 实例上运行 Node.js 示例应用程序。

运行 DAX 的 Node.js 示例
  1. 在 Amazon EC2 实例上设置 Node.js,如下所示:

    1. 安装节点版本管理器 (nvm)。

      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
    2. 使用 nvm 安装 Node.js。

      nvm install 12.16.3
    3. 测试 Node.js 已安装且运行正常。

      node -e "console.log('Running Node.js ' + process.version)"

      这应该显示以下消息。

      Running Node.js v12.16.3

  2. 使用节点程序包管理器 (npm) 安装 DAX Node.js 客户端。

    npm install amazon-dax-client
  3. 下载示例程序源代码(.zip 文件)。

    wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip

    下载完成后,解压缩源文件。

    unzip TryDax.zip
  4. 运行以下 Node.js 程序。第一个程序创建一个名为 TryDaxTable 的 Amazon DynamoDB 表。第二个程序向表中写入数据。

    node 01-create-table.js node 02-write-data.js
  5. 运行以下 Node.js 程序。

    node 03-getitem-test.js node 04-query-test.js node 05-scan-test.js

    记下计时信息—GetItemQueryScan 测试所需的时间(以毫秒为单位)。

  6. 在上一步中,您已针对 DynamoDB 端点运行程序。重新运行这些程序,但此次,GetItemQueryScan 操作将由 DAX 集群处理。

    要确定 DAX 集群的端点,请选择下列选项之一:

    • 使用 DynamoDB 控制台—选择 DAX 集群。集群端点显示在控制台中,如下面的示例所示。

      dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
    • 使用 AWS CLI—输入以下命令。

      aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"

      集群端点显示在输出中,如下面的示例所示。

      { "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com", "Port": 8111, "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com" }

    现在再次运行这些程序,但这次将集群端点指定为命令行参数。

    node 03-getitem-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com node 04-query-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com node 05-scan-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com

    查看输出的其余内容,并记下计时信息。与 DynamoDB 相比,使用 DAX 时,GetItemQueryScan 的运行时间应明显更短。

  7. 运行以下 Node.js 程序删除 TryDaxTable

    node 06-delete-table

有关这些程序的更多信息,请参见以下各部分: