2017-07-21 45 views
0

我正在学习AWS,并且正在尝试使用node.js创建Lambda。 我正在尝试使用以下方式调用网页,请纠正我。我错过了什么?使用Lambda和node.js调用网页

const opn = require('opn'); 
opn('http://google.com', {app: 'firefox'}); 
+0

嗨,欢迎来到Stack Overflow。请花些时间通过[欢迎导览](https://stackoverflow.com/tour)了解您的 方式。此外,我建议你检查如何[问](https://stackoverflow.com/help/asking),特别是如何创建最小,完整和可验证的例子。 这些指导方针将帮助您在未来获得更好的答案。祝你好运! – DarkCygnus

回答

0

我写了一篇文章,详细说明如何设置这个,如果你只想用Lambda打网址。你可以找到它here.

如果你已经知道如何设置IAM权限和调度与CloudWatch的,我的代码使用Node.js的6.10运行时实现这一点:

exports.handler = (event, context, callback) => { 
var urls = event.urls; 
var http = require("http"); 
var https = require("https"); 
for (var i = 0; i < urls.length; i++) { 
    var protocol = urls[i].Protocol; 
    var domain = urls[i].Domain; 
    var queryString = urls[i].QueryString; 
    var url = protocol + "://" + domain + queryString; 
    if (protocol.toLowerCase() === "http") { 
     var j = i; 
     http.get(url, function(res) { 
      // Get around async. 
      var requestUrl = urls[j].Protocol + "://" + urls[j].Domain + urls[j].QueryString; 
      console.log("Response from " + requestUrl + ": "); 
      console.log(res.statusCode); 
      console.log(res.statusMessage); 
     }).on('error', function(e) { 
      console.log("Got error: " + e.message); 
     }); 
    } else if (protocol.toLowerCase() === "https") { 
     https.get(url, function(res) { 
      var j = i; 
      // Get around async. 
      var requestUrl = urls[j].Protocol + "://" + urls[j].Domain + urls[j].QueryString; 
      console.log("Response from " + requestUrl + ": "); 
      console.log(res.statusCode); 
      console.log(res.statusMessage); 
     }).on('error', function(e) { 
      console.log("Encountered error: " + e.message); 
     }); 
    } 
    // Force break due to async -> output. 
    if ((i+1) == urls.length) { 
     break; 
    } 
} 

};

你会被传递一个事件对象,它是类似于以下定义你想调用的URL:

{"urls": [{ 
    "Protocol": "HTTP", 
    "Domain": "www.aaronmedacco.com", 
    "QueryString": ""}, { 
    "Protocol": "HTTPS", 
    "Domain": "www.google.com", 
    "QueryString": "?key=value"}]} 

同样,如果你想一步步来,检查出this post.,设置简单。

+0

谢谢aton,它非常详细。我会尝试并回复你 – Mohan