【问题标题】:AppSync BatchPutItem error: "The number of conditions on the keys is invalid"AppSync BatchPutItem 错误:“键上的条件数无效”
【发布时间】:2020-03-09 17:25:49
【问题描述】:

我在尝试批量放置项目时收到错误消息:“键上的条件数无效”。

模板

{
  version: '2018-05-29',
  operation: 'BatchPutItem',
  tables: {
    ItemTable: [
      {
        accountId: { S: 'f586fb14-6d80-4635-9d2e-d33a1bd49f96' },
        itemId: { S: '16e89b71-271c-4ccd-81ad-55f496b15e6f' }
      }
    ]
  }
}

表架构

{
  "AttributeDefinitions": [
    {
      "AttributeName": "itemId",
      "AttributeType": "S"
    },
    {
      "AttributeName": "accountId",
      "AttributeType": "S"
    }
  ],
  "TableName": "ItemTable",
  "KeySchema": [
    {
      "AttributeName": "accountId",
      "KeyType": "HASH"
    },
    {
      "AttributeName": "itemId",
      "KeyType": "RANGE"
    }
  ],
  "TableStatus": "ACTIVE"  
}

如果我只尝试添加其中一个键,我会收到缺少键的预期错误。如果我将表设置为使用单个分区键,那么它可以工作。我也可以使用代码批量写入,但不能使用 AppSync。

我正在本地测试这个 w serverless appsync/dynamodb local。所有其他单项查询和变异都可以正常工作。我不确定我是否理解它的要求 - 在这种情况下,什么是“条件”?

我在每张桌子上都试过,结果都一样。我在文档中没有看到无法在复合键上完成批处理的迹象,但这似乎就是这样。

【问题讨论】:

    标签: amazon-dynamodb serverless-framework aws-appsync


    【解决方案1】:

    Gah.. 这是无服务器 appsync 离线插件中的一个错误。它通过获取它正在编写的项目来模拟返回,并且它有一个错误,而它不处理复合键。

    【讨论】:

    • 您采取了哪些措施来解决它?我收到此错误消息,有点难过。
    • 您是否专门使用了已弃用的 AppSync 离线插件?还是只是在其他上下文中获取消息?
    • 不,不是那个插件,只是为了响应一个直接的突变而得到错误,它写入数据,但返回一个类似的。不过,这可能与本地模拟环境中的错误有关。
    • 啊 - 该错误可能有不同的来源 - 在我的情况下,这特别是我修复的插件中的一个错误
    猜你喜欢
    • 2019-12-30
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多