首页 > 解决方案 > 有没有办法在代码级别捕获 AWS lambda 超时错误?

问题描述

有什么方法可以AWS lambda timed out在代码级别捕获错误,以便我有机会在退出lambda函数之前处理错误?

标签: amazon-web-servicesaws-lambda

解决方案


虽然 lambda 环境不会触发“超时”事件,但您可以自己轻松完成此操作。

每种语言都有一个由context对象公开的函数,以获取以毫秒为单位的剩余时间

您可以将它与您使用的任何语言的计时器功能结合使用,以确保您在超时之前得到通知。

例如(节点):

function handler(event, context, callback) {
  const timer = setTimeout(() => {
    console.log("oh no i'm going to timeout in 3 seconds!");
    // &c.
  }, context.getRemainingTimeInMillis() - 3 * 1000);
  try {
    // rest of code...
  } finally {
    clearTimeout(timer);
  }
  callback(null, result);
}

推荐阅读