使用gm imagemagick调整大小,裁剪和单色的AWS Node JS Lambda超时

问题描述

我的lambda函数监视s3,获取对象并裁剪/调整大小到所需的大小,然后上传。我确实有用于imagemagick的lambda层,并且在调整大小方面已经取得了一些成功,但是它可能在10%的时间内起作用。 这些是我的imagemagick函数

distinct(my.df,!!sym(iKey),.keep_all= TRUE)

调用调整大小或裁剪为

exports.resizeImg = async (buf,width,height) => {
  return new Promise((resolve,reject) => {
    gm(buf).resize(width,height).noprofile().toBuffer((err,buffer) => err ? console.log(err) : resolve(buffer));
   });
};

exports.cropImg = async (buf,reject) => {
    gm(buf).crop(width,height,0).noprofile().toBuffer((err,buffer) => err ? reject(err) : resolve(buffer));
   });
};

exports.monochromeImg = async (buf) => {
  return new Promise((resolve,reject) => {
    gm(buf).monochrome().noprofile().toBuffer((err,buffer) => err ? reject(err) : resolve(buffer));
   });
};

然后将二进制文件/缓冲区传递给s3上载,这是有效的。如果调整大小有效。

我也曾尝试将缓冲区写入fs,但是那里也没有运气。

const resized = await resizeImg(buffer,200,200);

imagemagick仍然可以使用吗?还是我应该只使用夏普?

解决方法

我有同样的错误,我通过增加超时时间来修复

新的 aws 用户界面

lambda function -> configuration -> General configuration -> Edit Timeout

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...