我曾经在AppSync响应中获取错误对象和5xx状态代码-如果Lambda解析器抛出错误(超时错误或已处理错误,我作为lambda回调中的第一个参数发送)>
例如。 `callback(errorMessage,…)
即使Lambda解析器抛出错误,我也无法在AppSync中看到错误对象。
这是实现上的更改还是错误?
我必须通过在AppSync解析器中更改响应映射模板来解决此问题,以便基于Lambda响应中的标志使用$ util.error。 这样做–我可以在AppSync响应中获取错误对象–但仍然是200 OK响应。
我们可以在AppSync中覆盖此状态代码吗?
答案 0 :(得分:0)
您是否将使用的映射模板的版本从2017-02-28
更改为2018-05-29
?在两个版本之间,如何处理调用错误的行为有所不同。
AppSync开发人员文档中的摘录:
以前,使用
2017-02-28
时,如果发生调用错误,则会对响应映射模板进行评估,并将结果自动放置在GraphQL响应的error块中。
使用2018-05-29
,我们现在可以选择处理错误,重新引发,引发其他错误或在返回数据时附加错误。
您可以找到我引用的here的AppSync开发人员文档。
当前,您无法在AWS AppSync中自定义错误状态代码。
建议的方法是在错误响应中使用errorType
。您可以在速度映射模板中使用$util.appendError
或$util.error
方法来定义错误类型。