AWS Lambda'yı kullanmaya başladım ve işleyici işlevimden harici bir hizmet talep etmeye çalışıyorum. Bu yanıta göre , HTTP istekleri gayet iyi çalışmalı ve aksini söyleyen herhangi bir belge bulamadım. (Aslında insanlar SMS göndermek için Twilio API'sini kullanan bir kod yayınladılar .)
İşleyici kodum:
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);
}
ve CloudWatch günlüklerimde aşağıdaki 4 satırı görüyorum:
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
Orada başka bir satır bekliyorum:
2015-02-11 07:38:06 UTC eb19c89d-b1c0-11e4-bceb-d310b88d37e2 Got response: 302
ama bu eksik. Yerel makinemdeki düğümde işleyici sarmalayıcı olmadan temel parçayı kullanıyorsam, kod beklendiği gibi çalışır.
inputfile.txt
İçin kullanıyorum olduğunu invoke-async
çağrısı şudur:
{
"url":"http://www.google.com"
}
İşleyici kodunun isteği yapan kısmı tamamen atlanmış gibi görünüyor. Lib isteği ile başladım ve http
minimal bir örnek oluşturmak için Plain kullanmaya başladım . Ayrıca, günlükleri kontrol etmek için kontrol ettiğim bir hizmetin URL'sini istemeye çalıştım ve gelen hiçbir istek yok.
Tamamen şaşkına döndüm. Node ve / veya AWS Lambda'nın HTTP isteğini yürütmemesinin herhangi bir nedeni var mı?