无服务器 Lambda REST API 未正确更新数据库。

0

【以下的问题经过翻译处理】 我正在调用我的 lambda REST api 来更新 Dynamo DB 中的表,但是只有在第二次调用之后才会更新数据库。例如- 第一次调用我向 lambda api 发送“某些数据”,它什么也不做,但第二次调用我发布“其他数据”,它将处理我进行的第一次调用(“某些数据”)。如果我第三次调用 lambda,那么它将处理“其他数据”。如果我在第一次和第二次调用之间等待,“某些数据”将丢失并且永远不会被处理。 当我本地运行服务器时一切正常运作。我使用的是 api-gateway、lambda 和 express serverless-http 包。我尝试在进行数据库调用之前和之后记录日志,看起来代码正在执行但是数据库没有更新。我做错了什么?

1 回答
0

【以下的回答经过翻译处理】 由于您使用的是Node.js,我认为问题在于函数在更新数据库之前返回了。一旦函数返回,Lambda执行环境就会冻结,并在收到下一个请求时解冻。您应该使用同步模式更新DB,即在更新DB时使用await,或确保context.callbackWaitsForEmptyEventLoop设置为true。更多信息请参见此处

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则