Lambda 和 API 网关映射
Lambda and API gateway mapping
我想 return 从处理程序到 API 网关响应的值 header。
Handler.js
module.exports.handler = function(event, context, cb) {
const UpdateDate = new Date();
return cb(null, {
body: {
message: 'test'
},
header: {
Last-Modified: UpdateDate
}
});
};
s-function.json 在 "endpoints"
"responses": {
"400": {
"statusCode": "400"
},
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "integration.response.body.header.Last-Modified"
},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": "$input.json('$.body')"
}
}
}
这可行。但是我想知道如何使用"integration.response.header.Last-Modified"。我的处理程序回调格式错误吗?
编辑:
s-function.json 在 "endpoints"
"integration.response.header.Last-Modified" 这行不通。
我想知道特定的处理程序 return 将数据传递给 "integration.response.header.Last-Modified"。
"responses": {
"400": {
"statusCode": "400"
},
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "integration.response.header.Last-Modified"
},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": "$input.json('$.body')"
}
}
}
lambda 函数的所有输出都在响应 body 中返回,因此您需要将部分响应 body 映射到 API 响应 header.
module.exports.handler = function(event, context, cb) {
const UpdateDate = new Date();
return cb(null, {
message: 'test',
Last-Modified: UpdateDate
});
};
将产生有效载荷“{"message" : "test", "Last-Modified" : “...”}”
在这种情况下,您将使用 "integration.response.body.Last-Modified" 作为映射表达式。作为旁注,在您的响应 body 中命名 "body" 和 "header" 可能会使映射表达式难以阅读。
谢谢,
瑞安
我想 return 从处理程序到 API 网关响应的值 header。
Handler.js
module.exports.handler = function(event, context, cb) {
const UpdateDate = new Date();
return cb(null, {
body: {
message: 'test'
},
header: {
Last-Modified: UpdateDate
}
});
};
s-function.json 在 "endpoints"
"responses": {
"400": {
"statusCode": "400"
},
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "integration.response.body.header.Last-Modified"
},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": "$input.json('$.body')"
}
}
}
这可行。但是我想知道如何使用"integration.response.header.Last-Modified"。我的处理程序回调格式错误吗?
编辑: s-function.json 在 "endpoints"
"integration.response.header.Last-Modified" 这行不通。 我想知道特定的处理程序 return 将数据传递给 "integration.response.header.Last-Modified"。
"responses": {
"400": {
"statusCode": "400"
},
"default": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Cache-Control": "'public, max-age=86400'",
"method.response.header.Last-Modified": "integration.response.header.Last-Modified"
},
"responseModels": {
"application/json;charset=UTF-8": "Empty"
},
"responseTemplates": {
"application/json;charset=UTF-8": "$input.json('$.body')"
}
}
}
lambda 函数的所有输出都在响应 body 中返回,因此您需要将部分响应 body 映射到 API 响应 header.
module.exports.handler = function(event, context, cb) {
const UpdateDate = new Date();
return cb(null, {
message: 'test',
Last-Modified: UpdateDate
});
};
将产生有效载荷“{"message" : "test", "Last-Modified" : “...”}”
在这种情况下,您将使用 "integration.response.body.Last-Modified" 作为映射表达式。作为旁注,在您的响应 body 中命名 "body" 和 "header" 可能会使映射表达式难以阅读。
谢谢, 瑞安