AWS 中的 Lambda 函数是否有 TIMEOUT 环境变量?

tim*_*c22 2 amazon-web-services aws-lambda

我真的不明白为什么以前似乎没有人问过这个问题,但是是否有一个 TIMEOUT 环境变量引用AWS中的Lambda函数中设置的超时?

它似乎不在可用环境变量列表中,这似乎也没有意义: https: //docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html

std*_*bar 5

我不确定您的编程环境,但我见过的 Lambda 环境都包含一个Context对象。它能够检查 Lambda 运行还剩多少时间。以Java为例:

public class ShowTimeout implements RequestStreamHandler {

    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
        LambdaLogger logger = context.getLogger();

        logger.log("there are " + context.getRemainingTimeInMillis() + "ms left to run");
    }
}
Run Code Online (Sandbox Code Playgroud)

记录还剩多少时间。默认情况下,该时间为 3 秒,但当然可以根据您配置 Lambda 的方式进行更改。

编辑

这不是设定的总时间。但作为 Lambda 所做的第一件事,它已经非常接近了。对于 15 秒超时 Lambda,我得到:

还剩 14998 毫秒运行

还剩 14999 毫秒运行

如果您已启动 Lambda 并且看起来数字太小,那么您可以采取一些措施。如果这是您喜欢我的简单代码所做的第一件事,那么您就会非常接近。我认为简单的四舍五入就足够准确了。