2017-07-14 39 views
1

我正在寻找正确的方法来识别和更改lambda超时errorMessage使用api网关或lambda本身。如何更改默认lambda“errorMessage”通过api网关上200

说一个脚本失败,因为超时并拉姆达返回以下消息API网关,与状态200

{ 
    "errorMessage": "RequestId: 6737e0a4-68af-11e7-8ab8-7fb105ccffaacc Process exited before completing request" 
} 

有没有办法用lambda来定义呢?还是让api网关做一个映射更好?如果是的话,你能否提供任何文件作为例子?

回答

0

如果您通过AWS控制台使用API​​网关:

1)点击你的方法>方法响应>点击添加响应>输入HTTP状态代码。 例如

2)集成响应>点击添加集成响应> LAMBDA错误的Regex * “状态”:404 *

3)身体映射模板>添加应用/ JSON>粘贴此之一:

#set ($errorMessageObj = $util.parseJson($input.path('$.errorMessage'))) 
{ 
    "status" : "$errorMessageObj.status", 
    "errorType" : "$errorMessageObj.errorType", 
    "message" : "$errorMessageObj.errorMessage" 
} 

4)在你的的Lamda创建误差函数

function error(status, errorType, errorMessage, callback){ 
    callback(JSON.stringify({ 
     status: status, 
     errorType: errorType, 
     errorMessage: errorMessage 
    })); 
} 

5),你可以用它

error(404, "Not Found", "Resource is not found", callback);