如何使用AWS Gateway获取Lambda以在C#中返回HTTP错误状态代码

时间:2017-05-19 19:26:10

标签: c# amazon-web-services aws-lambda aws-api-gateway

我正在尝试通过我的AWS Gateway返回状态错误代码(例如500,400,401),似乎无法弄明白。

我见过几个例子,他们做了类似的事情:

return context.fail('Bad Request: You submitted invalid input');

但是,ILambdaContext对象上没有失败或成功的方法。

这是我到目前为止所做的事情(非工作)

Lambda代码:

 var addressresponse = new AddressValidationResponse();
            addressresponse.Errors = new string[1];
            addressresponse.Errors[0] = "test error";
            addressresponse.Reason = "client_error";

 return addressresponse;

Custom Error model

Integration Response

Method Response

我认为我很接近,但我仍然得到200回来的回应:

{
  "Reason": "client_error",
  "Errors": [
    "test error"
  ]
}

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

您需要在C#lambda函数中抛出异常,并使用API​​网关控制台将特定错误代码映射到响应映射模板中的HTTP响应代码。

答案 1 :(得分:-1)

我回答了类似的here

基本上你需要返回一个APIG识别的响应对象。

有C#示例here

我会说在Lambda上下文中我不是C#,基本上你需要返回header,statusCode和response Body。