代码在本地工作但不在AWS Lambda上工作

时间:2016-11-24 15:35:06

标签: amazon-web-services aws-lambda alexa-skill

我有以下代码,它将构成Alexa技能的一部分,它在本地使用node.exe工作正常但是当我把它放入Lambda时,fetch不会返回任何内容!和speechOutput只是"你的头条新闻是:"。任何人都可以建议为什么它不起作用?

    var speechOutput="Your headlines are:";
     var urlPrefix = 'https://api.rss2json.com/v1/api.json?rss_url=http://news.com/feed/';
    const https = require('https');
    //console.log(https.get(urlPrefix));
    https.get(urlPrefix, (res) => {
       var body = '';
       res.on('data', function(data)
       {
          body += data;
        });

        res.on('end', function()
        {
          var result = JSON.parse(body);
          jItems=result.items;
          for ( var i=0 ; i < jItems.length ; i++ ) {
                     var article = jItems[i];

                         speechOutput +=", "+article.title ;
                                  }
          //console.log(speechOutput);
        });

    }).on('error', function(e)
       {
        console.log('Error: ' + e);
      });

1 个答案:

答案 0 :(得分:3)

我会将此添加为评论,但我没有足够的声誉。 :\

查看代码,lambda可能会在回调完成之前关闭。这就是为什么你收到第一次登录,而不是其余的。是的,如果require('https')失败,你应该得到一个错误,所以可能不是这样。

你可以发布剩下的代码吗?你在哪里调用我们的lambda中的context.done,或者在较新版本的节点中,你是否对回调函数进行回调?