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