Лямбда-функция AWS с зависимым обработчиком объекта - PullRequest
0 голосов
/ 08 января 2019

сейчас я пытаюсь создать что-то вроде кроссплатформенности с помощью 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}`});
  });
};

Теперь я хотел бы проверить, поступает ли лямбда-запрос от Assistant или Alexa, и в зависимости от этого он должен обрабатываться правильно. Но пока я не уверен, как это сделать. У Вас есть какие-либо идеи? Заранее спасибо!

1 Ответ

0 голосов
/ 09 января 2019

Вы получаете доступ к своей лямбде через API GATEWAY, верно? В любом случае вы должны получить дополнительную информацию от объекта события.

API GATEWAY будет отправлять всю информацию о запросе, инкапсулированном в объекте события, передавая его в качестве аргумента вашей лямбда-функции. Затем вы можете проверить его свойства, чтобы узнать, откуда вы получаете информацию, откуда приходит ваш запрос.

Вы можете зарегистрировать объект события следующим образом:

console.log (JSON.stringify (событие));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...