当 Lambda 超时时,它会向 CloudWatch(如果已启用)输出一条消息,说明“任务超时”。
在消息中附加附加信息(例如违规调用的上下文)会很有帮助。现在,我正在调用开始时将上下文写入 CloudWatch - 但有时最好将所有内容都包含在一条消息中。
这样的事情有可能吗?
答案 0 :(得分:2)
不幸的是,没有几乎超时的钩子。但是,您可以检查在 Lambda 处理程序中获得的上下文对象,以查看剩余的运行时间,以及它是否接近超时打印附加信息。
在 python 中,您可以按照 documentation 使用 context.get_remaining_time_in_millis()
来获取该信息。
答案 1 :(得分:1)
lambda 没有超时挂钩,但可以用一点代码实现
import signal
def handler(event, context):
....
signal.alarm((context.get_remaining_time_in_millis())
.....
def timeout_handler(_signal, _frame):
raise Exception('other information')
我们为 cloudformation 中的许多自定义处理程序实现了类似的功能。