以下のコードは、Lambdaの「Got response:301」を返します。私はPHP、Python、そして今はNodeでこのコードを試してみました。このリンクをブラウザに貼り付けると、この図のようにJSONデータが返されます。同じデータを印刷するコードを取得するにはどうすればよいですか?私はデータをMongoに入れることになります。私はラムダではなく、ローカルでデータを印刷するためにPHPとPythonを手に入れることができます。AWS Lambda NodeJS HTTPリクエスト、APIからのデータの出力
私はそれがthe callback() shown hereと関係があり、それを実装しようとしていると思います。
var http = require('http');
var url = 'http://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo';
exports.handler = function (event, context) {
http.get(url, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
};
私はにコードを更新:
var http = require('http');
var url = 'http://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo';
exports.handler = function (event, context) {
http.get(url, function(res) {
var data = '';
res.on('data', (chunk) => { data += chunk; });
res.on('end',() => { console.log("BODY: " + data); });
}).on('error', (e) => { console.log("Got error: " + e.message);});
};
そして、この応答を得た:
START RequestId: 19a21615-7d09-11e7-93cc-cb3212ad23c5 Version: $LATEST 2017-08-09T13:46:10.102Z 19a21615-7d09-11e7-93cc-cb3212ad23c5 BODY: END RequestId: 19a21615-7d09-11e7-93cc-cb3212ad23c5 REPORT RequestId: 19a21615-7d09-11e7-93cc-cb3212ad23c5 Duration: 277.04 ms Billed Duration: 300 ms Memory Size: 128 MB Max Memory Used: 19 MB
有効な 'User-Agent'ヘッダーを送信する必要があります。ブラウザは自動的に行いますが、ノードは自動的に行いません。あなたが使用していたPHPとPythonのライブラリが送信している可能性があります。ノード用のライブラリもあります。 –