【问题标题】:AWS Lambda Function with depending object handler具有依赖对象处理程序的 AWS Lambda 函数
【发布时间】:2019-01-08 09:39:59
【问题描述】:

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

const SkillBuilder = Alexa.SkillBuilders.custom();

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

Assistant 对象处理程序如下所示:

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,并取决于它是否应该被正确处理。但到目前为止,我不确定该怎么做。你有什么想法?提前谢谢!

【问题讨论】:

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


    【解决方案1】:

    您正在通过 API GATEWAY 访问您的 lambda,对吗?无论如何,您应该从事件对象中获取更多信息。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-25
      • 2020-11-03
      相关资源
      最近更新 更多