编程语言
首页 > 编程语言> > java – AWS Lambda:任务超时

java – AWS Lambda:任务超时

作者:互联网

我们已经要求我的学校项目编写一个在AWS Lambda中运行的Java代码.它应该获取特定URL的源代码,然后将其上载到S3存储桶. Java代码应该在AWS Lambda上运行.

我在Java中获取String变量的源代码.然后我有while循环尝试将String写入/ tmp目录中的文件.然后将文件上传到S3.

一切正常,但我遇到了一个特定的URL.我已经跟踪了这个问题:

try {
    BufferedWriter out = new BufferedWriter(new FileWriter("/tmp/url.txt"));
    out.write(source_code);  //Replace with the string 
    //you are trying to write  
    out.close();
}
catch (IOException e) {
    System.out.println("Exception ");
}

最奇怪的是,当我在本地测试代码时,一切正常.文件在我的计算机上的/ tmp目录中创建,然后上传到S3存储桶.但是,当我在Lambda中运行代码时,我收到以下错误:

Task timed out after 15.00 seconds

知道为什么Lambda在这个特定情况下无法将文件写入临时目录并且与其他人一起使用?

解决方法:

Amazon Lambda旨在用作响应事件的事件驱动系统.流程是:

>某些事情发生在触发Lambda的地方(例如上传到Amazon S3,数据进入Amazon Kinesis流,应用程序直接调用Lambda函数)
>创建Lambda函数,传递来自触发事件的数据
> Lambda函数运行

Lambda函数的最大执行时间限制为15分钟(最近从最初的5分钟超时开始增加).创建Lambda函数时配置实际限制.限制已经到位,因为Lambda函数意味着小而快,而不是大型应用程序.

您的错误消息显示任务在15.00秒后超时.这意味着AWS在达到15秒的运行时间后故意停止任务.它与当时函数的功能无关,也与正在处理的文件无关.

修复:增加Lambda函数配置页面上的超时设置.

标签:java,amazon-web-services,aws-lambda
来源: https://codeday.me/bug/20191004/1853512.html