Edited at

Lambdaからhttpリクエスト

More than 3 years have passed since last update.


Lambdaからhttpリクエスト

この記事はAWS Lambda Advent Calendar 2014へのエントリー記事です。

Lambdaでは、node.js標準のモジュールが利用可能です。これを利用してhttpリクエスト[1]を実行してみました。

http://aws.amazon.com/lambda/faqs/

Q: What languages does AWS Lambda support?

At launch AWS Lambda supports code written in Node.js (JavaScript). Your code can include existing Node.js libraries, even native ones.


Function

var http = require ('http');

exports.handler = function(event, context) {
console.log('value1 = ' + event.key1);
http.get("http://www.google.com/index.html", function(res) {
console.log("Got response: " + res.statusCode);

res.on("data", function(chunk) {
context.done(null, chunk);
});
}).on('error', function(e) {
context.done('error', e);
});
};


出力

Logs

----
START RequestId: 8e2c889c-74a0-11e4-b6d0-73063f569a63
2014-11-25T12:42:57.815Z 8e2c889c-74a0-11e4-b6d0-73063f569a63 value1 = value1
2014-11-25T12:42:57.968Z 8e2c889c-74a0-11e4-b6d0-73063f569a63 Got response: 200
END RequestId: 8e2c889c-74a0-11e4-b6d0-73063f569a63
REPORT RequestId: 8e2c889c-74a0-11e4-b6d0-73063f569a63 Duration: 221.39 ms Billed Duration: 300 ms Memory Size: 128 MB Max Memory Used: 10 MB

Message
-------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"><head><meta content="Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly
...


終わりに

コールバックに初挑戦しました。動くものができるまで、様々な紆余曲折がありました。


参考文献

[1] http://nodejs.org/api/http.html#http_http_get_options_callback