【问题标题】:How should I implement my lambda handler with my REST API gateway model using non- proxy lambda?我应该如何使用非代理 lambda 和我的 REST API 网关模型来实现我的 lambda 处理程序?
【发布时间】:2021-10-29 22:04:02
【问题描述】:
我不知道应该如何开始我的 lambda 处理程序,该处理程序将从 dynamodb 读取一些数据。我已经用请求和响应模型定义了我的 api 网关模型,因此我需要在 lambda 处理程序中声明任何状态代码吗?我是否使用 API 网关代理响应事件?任何代码示例
在 Java 中会有所帮助。
关于我应该在 lambda 处理程序中包含的内容的注释:
- 访问数据库
- 在表格上映射
- 查找属性
- 返回对 api 的响应?
我错过了什么?谢谢。
【问题讨论】:
标签:
amazon-web-services
aws-lambda
aws-api-gateway
【解决方案1】:
如果您决定使用非代理 Lambda 集成,则需要使用正则表达式定义集成响应。这是一个使用 nodeJS 的示例:
lambda regex
通常我这样声明我的错误消息:
const errorMessages = {
INTERNAL_SERVER_ERROR: {
message: "Internal server error!",
code: 500
},
ERROR_BODY_INVALID: {
message: "Invalid request body",
code: 400
}
};
然后抛出这样的错误
exports.handler = function(event, context, callback) {
try {
// do something
} catch (error) {
callback(JSON.stringify(errorMessages.INTERNAL_SERVER_ERROR));
};
}
当 lambda 错误正则表达式匹配时,它会映射到配置的响应状态代码。
P.D.如果您使用的是 Java,则此方法不起作用,您需要使用代理集成