最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何为您在AWS LAMBDA故障,在节点抛出一个异常

IT培训 admin 4浏览 0评论

如何为您在AWS LAMBDA故障,在节点抛出一个异常

我做对AWS LAMBDA一套基本TDD,并注意到,如果我创建了一个简单的测试功能:

exports.handler = async (event) => {
    // Will always fail
    throw "Failed to execute - this is a failure function that will always fail";
};

当我调用它通过与com.amazonaws.services.lambda.model.InvokeRequest这个函数的响应代码的SDK,总是回来为200,和错误日志是空的!

我想知道如果我做错事了调用和询问这里错误的条款;因为它似乎疯了的JavaScript函数抛出一个异常,而当我测试报告为执行在AWS控制台LAMBDA失败会返回一个200?

我注意到,我使用的异步变种这里;所以我也试图与同步变体和context.fail()调用:

exports.handler = (event, context, callback) => {
    // Will always fail
    try {
        throw "Failed to execute - this is a failure function that will always fail";
    }
    catch(e) {
        context.fail(e);
    }
};

我肯定希望它可以返回一个500什么的,但同样,我得到一个200!

回答如下:

LAMBDA有two invocation types。

  1. requestResponse则(同步)
  2. 事件(异步)

正如你所看到的,这个问题可能不一定是你的lambda函数中存在。我的建议是要检查你的代码调用这个lambda来看看你使用的是什么样的调用类型。

如何为您在AWS LAMBDA故障,在节点抛出一个异常

我做对AWS LAMBDA一套基本TDD,并注意到,如果我创建了一个简单的测试功能:

exports.handler = async (event) => {
    // Will always fail
    throw "Failed to execute - this is a failure function that will always fail";
};

当我调用它通过与com.amazonaws.services.lambda.model.InvokeRequest这个函数的响应代码的SDK,总是回来为200,和错误日志是空的!

我想知道如果我做错事了调用和询问这里错误的条款;因为它似乎疯了的JavaScript函数抛出一个异常,而当我测试报告为执行在AWS控制台LAMBDA失败会返回一个200?

我注意到,我使用的异步变种这里;所以我也试图与同步变体和context.fail()调用:

exports.handler = (event, context, callback) => {
    // Will always fail
    try {
        throw "Failed to execute - this is a failure function that will always fail";
    }
    catch(e) {
        context.fail(e);
    }
};

我肯定希望它可以返回一个500什么的,但同样,我得到一个200!

回答如下:

LAMBDA有two invocation types。

  1. requestResponse则(同步)
  2. 事件(异步)

正如你所看到的,这个问题可能不一定是你的lambda函数中存在。我的建议是要检查你的代码调用这个lambda来看看你使用的是什么样的调用类型。

发布评论

评论列表 (0)

  1. 暂无评论