0

我正在使用 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 上的 lambda 函数执行,isNewUser 总是错误的。这是为什么?

并且另外

NEW_USER': function() {
}

也不触发。

本地机器上的系统环境:

  • Windows 10 家庭版
  • 节点JS:v8.9.1

拉姆达函数:

  • 节点JS 6.10

我非常感谢您能提供的任何帮助。

4

1 回答 1

1

两者都'NEW_USER'需要this.user().isNewUser()访问数据库,其中存储了每个用户的会话数。

当您在本地进行原型设计时,它使用默认的文件持久性数据库集成,将数据保存到本地db/db.json文件。

但是,在 AWS Lambda 上,本地数据库不起作用,因此您需要设置 DynamoDB 配置。在此处了解更多信息:Jovo 框架文档 > 数据库集成 > DynamoDB

请记住为您的 Lambda 函数角色授予访问 DynamoDB 数据的正确权限:AWS Lambda Permissions Model

于 2018-03-29T09:19:02.363 回答