代码之家  ›  专栏  ›  技术社区  ›  Nofar103

Lambda AWS-例外

  •  3
  • Nofar103  · 技术社区  · 7 年前

    在我的代码中,当出现非法状态时,我抛出一个异常。

    在他们的文档中,都是关于处理错误/异常的。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Dunedan    7 年前

    AWS Lambda在遇到异常时会做什么取决于它是如何被调用的。简而言之:如果它被同步调用,则会将错误返回给调用方,如果它被异步调用,则会发生重试。有关更多详细信息,请查看 https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html

    https://aws.amazon.com/de/blogs/compute/container-reuse-in-lambda/ )

        2
  •  2
  •   Bernhard    6 年前

    我在处理这个问题时遇到了很多问题,因为没有太多的文档或博客帖子。最后,我学到了:

    1. 始终放置 尝试/抓住 在所有函数中,这条规则没有例外。其入口点函数是否 lambda 或任何内部或嵌套函数。
    2. 在父级中引发异常和捕捉 . 气泡上升,直到u达到入口点函数。
    3. Nodejs错误不能 JSON.stringify 要解决此问题,请执行以下操作:

      function GetErrorObject(data) {
        let dataToSend = data;
      
        //check if error object
        if (data.hasOwnProperty('stack')) {
          dataToSend = JSON.parse(JSON.stringify(data, Object.getOwnPropertyNames(data)));
        }
        return { message: dataToSend};
      }
      

    这是唯一的演示,根据您的要求进行修改。idea是读取错误对象的每个属性并转换为有效的JSON。希望有帮助

        3
  •  1
  •   djhworld    7 年前

    在代码之外传播的异常将被捕获,该调用将被标记为“错误”,您将在CloudWatch中看到这方面的度量。

    这不会影响函数的未来调用,即您可以再次触发lambda,它将再次运行您的代码。