我在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函数中成功传递头文件值可以帮助..