当 Lambda Invoke 因错误而失败时,如何将其他数据传递给 Catch 任务?

编程入门 行业动态 更新时间:2024-10-04 03:26:05

当 Lambda Invoke 因错误而失败时,<a href=https://www.elefans.com/category/jswz/34/1771359.html style=如何将其他数据传递给 Catch 任务?"/>

当 Lambda Invoke 因错误而失败时,如何将其他数据传递给 Catch 任务?

我有这个用 nodejs 编写的 lambda 函数:

exports.handler = async (event) => {
    throw new CustomError('Custom error with data!', {
        propA: 'A',
        propB: 'B',
    });
};

class CustomError extends Error {
    constructor(message, data) {
        super(message);
        this.name = this.constructor.name;
        this.data = data; // I have declared a new field which contains some useful data for handling error in other lambda function.
    }
}

我已经用这个 lambda 函数制作了一个状态机作为第一个任务,并为此任务添加了一个捕捉器函数。当我启动新的执行时,我看到 Lambda Invoke 任务的以下输出(Catch 任务的输入是相同的):

{
  "Error": "CustomError",
  "Cause": "{\"errorType\":\"CustomError\",\"errorMessage\":\"Custom error with data!\",\"trace\":[\"CustomError: Cannot list objects\",\"    at Runtime.exports.handler (/var/task/index.js:5:11)\",\"    at Runtime.handleOnceNonStreaming (/var/runtime/Runtime.js:74:25)\"]}"
}

如您所见,Catch 输入中没有

data
字段。我想将
data
CustomError
对象传递给 Catch 任务。这可能吗?还有其他方法可以将其他错误数据传递给 Catch 任务吗?感谢任何帮助。

状态机JSON:

{
  "StartAt": "SomeJob",
  "States": {
    "SomeJob": {
      "Catch": [
        {
          "ErrorEquals": [
            "States.ALL"
          ],
          "Next": "HandleErrorTask"
        }
      ],
      "End": true,
      "Type": "Task",
      "OutputPath": "$.Payload",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "FunctionName": "...",
        "Payload.$": "$"
      }
    },
    "HandleErrorTask": {
      "End": true,
      "Type": "Task",
      "Resource": "arn:aws:states:::lambda:invoke",
      "Parameters": {
        "FunctionName": "...",
        "Payload.$": "$"
      }
    }
  },
  "TimeoutSeconds": 300
}
回答如下:

更多推荐

当 Lambda Invoke 因错误而失败时,如何将其他数据传递给 Catch 任务?

本文发布于:2024-05-30 04:12:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770156.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何将   错误   Lambda   Invoke   Catch

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!