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

DynamoDB batchwriteItem不将数据放入Lambda函数中的动态表名

谷梁嘉悦
2023-03-14

我正在尝试将数据写入不同的表,tablename是通过get请求传递的。

var tableName = event.tableName.toString();

当我编写硬编码的表名时,它工作得很好,但当我编写变量名时,它会抛出错误。

2018-11-20T21:09:31.532Z 928E237C-ED08-11E8-A312-539D290E67FC{“ErrorMessage”:“找不到请求的资源”、“ErrorType”:“ResourceNotFoundException”、“StackTrace”:[“Request.Extractor(/var/runtime/node_modules/AWS-SDK/lib/protocol/json.js:48:27)”、“Request.CallListeners(/var/runtime/node_modules/AWS-SDK/lib/sequential_executor.js:105:20)”、“sdk/lib/sequential_executor.js:77:10)”、“request.emit(/var/runtime/node_modules/aws-sdk/lib/request.js:683:14)”、“request.transition(/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)”、“acceptorstatemachine.runto(/var/runtime/node_modules/aws-sdk/lib/request.js:14:12)”、“/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10”、“es/aws-sdk/lib/request.js:38:9)”,“request.(/var/runtime/node_modules/aws-sdk/lib/request.js:685:12)”,“request.calllisteners(/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:115:18)”]}结束请求D:928e237c-ed08-11e8-a312-539D290E67FC报表请求D:928E237C-ED08-11E8-A312-539D290E67FC持续时间:124.41 ms计费持续时间:200 ms内存大小:1024 MB最大使用内存:33 MB

代码如下:

var params = {
RequestItems: {
    tableName :  [
   {
     PutRequest: {
        "Item" : {
        "indexNumber":{
            "N": r1index
        },
         "DateandTime" :{
          "S": DnT1  
        } ,
        "roadId" :{
          "N": id
        },
        "x1_axis":{
           "S": x11
        },
        "y1_axis":{
            "S":  y11
        },
        "z1_axis":{
            "S": z11
        },
        "x2_axis":{
           "S": x21
        },
        "y2_axis":{
            "S":  y21
        },
        "z2_axis":{
            "S": z21
        },
        "latitude":{
            "S": lat1
        },
        "longitude":{
            "S":lng1
        }
    }
     }
   },
   {
     PutRequest: {
        "Item" : {
        "indexNumber":{
            "N": r2index
        },
        "DateandTime" :{
          "S": DnT2 
      } ,
        "roadId" :{
          "N": id
        },
        "x1_axis":{
           "S": x12
        },

        "y1_axis":{
            "S":  y12
        },
        "z1_axis":{
            "S": z12
        },
        "x2_axis":{
           "S": x22
        },
        "y2_axis":{
            "S":  y22
        },
        "z2_axis":{
            "S": z22
        },
        "latitude":{
            "S": lat2
        },
        "longitude":{
            "S":lng2
        }
    }
     }
   },
          {
     PutRequest: {
       "Item" : {
        "indexNumber":{
            "N": r3index
        },
        "DateandTime" :{
          "S": DnT3  
        } ,
         "roadId" :{
          "N": id
        },
        "x1_axis":{
           "S": x13
        },
        "y1_axis":{
            "S":  y13
        },
        "z1_axis":{
            "S": z13
        },
        "x2_axis":{
           "S": x23
        },
        "y2_axis":{
            "S":  y23
        },
        "z2_axis":{
            "S": z23
        },
        "latitude":{
            "S": lat3
        },
        "longitude":{
            "S":lng3
        }
    }
     }
   }
]

}};

共有1个答案

卫嘉佑
2023-03-14

我认为您的json是不正确的。当您定义RequestItems对象时

RequestItems: { tableName: [...] }

您实际上是将字符串“tableName”硬编码为属性,而不是一个名为“tableName”的变量。这就是为什么没有这样的桌子。

es6解决方案就是这样做的:

RequestItems: { [tableName]: [...] }
var RequestItems = {};
RequestItems[tableName] = [...];
var params = {};
params.RequestItems = {};
params.RequestItems[tableName] = [...]
 类似资料:
  • 以下程序的目的是将4个字符的单词从转换为,我已经完成了让该列表和len工作的困难部分。 问题是程序逐行输出答案,我想知道是否有任何方法可以将输出存储回列表,并将其作为一个完整的句子打印出来? 谢谢

  • 我在动态数据库表上启用了流。修改项目时,将触发 lambda 函数。我认为我在 lambda 触发器端、权限端和 dynamodb 端都正确设置了所有内容。我还使用测试数据运行了我的lambda函数,它成功了。但是,当表中的项被修改时,触发器没有启动我的 lambda 函数。相反,我得到了以下错误: 批量:100最后处理结果:问题:函数调用失败 你知道调试这个的最佳方法是什么吗?我查看了Cloud

  • 我想把我从stdin收到的一些浮点放在一个列表中。但使用以下程序只返回一个对象。我如何把我收到的彩车放在一个列表中? 输入如下所示:0.1 0.1 0.3 0.4 0.1 0.4 0.2 0.1 0.1 0.2 0.5 0.05 0.15 0.1 0.2 0.6 0.1 0.1 0.1 0.5 0.5 0.2 0.2 0.05 0.05

  • 如何获取多个列表并将它们作为不同的列放在python数据框架中?我尝试了这个解决方案,但遇到了一些麻烦。 尝试1: 有三个列表,将它们压缩在一起,并使用 只生成一列 尝试2: 产生一行乘三列(如上所述)或者如果我转置它是三行和一列 如何通过3列(三个列表)数据帧获得100行(每个独立列表的长度)?

  • 我在谷歌表格中的一个问题上迷失了方向,重新调整动态数据和静态输入数据。在高层次上,我的问题是,我有动态数据被拉在一张表中,我还添加了手动输入数据。一旦动态更改,这也意味着输入数据不再对应于正确的行。 问题: 表1:我有一个外部数据拉取(Importdata),可以动态地拉取新数据 表2:我使用查询 解决方案: 我需要一种方法来确保输入的数据与正确的行相对应。因此,如果拉入新行,手动输入的数据将跟随

  • 我是java新手,我想知道如何读取。txt文件,然后将每一行都放入数组单元格中。.txt文件的格式必须如下所示: 我已经尝试创建一个以这种方式实现的ReadFile类: