amazon-web-services
  • aws-lambda
  • alexa-skill
  • 2016-11-24 41 views 1 likes 
    1

    我有以下代碼,它將形成Alexa技巧的一部分,它可以在本地使用node.exe很好地工作,但是當我將它放入Lambda時,該提取不會返回任何內容!和speechOutput只是「你的標題是:」。任何人都可以提出爲什麼它不起作用?在本地工作但不在AWS上的代碼Lambda

    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); 
         }); 
    
    +0

    您是否在您上傳到lambda的部署包中包含了任何引用的庫? –

    +0

    湯姆,不應該不需要應該我,因爲我只使用https?代碼運行時沒有錯誤,如果庫缺失,我是否會發現錯誤? –

    +0

    很確定這是與異步運行,但我不知道如何解決這個問題。 –

    回答

    2

    我想將此添加爲評論,但我沒有足夠的聲望。 :\

    查看代碼,lambda可能在您的回調完成之前關閉。這就是爲什麼你會收到第一次日誌,而不是其他日誌。是的,如果require('https')失敗,你應該會得到一個錯誤,所以可能並非如此。

    你可以發佈你的其他代碼嗎?你在哪裏在我們的lambda中調用context.done,或者在較新版本的節點中,你是否會對處理程序執行回調?

    相關問題