Я безуспешно пытался использовать модуль http в моей конечной точке Node.js для простого получения http.
Я следовал различным учебным пособиям, чтобы выполнить get в рамках моих намерений, но он продолжает терпеть неудачу с getaddrinfo ENOTFOUND в журнале cloudwatch.
Похоже, что я правильно готовлю URL, если я просто обрезаю и пропускаю вывод URL-адреса в браузер, я получаю ожидаемый ответ, и просто через http получается порт 80.
Я подозреваю, что, возможно, у лямбды, размещенной в Alexa, нет разрешения, необходимого для удаленных вызовов веб-сервисов, не принадлежащих Amazon, но я точно не знаю.
Кто-нибудь может пролить свет? К вашему сведению, это код в моей лямбде:
var http = require('http');
function httpGet(address, zip, zillowid) {
const pathval = 'www.zillow.com/webservice/GetSearchResults.htm' + `?zws-id=${zillowid}` + `&address=${encodeURIComponent(address)}&citystatezip=${zip}`;
console.log ("pathval =" + pathval);
return new Promise(((resolve, reject) => {
var options = {
host: pathval,
port: 80,
method: 'GET',
};
const request = http.request(options, (response) => {
response.setEncoding('utf8');
console.log("options are" + options);
let returnData = '';
response.on('data', (chunk) => {
returnData += chunk;
});
response.on('end', () => {
resolve(JSON.parse(returnData));
});
response.on('error', (error) => {
console.log("I see there was an error, which is " + error);
reject(error);
});
});
request.end();
}));
}