带有依赖对象处理程序的AWS Lambda函数

时间:2019-01-08 09:40:00

标签: node.js aws-lambda alexa google-assistant-sdk assistant

现在我正在尝试使用AWS Lambda构建一种跨平台。 我在Lambda中的对象处理程序应该能够处理Alexa Skill和Google Action的请求。那就是为什么我需要一个依赖处理程序。 Alexa对象处理程序如下所示:

const skillBuilder = Alexa.SkillBuilders.custom();

exports.handler = skillBuilder
  .addRequestHandlers(
    LaunchRequestHandler,
    HelloWorldIntentHandler
  )
  .addErrorHandlers(ErrorHandler)
  .lambda();

助手对象处理程序如下所示:

exports.handler = function(event, context, callback) {     
  app.handler(event, {}).then((res) => {
      if (res.status != 200) {
          callback(null, {"fulfillmentText": `I got status code: 
${res.status}`});
      } else {
          callback(null, res.body);
      }
  }).catch((e) => {
  callback(null, {"fulfillmentText": `There was an error\n${e}`});
  });
};

现在,我想检查Lambda请求是否来自Assistant或Alexa,并取决于应正确处理它。但是到目前为止,我不确定该怎么做。你有什么想法?预先谢谢你!

1 个答案:

答案 0 :(得分:0)

您正在通过API GATEWAY进入lambda,对不对?无论如何,您应该从事件对象获取其他信息。

API GATEWAY将发送有关封装在事件对象中的请求的所有信息,并将其作为参数传递给您的lambda函数。然后,您可以检查其属性,以查看是否从请求来源获得信息。

您可以这样记录事件对象:

console.log(JSON.stringify(event));