我想响应个人定义的状态码和一些标题。 但是我发现即使将状态码更改为201,状态码仍为200。而且我定义的标头不在标头中。
我的处理程序,例如:
function createResponse(status, header, body) {
return {
headers: Object.assign(header, {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json;charset=utf-8'
}),
statusCode: status,
body: JSON.stringify(body)
}
}
export const hello = async (event, context, cb) => {
const rep = {
message: 'v1.0',
event: event
};
cb(null, createResponse(201, {}, rep));
return;
};
我使用serverless.yml,我的配置是:
functions:
first:
handler: handlers/first.hello
events:
- http:
method: ANY
path: first
integration: lambda
如何检查正确的代码可以更改状态代码和响应头? 我还发现我的标头仍在响应正文中,如何在响应标头中添加我的标头部分?
如果您认为我的集成部分有问题,可以给我正确的配置示例吗?
答案 0 :(得分:0)
好像您在标头中有一个嵌套对象。
参考文档
https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
这是发送正确响应的正确示例代码,
exports.handler = function(event, context, callback) {
console.log('Received event:', JSON.stringify(event, null, 2));
var res ={
"statusCode": 200,
"headers": {
"Content-Type": "*/*"
}
};
res.body = "Hello, World !";
callback(null, res);
};
希望有帮助。