web-dev-qa-db-ja.com

AWS Lambda:エラー:getaddrinfo ENOTFOUND

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)

理解できません。助けてください。他の解決策は機能しませんでした。

9
AmazingDayToday

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();
};
1
John Hanley

ホストからhttps://を削除します。 requireはすでにhttps/SSLを使用していると言っています。

3
stdunbar

問題はセキュリティグループにあります。ラムダにDNSを解決するためのアクセス権がないようです。ラムダ秒グループにポート53 UDPがあり、TCPが有効になっていることを確認します。

0
Suken Shah