AWS DynamoDB DAX客户端支持的操作

问题描述

在AWS的如何使用其DAX Node.js客户端的教程之后,我遇到了以下示例,该示例将数据写入DynamoDB,但完全不使用导入的DAX客户端(const AmazonDaxClient = require('amazon-dax-client')):

const AmazonDaxClient = require('amazon-dax-client');
var AWS = require("aws-sdk");

var region = "us-west-2";

AWS.config.update({
  region: region
});

var ddbClient = new AWS.DynamoDB.DocumentClient() 

var tableName = "TryDaxTable";


var someData = "X".repeat(1000);
var pkmax = 10;
var skmax = 10;

for (var ipk = 1; ipk <= pkmax; ipk++)  {

    for (var isk = 1; isk <= skmax; isk++) {
        var params = {
            TableName: tableName,Item: {
                "pk": ipk,"sk": isk,"someData": someData
            }
        };

        //
        //put item

        ddbClient.put(params,function(err,data) {
            if (err) {
               console.error("Unable to write data: ",JSON.stringify(err,null,2));
            } else {
               console.log("PutItem succeeded");
            }
        });

    }
}

几个问题:

  1. 没有理由将DAX客户端用于写作目的?
  2. DAX客户端不支持写操作?
  3. 关于受支持的DAX操作是否有很好的文档?

如果使用DAX客户端会怎样?

引发以下错误

DaxClientError: unsupported type to encode for Binary: undefined
    at CborEncoder.encodeBinary (/home/ec2-user/dax_demo/node_modules/amazon-dax-client/src/CborEncoder.js:96:13)
    at /home/ec2-user/dax_demo/node_modules/amazon-dax-client/generated-src/Stubs.js:93:26
    at processticksAndRejections (internal/process/task_queues.js:97:5)
    at async Promise.all (index 1) {
  time: 1598020544921,code: undefined,retryable: true,requestId: null,statusCode: -1,_tubeInvalid: false,waitForRecoveryBeforeretrying: false
}

参考: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.client.run-application-nodejs.02-write-data.html

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)