我正在学习AWS,作为其中的一部分,我正在尝试使用node.js创建一个Lambda。 我正在尝试使用以下内容调用网页,请更正我。我缺少什么?
const opn = require('opn');
opn('http://google.com', {app: 'firefox'});
答案 0 :(得分:0)
我写了一篇文章,详细说明了如果你只想用Lambda命中URL,如何设置它。你可以找到它here.
如果您已经知道如何使用CloudWatch设置IAM权限和日程安排,我使用的代码通过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.简单设置。