如何在AWS lambda函数中访问标头值

时间:2016-07-19 07:56:59

标签: node.js amazon-web-services curl amazon-s3 aws-lambda

我在nodeJS中创建了一个Lambda身份验证函数,并创建了一个API网关,并通过从CURL的主体传递参数来成功调用该函数。

代码。

var AWS = require('aws-sdk');
var lambda = new AWS.Lambda();
var RES;
exports.handler = function(event,context,callback) {
    var userName=event.userName;
    var passWord=event.passWord;
  var params = {
    FunctionName: 'ServiceAuthentication', // the lambda function we are going to invoke
    InvocationType: 'RequestResponse',
    LogType: 'Tail',
    Payload: '{ "userName": "'+userName+'","passWord": "'+passWord+'" }'
  };

  lambda.invoke(params, function(err, data) {
    if (err) {
      context.fail(err);

    } else {
      //context.succeed('ServiceAuthentication said '+data.Payload);
      var response=data.Payload;
      console.log("Response received is : ",response);
      if(response === true){
           RES = '{"ResponseJSON":{"Body":{"Datalist":{"Authentication":'+response+'}}}}';
      }else{
           RES = '{"ResponseJSON":{"Body":{"Datalist":{"Authentication":'+response+'}}}}'; 
      }
     callback(null, JSON.parse(RES));
    }});
};

在上面的代码中,我在CURL请求中传递了正文中的用户名和密码,并收到了成功的响应

CURL请求:

curl -X POST -d '{"userName": "vikash|214057357158656","passWord": "12345"}' https://execute-api.us-west-2.amazonaws.com/prod/Invokefunction

响应:

{"ResponseJSON":{"Body":{"Datalist":{"Authentication":"true"}}}}

我想在curl的标题中传递用户名和密码,而不是在正文中。

例如:

curl -X POST -H "userName": "vikash|214057357158656" -H "passWord": "123456" -d '{}' https://execute-api.us-west-2.amazonaws.com/prod/Invokefunction

但lambda函数不能访问curl中的头文件,如何做到这一点以及如何在lambda函数中成功传递头文件值可以帮助..

0 个答案:

没有答案