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

0

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

1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen