【发布时间】:2020-12-11 20:03:24
【问题描述】:
我真的不明白为什么以前似乎没有人问过这个问题,但是是否有一个 TIMEOUT 环境变量引用了 AWS 中的 Lambda 函数中设置的超时?
它似乎不在可用的环境变量列表中,这似乎也没有意义:https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html
【问题讨论】:
标签: amazon-web-services aws-lambda
我真的不明白为什么以前似乎没有人问过这个问题,但是是否有一个 TIMEOUT 环境变量引用了 AWS 中的 Lambda 函数中设置的超时?
它似乎不在可用的环境变量列表中,这似乎也没有意义:https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html
【问题讨论】:
标签: amazon-web-services aws-lambda
我不确定您的编程环境,但我见过的任何 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");
}
}
记录剩余时间。默认情况下为 3 秒,但当然可以根据您配置 Lambda 的方式进行更改。
编辑
这不是设定的总时间。但作为 Lambda 做的第一件事,它非常接近。对于 15 秒超时 Lambda,我得到:
还有 14998 毫秒要运行
和
还有 14999 毫秒要运行
如果您已经启动了 Lambda,并且看起来数量太少,那么您可以采取一些措施。如果这是您喜欢我的简单代码的第一件事,那么您将非常接近。我认为简单的四舍五入就足够准确了。
【讨论】: