使用 AWS 上的无服务器框架发送响应 Header
Sending Response Header with the Serverless Framework on AWS
我在 AWS 上为我的 Lambda 函数使用无服务器框架。如何发送授权 headers?我当前的配置:
Lambda 函数:
module.exports.createUser = (event, context, callback) => {
let response = {
statusCode: 302,
headers: {
"Authorization": userUtil.getToken(userId)
},
body: ""
};
callback(null, response);
return;
}
serverless.yml:
createUser:
handler: functions/user.createUser
events:
- http:
path: users
method: post
cors: true
integration: lambda
以上配置将响应 object 发送为 body。状态还是200
我正在使用无服务器 v1.10
如果你想在你的代码中设置状态代码,headers 和 body,而不是在你的配置中添加它们,你需要使用 Lambda-proxy 设置。查看更多 here.
Lambda-proxy 是默认类型。因此,您需要删除 serverless.yml 中的 integration: lambda
。另外,删除 cors: true
设置并修改 handler.js 以添加 CORS headers.
将您的 Lambda 函数修改为:
module.exports.createUser = (event, context, callback) => {
let response = {
statusCode: 302,
headers: {
"Authorization": userUtil.getToken(userId),
"Access-Control-Allow-Origin" : "*", // Required for CORS support to work
"Access-Control-Allow-Credentials" : true // Required for cookies, authorization headers with HTTPS
},
body: ""
};
callback(null, response);
return;
}
将您的 serverless.yml 文件修改为:
createUser:
handler: functions/user.createUser
events:
- http:
path: users
method: post
我在 AWS 上为我的 Lambda 函数使用无服务器框架。如何发送授权 headers?我当前的配置:
Lambda 函数:
module.exports.createUser = (event, context, callback) => {
let response = {
statusCode: 302,
headers: {
"Authorization": userUtil.getToken(userId)
},
body: ""
};
callback(null, response);
return;
}
serverless.yml:
createUser:
handler: functions/user.createUser
events:
- http:
path: users
method: post
cors: true
integration: lambda
以上配置将响应 object 发送为 body。状态还是200
我正在使用无服务器 v1.10
如果你想在你的代码中设置状态代码,headers 和 body,而不是在你的配置中添加它们,你需要使用 Lambda-proxy 设置。查看更多 here.
Lambda-proxy 是默认类型。因此,您需要删除 serverless.yml 中的 integration: lambda
。另外,删除 cors: true
设置并修改 handler.js 以添加 CORS headers.
将您的 Lambda 函数修改为:
module.exports.createUser = (event, context, callback) => {
let response = {
statusCode: 302,
headers: {
"Authorization": userUtil.getToken(userId),
"Access-Control-Allow-Origin" : "*", // Required for CORS support to work
"Access-Control-Allow-Credentials" : true // Required for cookies, authorization headers with HTTPS
},
body: ""
};
callback(null, response);
return;
}
将您的 serverless.yml 文件修改为:
createUser:
handler: functions/user.createUser
events:
- http:
path: users
method: post