我正在使用API网关与lambda函数集成。集成类型为“ Lambda函数”,并且未选中“使用Lambda代理集成”。我正在使用字段映射和标头映射等。我能够为成功方案的请求和响应都映射字段和标头。
现在,我有一个要求,API使用者将向我传递一个transactionID,对于所有成功和失败的情况,我都必须将其返回给使用者。在成功的情况下,我可以将其映射回去,但是如果来自lambda的错误响应(当lambda函数引发异常)时,我将无法将其映射回标头。
原因是,如果发生错误响应,则从lambda函数返回自定义对象的唯一方法是返回字符串化的json。可以使用$ util.parseJson()函数在响应模板部分中解析此字符串化的json,但是我无法在标头映射部分中找到使用此函数的方法。如果不解析此字符串化的json,则在发生错误响应的情况下,我看不到任何其他选择来从lambda函数中设置标头值。
此处的AWS文档(https://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html)仅具有成功的示例(http状态200)。
其他任何人以前都遇到过这种情况吗?除了使用Lambda代理集成之外,还有其他解决方案吗?我不想使用Lambda代理集成,因为这将需要我复制lambda函数,因为我有两个使用者,并且我想使用字段映射向每个使用者发送不同的响应。