首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >必须对lambda进行多次测试才能正常工作

必须对lambda进行多次测试才能正常工作
EN

Stack Overflow用户
提问于 2018-11-08 09:03:34
回答 1查看 44关注 0票数 0

我有一个lambda功能,我正在玩。它将非常基本的信息插入到DynamoDB表中。以下是代码:

代码语言:javascript
复制
'use strict';
const alexaSkillKit = require('alexa-skill-kit');
const AWS = require('aws-sdk');

function binDaySkill(event, context, callback) {
    alexaSkillKit(event, context, (message) => {

        let params = {
            Item:      {
                user_id:       '123',
                some_data: 'some data here'
            },
            TableName: 'my_table'
        };

        let documentClient = new AWS.DynamoDB.DocumentClient();

        documentClient.put(params, function (err, data) {
            if (err) {
                callback("Error", err);
            } else {
                callback(null, data);
            }
        });

    });
}

我遇到的问题是,它有时只会将数据保存在DB中。在做任何事情之前,我必须先点击测试5-10次。

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-08 15:39:00

之所以会发生这种情况,是因为alexa-skill-kit负责您的回调。

文档。通过传入context对象,您允许包装处理程序(alexaSkillKit(...))管理、解码和编码返回的对象和有效负载。处理程序alexSkillKit回调函数只是希望您返回一个值。

对于代码示例,可以执行以下操作:

代码语言:javascript
复制
'use strict';
const alexaSkillKit = require('alexa-skill-kit');
const AWS = require('aws-sdk');

function binDaySkill(event, context, callback) {
  alexaSkillKit(event, context, (message) => {
    let params = {
      Item: {
        user_id: '123',
        some_data: 'some data here'
      },
      TableName: 'my_table'
    };

    let documentClient = new AWS.DynamoDB.DocumentClient();

    return documentClient.put(params).promise()
      .then((data) => {
        // stuff with the data!
        return data;
      }).catch((err) => {
        // stuff with the error
        throw err;
      });  
  });
}

n.b.它在几次调用后工作的原因是lambda重新使用了每个调用在其中执行的环境。它可以有效地“冻结”环境的状态,并在需要时将其解冻。这是人们所做的许多优化的基础;这意味着有时您会解冻一个环境,当它被alexaSkillKit首先返回冻结时,这个环境会在回调过程中解冻。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53204442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档