【发布时间】:2019-01-14 23:16:27
【问题描述】:
我正在使用 AWS AppSync。当请求失败时,我试图在解析器的响应映射模板中使用 $util.error() 帮助器 (Documented here) 输出一些错误详细信息。无论我做什么,我都无法让 AppSync 在error 输出中输出data 和errorInfo 字段。
这是我拥有的 Lambda。
exports.handler = (event, context, callback) => {
callback(null, {
data: {
name: "Test",
},
errorMessage: "Some error Message",
errorType: "SomeErrorType",
errors: {
"foo": "bar",
"bazz": "buzz",
}
})
};
如您所见,它非常简单。我只是返回一个具有data、errors、errorMessage 和errorType 属性的对象。
这是我的响应映射模板
$utils.error($context.result.errorMessage, $context.result.errorType, $context.result.data, $context.result.errors)
再次,非常简单。我只是使用来自 Lambda 的字段直接抛出错误。
但是当我执行查询时,我得到了这个:
{
"data": {
"myField": null
},
"errors": [
{
"path": [
"myField"
],
"data": null,
"errorType": "SomeErrorType",
"errorInfo": null,
"locations": [
{
"line": 2,
"column": 3,
"sourceName": null
}
],
"message": "Some error Message"
}
]
}
如您所见,errorType 和 message 字段被正确填充,但 errorInfo 和 data 字段不正确。
我错过了什么吗?为什么这不起作用?
我还尝试在模板中硬编码$util.error 的参数。我得到了同样的结果......
【问题讨论】:
标签: amazon-web-services aws-appsync