【发布时间】:2018-01-04 20:20:22
【问题描述】:
我对 lambda 函数有两个疑问。
我正在尝试制作一个 Alexa 技能,它从this 站点获取一些数据,并根据用户的请求进行一些操作。
- 现在我的 lambda 函数 在我的机器上正常工作(如果我注释掉一些行)并正确显示数据。但是,lambda 函数似乎并没有等待
request在 aws 服务器 上完成,(因为我在函数中看不到 log打印在服务器上的日志中)。
这是我用来从网站获取数据的代码:
console.log("Initiating request");
request({
url: url,
json: true
}, function(error, response, body){
console.log("Request send, waiting to load the data..."); // Not executed
if(!error && response.statusCode == 200){
console.log("Data obtained :: ");
data = body;
console.log(data.toString());
});
}
else{
console.log("Error: " + error.message);
}
});
Here 是完整的代码,供进一步参考。
这是执行的日志输出:
START RequestId:621ee488-f187-11e7-b063-99e0641d97b4 版本:$LATEST 2018-01-04T19:42:23.742Z 621ee488-f187-11e7-b063-99e0641d97b4 GetNewContestIntent 2018-01-04T19:42:23.778Z 621ee488-f187-11e7-b063-99e0641d97b4 数据 用户给出: undefined undefined undefined undefined undefined 2018-01-04T19:42:23.798Z 621ee488-f187-11e7-b063-99e0641d97b4 你好 2018-01-04T19:42:26.419Z 621ee488-f187-11e7-b063-99e0641d97b4 启动 要求 2018-01-04T19:42:26.481Z 621ee488-f187-11e7-b063-99e0641d97b4 这里是 一些比赛:END RequestId:621ee488-f187-11e7-b063-99e0641d97b4 报告请求 ID:621ee488-f187-11e7-b063-99e0641d97b4 持续时间: 2808.73 毫秒计费持续时间:2900 毫秒内存大小:128 MB 使用的最大内存:47 MB
(未定义的值是可以接受的,我希望它们是"undefined")。
第二个很奇怪,我不知道为什么会发生在我身上。
- 我必须执行
npm install request才能让request函数运行,并且必须上传我的lambda 函数和sdk 的zip 文件。但正因为如此,我无法使用 Edit code Inline 选项来编辑我的代码。如果我选择该选项,它不会显示任何内容。虽然我可以看到我的其他功能的编辑器。这不是一个真正的问题,但我每次对代码进行任何更改时都必须上传完整的代码,这很麻烦。
谁能帮我解决这些问题?谢谢。
【问题讨论】:
标签: aws-lambda alexa alexa-skills-kit