Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 大型JSON文件(4000个对象)没有';t写入dynamodb,但小文件(10个对象)可以工作_Amazon Web Services_Amazon S3_Aws Lambda_Amazon Dynamodb_Aws Sdk Nodejs - Fatal编程技术网

Amazon web services 大型JSON文件(4000个对象)没有';t写入dynamodb,但小文件(10个对象)可以工作

Amazon web services 大型JSON文件(4000个对象)没有';t写入dynamodb,但小文件(10个对象)可以工作,amazon-web-services,amazon-s3,aws-lambda,amazon-dynamodb,aws-sdk-nodejs,Amazon Web Services,Amazon S3,Aws Lambda,Amazon Dynamodb,Aws Sdk Nodejs,试图从S3 bucket读取大JSON(66mb)并将数据写入dynamodb时,在cloudwatch中获取任务在3.01秒后超时 较小的JSON文件正在读取和写入我的dynamodb表,但在本例中,当JSON文件包含大量对象(4000个对象,66MB文件)时,lambda函数只返回任务,该任务在3.01秒后超时 const AWS=require('AWS-sdk'); const s3=新的AWS.s3(); const documentClient=新的AWS.DynamoDB.docu

试图从
S3 bucket
读取
大JSON(66mb)
并将数据写入dynamodb时,在cloudwatch中获取
任务在3.01秒后超时

较小的JSON文件正在读取和写入我的dynamodb表,但在本例中,当JSON文件包含大量对象(4000个对象,66MB文件)时,lambda函数只返回
任务,该任务在3.01秒后超时

const AWS=require('AWS-sdk');
const s3=新的AWS.s3();
const documentClient=新的AWS.DynamoDB.documentClient({
ConvertEmptyValue:true
} );
exports.handler=异步(事件)=>{
const{name}=event.Records[0].s3.bucket;
const{key}=event.Records[0].s3.object;
常量参数={
Bucket:name,
钥匙:钥匙
}
试一试{
const data=wait s3.getObject(params.promise();
const carsStr=data.Body.toString();
const usersJSON=JSON.parse(carsStr);
log(`USERS::${carsStr}`);
对于(var i=0;i
不要使用Lambda写入DynamoDB,而是在开发机器上填充表

如果您希望经常有大型JSON文件进入S3存储桶,为了触发Lambda,您需要增加函数的默认超时。最大超时时间为15分钟。默认超时为3秒

您还可以增加表中DynamoDB写入容量单位的数量。写入容量单位表示对大小不超过1KB的项每秒写入一次。例如,假设您创建了一个具有10个写入容量单位的表。这允许您每秒执行10次写入操作,写入的项目大小不超过每秒1KB


文档:

AWS Lambda默认超时为3秒,这就是您在日志中看到超时错误的原因。您可以根据需要增加,最多可增加900秒

依照

Timeout–Lambda允许函数运行的时间量 在停止之前。默认值为3秒。允许的最大值 值为900秒


注意:对于需要更长执行时间的任务,增加超时时间肯定是一种解决方案。但是在增加超时之前总是考虑代码优化。

这个问题与lambda有关,lambda超时是什么?也考虑使用文档客户端的BADCHWORD方法。问题是lambda超时!谢谢