AWS Lambda를 시작하고 핸들러 함수에서 외부 서비스를 요청하려고합니다. 이 답변 에 따르면 HTTP 요청은 제대로 작동해야하며 달리 언급 된 문서를 찾지 못했습니다. (사실 사람들은 Twilio API를 사용하여 SMS를 보내는 코드를 게시했습니다 .)
내 핸들러 코드는 다음과 같습니다.
var http = require('http');
exports.handler = function(event, context) {
console.log('start request to ' + event.url)
http.get(event.url, function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
console.log('end request to ' + event.url)
context.done(null);
}
내 CloudWatch 로그에 다음 4 줄이 표시됩니다.
2015-02-11 07:38:06 UTC START RequestId: eb19c89d-b1c0-11e4-bceb-d310b88d37e2
2015-02-11 07:38:06 UTC eb19c89d-b1c0-11e4-bceb-d310b88d37e2 start request to http://www.google.com
2015-02-11 07:38:06 UTC eb19c89d-b1c0-11e4-bceb-d310b88d37e2 end request to http://www.google.com
2015-02-11 07:38:06 UTC END RequestId: eb19c89d-b1c0-11e4-bceb-d310b88d37e2
나는 거기에 다른 줄을 기대합니다.
2015-02-11 07:38:06 UTC eb19c89d-b1c0-11e4-bceb-d310b88d37e2 Got response: 302
그러나 그것은 누락되었습니다. 로컬 컴퓨터의 노드에서 핸들러 래퍼없이 필수 부분을 사용하는 경우 코드가 예상대로 작동합니다.
inputfile.txt
을 위해 내가 사용은 invoke-async
호출이 있습니다 :
{
"url":"http://www.google.com"
}
요청을 수행하는 핸들러 코드의 일부가 완전히 건너 뛴 것 같습니다. 요청 lib로 시작 하여 일반 사용으로 돌아갔습니다.http
하여 최소한의 예제를 만들기 위해 을 사용하는 것으로 . 또한 로그를 확인하기 위해 제어하는 서비스의 URL을 요청하려고했지만 들어오는 요청이 없습니다.
나는 완전히 어리둥절합니다. Node 및 / 또는 AWS Lambda가 HTTP 요청을 실행하지 않는 이유가 있습니까?