考虑一个带有 .net Lambda 的 Step Function。
如果 lambda 在消息中抛出包含新行的异常,则 Step Function 无法正确识别类型,而是报告:
错误
Lambda.未知
原因
无法确定原因,因为 Lambda 没有返回错误类型。
最简单的重现是创建一个 .net lambda,并立即抛出 ArgumentNullException。
对于我们的自定义例外,我已经能够强制执行没有换行符。但是对于内置异常来说,这是一种痛苦。此外,创建自定义异常并将麻烦的异常作为其内部异常传递仍然不起作用。
我不得不求助于创建一个暴露原始异常文本的异常(删除换行符),所以至少我可以得到消息。但是,由于此异常的类型始终相同,因此我失去了 Step Functions 中可用的可爱分支,具体取决于类型。
注意:我也认为消息中的双引号也会使事情变得混乱。
有任何想法吗?我相信这是 AWS 中的一个错误,理想情况下我应该能够抛出任何异常,并且 Step Function 会正确报告它。