【发布时间】:2020-09-03 19:29:32
【问题描述】:
我有一个带有一个本地二级索引 (LSI) 的 DynamoDB 表。当我尝试从本地机器插入新项目时,它会被插入到第一个请求中,但是当我将相同的代码部署到 AWS lambda 时,它需要 4-5 个请求,然后插入新记录。我为表格保留了自动缩放,它会影响它吗..?
插入记录的代码
async function addLogstoDynamoDB(body, tries = 1) {
var params = {
TableName: config.tableName,
Item: {
start: body.timestamp, //Local secondary index
number: "+" + body.cli, //Primary key
id: "CON-" + body.callid, //Sort key
},
};
let result = await DynamoDB.insertRecord(params);
if (result.error !== null && tries < 3) {
console.log(result.error);
tries++;
addLogstoDynamoDB(body, tries);
}
}
DynamoDB.insertRecord() 代码
static insertRecord(params) {
return new Promise((resolve) => {
dynamoDB.put(params, function (error, data) {
resolve({ error, data });
});
});
}
【问题讨论】:
-
除非您提供失败请求的代码和症状,否则我们无能为力。
-
@jarmod 我已经用我的代码更新了问题,请看一下
-
记录了哪些导致您重试的错误?另外,请注意,所有 DynamoDB SDK 调用都原生支持 Promise:例如,您可以编写
await dynamoDB.put(params).promise()。
标签: node.js amazon-web-services aws-lambda amazon-dynamodb