【问题标题】: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,则此方法不起作用,您需要使用代理集成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多