tutorial succeed nodejs node modules example context aws node.js amazon-web-services aws-lambda

node.js - succeed - lambda node js tutorial



Solicitudes HTTP en un AWS Lambda (1)

Resolví mi propio problema.

Aparentemente, si decide incluir la URL como primer parámetro en .get() , debe incluir http:// delante de la URL, por ejemplo, http://www.google.com .

var http = require(''http''); exports.handler = function (event, context) { http.get(''http://www.google.com'', function (result) { console.log(''Success, with: '' + result.statusCode); context.done(null); }).on(''error'', function (err) { console.log(''Error, with: '' + err.message); context.done("Failed"); }); };

Alternativamente, puede especificar el primer parámetro como un hash de opciones , donde hostname puede ser la forma simple de la URL. Ejemplo:

var http = require(''http''); exports.handler = function (event, context) { var getConfig = { hostname: ''www.google.com'' }; http.get(getConfig, function (result) { console.log(''Success, with: '' + result.statusCode); context.done(null); }).on(''error'', function (err) { console.log(''Error, with: '' + err.message); context.done("Failed"); }); };

Soy nuevo en Lambdas, así que quizás haya algo que no haya captado todavía, pero he escrito una función Lambda simple para hacer una solicitud HTTP a un sitio externo. Por alguna razón, si uso los módulos http o https Node, obtengo un ECONNREFUSED .

Aquí está mi Lambda:

var http = require(''http''); exports.handler = function (event, context) { http.get(''www.google.com'', function (result) { console.log(''Success, with: '' + result.statusCode); context.done(null); }).on(''error'', function (err) { console.log(''Error, with: '' + err.message); context.done("Failed"); }); };

Aquí está la salida del registro:

START RequestId: request hash 2015-08-04T14:57:56.744Z request hash Error, with: connect ECONNREFUSED 2015-08-04T14:57:56.744Z request hash {"errorMessage":"Failed"} END RequestId: request hash

¿Hay un permiso de rol que necesito para hacer solicitudes HTTP? ¿Lambda permite incluso solicitudes HTTP simples? ¿Hay encabezados especiales que necesito establecer?

Cualquier orientación es apreciada.