aWS Lambda関数のコードは次のとおりです。
var https = require('https');
exports.handler = (event, context, callback) => {
var params = {
Host: "bittrex.com",
path: "/api/v1.1/public/getmarketsummaries"
};
var req = https.request(params, function(res) {
var test = res.toString();
console.log(JSON.parse(test));
//console.log(JSON.parse(res.toString()));
});
req.end();
};
エラー:getaddrinfo ENOTFOUND https://bittrex.comhttps://bittrex.com:44 at GetAddrInfoReqWrap.onlookup [errnoException(dns.js:28:10)atオンコンプリートとして](dns.js:76:26)
理解できません。助けてください。他の解決策は機能しませんでした。
AWS Lambda Node.js 6.10で正しく機能するようにコードを変更しました。テストのために、Lambdaタイムアウトを60秒に設定しました。
大きな変更は、「res.on( 'data'、function(chunk){}:」と「res.on( 'end'、function(){}」を追加することです。
var https = require('https');
exports.handler = (event, context, callback) => {
var params = {
Host: "bittrex.com",
path: "/api/v1.1/public/getmarketsummaries"
};
var req = https.request(params, function(res) {
let data = '';
console.log('STATUS: ' + res.statusCode);
res.setEncoding('utf8');
res.on('data', function(chunk) {
data += chunk;
});
res.on('end', function() {
console.log("DONE");
console.log(JSON.parse(data));
});
});
req.end();
};
ホストからhttps://
を削除します。 requireはすでにhttps/SSLを使用していると言っています。
問題はセキュリティグループにあります。ラムダにDNSを解決するためのアクセス権がないようです。ラムダ秒グループにポート53 UDPがあり、TCPが有効になっていることを確認します。