当前位置: 首页 > 知识库问答 >
问题:

DynamoDB BatchGetItem:提供的密钥不匹配?

羊刚捷
2023-03-14

所以,我一直在尝试使用batchGetItem从DynamoDB表中检索代码列表

我试图使用标准方法完成我的任务,其中包括几乎使用AWS文档上提供的基本代码,如下所示:

let AWS = require('aws-sdk');

AWS.config.update({
  "region": "us-west-2",
  "endpoint": "https://dynamodb.us-west-2.amazonaws.com",
  "accessKeyId": "my acess key here",
  "secretAccessKey": "my secret access key"
});

var dynamoClient = new AWS.DynamoDB.DocumentClient();    
var params = {
    "RequestItems": {
        "questions_and_answers": {
            "Keys": [
                {
                "codcategory": "10"
                }
            ]
        }
    }
}

var dynamoBatchGetPromise = dynamoClient.batchGetItem(params).promise();
dynamoBatchGetPromise.then(function (data) {
   console.log("data resp: " + JSON.stringify(data));
});

...这就是我得到的输出:

“(节点:3744)未处理PromisejectionWarning:ValidationException:提供的键元素与架构不匹配”

好吧,因为“codcategory”是表“questions\u and\u answers”的实际主分区键,我想从这个表中检索codcategory=10的所有记录,所以我必须询问;

我的代码怎么了?

任何帮助我都会感激的。提前谢谢。

共有1个答案

江曦
2023-03-14

在对文档进行了进一步的挖掘之后,问题似乎是我必须同时提供分区键和哈希键作为参数,如下所示:

Keys: [                
{
codcategory: {N:"10"},
cod: {N:"2000"}
}
]

好吧,就是这样。希望这个mght能在某个时候帮助其他需要帮助的人。

 类似资料:
  • 我为Jetty 9和Kafka使用ssl密钥库。我需要提供密钥库和密钥密码来访问密钥库和私钥。但是,我不想在配置文件中以明文形式提供这些密码。还有哪些其他选项可以安全地提供/加密密码?每种方法的优缺点是什么?

  • 问题内容: 我必须访问端口443上托管的Web服务。服务提供商已与我们共享了三个证书。 ABCD.cer CA_Certificate.cer CCA_Certificate.cer 我必须通过为SSL通信创建表单链将它们添加到密钥库中。我遵循以下步骤。 在步骤4中,我有以下异常 输入密钥库密码:(并且当我输入密码时,我有以下异常) keytool错误:java.lang.Exception:答复

  • 我在运行测试脚本后收到一个错误。我已经在其他测试脚本中运行了相同的方法,但我使用的这个脚本几乎与其他测试脚本相同。你能帮助我为什么会出现这个错误吗? 这是获取excel数据的方法。 这是我的数据提供程序方法

  • 在TransitionKey类中:

  • 当前正在尝试读取<code>。pem公钥,通过进行验证。 如上所述,在执行我的脚本时,我会收到以下错误: 最初,我编写这个函数是为了接受< code >。cer认证。下面解释一下所有这些不同密钥格式之间的区别。据我所知<代码>。pem与< code >相似。cer,但是,我怎么也想不出如何让我的脚本读取我的< code >。pem文件。 我的问题是——为了让我的函数读取这个公钥,我需要做什么? 编

  • 我已经参考了Spring SAML手册来创建私钥和导入公共证书。但是我仍然面临加密/解密的问题。 我用手册中提到的以下命令创建了一个JKS文件,如下所示 用于导入IDP公共证书的命令 用于私钥的命令 私钥和密钥存储库的密码定义为更改 我已经配置了securityContext如下 我可以看到可以选择IDP的idpDiscovery页面。我也可以查看IDP的登录页面。但是当我提供用户凭据时,我得到了