将JSON对象返回到Alexa Smart Home或在NodeJS中结束AWS Lambda的正确方法是什么?

我已经看到了三种返回JSON对象或结束Lambda函数的方法。我的触发器是Smart Home Alexa。

  1. 我现在使用的是context.succeed(response_JSON);,这对我有用。即使此指令位于嵌套函数内部。整个Lambda结束,并将response_JSON返回给Smart Home Alexa。

  2. 我在其他博客中也看到callback(response_error,response_JSON)。这对我没有用。它没有返回任何东西给智能家居。

  3. 其他人仅使用return response_JSON。我没有用过这个。

iCMS 回答:将JSON对象返回到Alexa Smart Home或在NodeJS中结束AWS Lambda的正确方法是什么?

我现在使用的是context.succeed(response_JSON);这对我有用。即使此指令位于嵌套函数内部。整个Lambda结束,并将response_JSON返回给Smart Home Alexa。

context.succeed()/fail()导致Lambda函数立即终止。但是,我尚未在context对象文档中看到此文档,因此在更高版本的Node版本(?)中可能会不建议使用它。

我在其他博客中也看到过回调(response_error,response_JSON)。这对我没有用。它没有返回任何东西给智能家居。

这可能对您不起作用,因为默认情况下,Node.js在执行callback语句之前等待事件循环为空。这可能是由于网络/数据库连接打开所致。按照doc,将context.callbackWaitsForEmptyEventLoop变量设置为false可以立即发送响应。

其他人仅使用返回response_JSON。我没有用过这个。

这应该与异步处理程序一起使用。在此处阅读有关异步和非异步处理程序的更多信息:https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html

本文链接:https://www.f2er.com/2095321.html

大家都在问