如何解决从lambda发出的第一个请求未插入DynamoDB项,需要发出4-5个请求
我有一个DynamoDB表和一个本地二级索引(LSI)。当我尝试从本地计算机插入新项目时,它将被插入第一个请求,但是当我将相同的代码部署到AWS lambda时,它将接受4-5个请求,然后插入新记录。我对表格保持自动缩放,这会影响它吗??
插入记录的代码
class BioForm(forms.ModelForm):
class Meta:
model = Bio
fields = ['name','branch','program','year_in_school','intrest','project','club','text','picture','facebook','linkdin']
DynamoDB.insertRecord()代码
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);
}
}
解决方法
您应该致电await DynamoDB.insertRecord(params);
而不是await dynamoDB.put(params).promise()
。无需将其包装为额外的功能。
lambda在从主要导出功能返回响应后中止了后台进程的运行,因此这引起了问题。我的主要lambda函数是在将记录添加到DynamoDB之前返回响应
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。