0
我正在学习AWS,并且正在尝试使用node.js创建Lambda。 我正在尝试使用以下方式调用网页,请纠正我。我错过了什么?使用Lambda和node.js调用网页
const opn = require('opn');
opn('http://google.com', {app: 'firefox'});
我正在学习AWS,并且正在尝试使用node.js创建Lambda。 我正在尝试使用以下方式调用网页,请纠正我。我错过了什么?使用Lambda和node.js调用网页
const opn = require('opn');
opn('http://google.com', {app: 'firefox'});
我写了一篇文章,详细说明如何设置这个,如果你只想用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.,设置简单。
谢谢aton,它非常详细。我会尝试并回复你 – Mohan
嗨,欢迎来到Stack Overflow。请花些时间通过[欢迎导览](https://stackoverflow.com/tour)了解您的 方式。此外,我建议你检查如何[问](https://stackoverflow.com/help/asking),特别是如何创建最小,完整和可验证的例子。 这些指导方针将帮助您在未来获得更好的答案。祝你好运! – DarkCygnus