将附加信息附加到 Lambda 超时消息?

时间:2020-12-23 11:46:02

标签: amazon-web-services aws-lambda amazon-cloudwatch

当 Lambda 超时时,它会向 CloudWatch(如果已启用)输出一条消息,说明“任务超时”。

在消息中附加附加信息(例如违规调用的上下文)会很有帮助。现在,我正在调用开始时将上下文写入 CloudWatch - 但有时最好将所有内容都包含在一条消息中。

这样的事情有可能吗?

2 个答案:

答案 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 中的许多自定义处理程序实现了类似的功能。