AWS AppSync-GraphQL:Lambda错误未在AppSync响应中导致错误对象

时间:2020-01-29 06:32:11

标签: aws-lambda aws-appsync

我曾经在AppSync响应中获取错误对象和5xx状态代码-如果Lambda解析器抛出错误(超时错误或已处理错误,我作为lambda回调中的第一个参数发送)

例如。 `callback(errorMessage,…)

即使Lambda解析器抛出错误,我也无法在AppSync中看到错误对象。

这是实现上的更改还是错误?

我必须通过在AppSync解析器中更改响应映射模板来解决此问题,以便基于Lambda响应中的标志使用$ util.error。 这样做–我可以在AppSync响应中获取错误对象–但仍然是200 OK响应。

我们可以在AppSync中覆盖此状态代码吗?

1 个答案:

答案 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方法来定义错误类型。