AWS лямбда-тайм-аут на пользовательских намерениях - PullRequest
0 голосов
/ 22 мая 2018

Я создаю навык Amazon Alexa, который получает асинхронные данные из Google Firebase.

Когда я запускаю функцию Lambda локально и вызываю ее из моего навыка Alexa, все намерения работают, как и ожидалось.

Однако, когда я заархивировал файлы (не папку) и переместил их в AWS lambda, функция перестала работать, даже если данные были получены и объект ответа создан, как и ожидалось.

все встроенные намерения тоже работают как положено

Мой код на GitHub здесь

Журнал ошибок и выходы console.log

Я пытался найти какие-либо решения через здесь и Google, но не повезло.Возможно, я искал не те вещи, или это особая проблема

1 Ответ

0 голосов
/ 23 мая 2018

Ресурс

При использовании firebase с лямбдой может показаться, что вам нужно инициализировать, а затем удалить экземпляр для ответа, который будет возвращен.

этофрагмент кода, который я получил на работу

const Alexa = require("ask-sdk");
const firebase = require("firebase");

var config = {
  ...
};

const GetOrderIntent = {
  canHandle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    return (
      request.type === "IntentRequest" &&
      request.intent.name === "GetOrderIntent"
    );
  },
  async handle(handlerInput) {
    firebase.initializeApp(config);

    try {
      const store = await firebase
        .database()
        .ref(`teams/${team}`)
        .once("value");
      // ANY OTHER CODE HERE
   } catch (error) {
      // HANDLE ERROR
    }
    // CLOSE THE CONNECTION
    await firebase.app("[DEFAULT]").delete();
    return handlerInput.responseBuilder
      .speak(speechOutput)
      .withSimpleCard(SKILL_NAME, speechOutput)
      .getResponse();
  }
};
...