gpt4 book ai didi

javascript - DynamoDB batchwriteItem 不会将数据放入 Lambda 函数中的动态 TableName

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:24 25 4
gpt4 key购买 nike

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

var tableName = event.tableName.toString();

当我编写硬编码的 tableName 时,它​​工作正常,但是当我编写变量 Name 时,它​​会抛出错误。

2018-11-20T21:09:31.532Z 928e237c-ed08-11e8-a312-539d290e67fc {“errorMessage”:“找不到请求的资源”,“errorType”:“ResourceNotFoundException”,“stackTrace”:[“Request.extractError(/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)","Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:77:10)","Request.emit (/var/runtime/node_模块/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/state_machine.js:14:12)","/var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10","请求。(/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)","请求。(/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)"]}结束请求 ID:928e237c-ed08-11e8-a312-539d290e67fc报告请求 ID:928e237c-ed08-11e8-a312-539d290e67fc 持续时间:124.41 毫秒 计费持续时间:200 毫秒 内存大小: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
}
}
}
}
]

} };

最佳答案

我认为你的 json 不正确。当您定义 RequestItems 对象时,例如

RequestItems: { tableName: [...] }

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

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

RequestItems: { [tableName]: [...] }

老式的解决方案是这样做:

var RequestItems = {};
RequestItems[tableName] = [...];

参见How To Set A JS object property name from a variable供引用

编辑:

要获得更完整的解决方案,请尝试:

var params = {};
params.RequestItems = {};
params.RequestItems[tableName] = [...]

关于javascript - DynamoDB batchwriteItem 不会将数据放入 Lambda 函数中的动态 TableName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53401591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com