JovoFramework - LAUNCH - isNewUser() всегда ложно на AWS Lambda

Я использую фреймворк jovo (версия 1.0.0) и столкнулся со следующей проблемой:

В app.js:

app.setHandler({

  'LAUNCH': function() {
    if(this.user().isNewUser()) {
      this.tell('This will never be told on AWS Lambda.');
    }
  }
});

Работая локально, я могу различить (isNewUser === true) и (isNewUser === false), но как только я выполняю его как лямбда-функцию в AWS, isNewUser всегда ложно. Это почему?

и дополнительно

NEW_USER': function() {
}

Также не срабатывает.

Системная среда на локальной машине:

  • Windows 10 Home
  • NodeJS: v8.9.1

Лямбда-функция:

  • NodeJS 6.10

Я действительно ценю любую помощь, которую вы можете оказать.

1 ответ

Решение

И то и другое 'NEW_USER' а также this.user().isNewUser() необходимо иметь доступ к базе данных, где хранится количество сеансов для каждого пользователя.

Когда вы создаете прототипы локально, он использует интеграцию с базой данных File Persistence по умолчанию, которая сохраняет данные в локальном db/db.json файл.

Однако в AWS Lambda локальная база данных не работает, поэтому вам необходимо настроить конфигурацию DynamoDB. Узнайте больше здесь: Документы Jovo Framework> Интеграция баз данных> DynamoDB.

Не забудьте дать вашей роли функции Lambda право доступа к данным DynamoDB: модель разрешений AWS Lambda.

Другие вопросы по тегам