【问题标题】:My lambda function is not returning bad request我的 lambda 函数没有返回错误的请求
【发布时间】:2020-03-18 08:29:25
【问题描述】:

我尝试输入无效密码,甚至在我的 AWS Lambda 项目中抛出异常(请注意,这不是 AWS Serverless 项目)。不管我做什么,状态总是200:

代码如下:

这里是 API 网关:

我不知道如何让这个返回错误请求:(

【问题讨论】:

  • 请不要发布代码图片,发布您的实际代码。

标签: c# amazon-web-services aws-lambda response bad-request


【解决方案1】:

您返回的是 200。您需要返回类似 NotFound()BadRequest() 的内容。你只是返回一些(有效的)json。

【讨论】:

  • 按照您的建议,我添加了库 Microsoft.AspNetCore.Mvc 并将返回值更改为为 IActionResult 返回新的 BadRequestObjectResult(response),仍然返回 200
【解决方案2】:

所以我已经让它工作了,代码需要看起来像这样:

public APIGatewayProxyResponse TestAbcAsync(APIGatewayProxyRequest request, ILambdaContext context)
    {
        var loginRequest = JsonConvert.DeserializeObject<LoginRequest>(request.Body);
        return new APIGatewayProxyResponse
        {
            StatusCode = (int)HttpStatusCode.OK,
            Body = loginRequest.Username,
        };
    }

那么 API Gateway 中的设置需要检查:

应该勾选“使用 Lambda 代理集成”

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 2015-12-01
    相关资源
    最近更新 更多