Amazon web services 如何在NodeJS中从AWS Lambda调用ImageMagick?
这是我试过的 我在AWS Lambda中将ImageMagick创建为一个层 下面是我如何调用转换代码的Amazon web services 如何在NodeJS中从AWS Lambda调用ImageMagick?,amazon-web-services,aws-lambda,imagemagick,imagemagick-convert,Amazon Web Services,Aws Lambda,Imagemagick,Imagemagick Convert,这是我试过的 我在AWS Lambda中将ImageMagick创建为一个层 下面是我如何调用转换代码的 const { spawnSync } = require("child_process") const { readFileSync, writeFileSync, unlinkSync } = require("fs") const AWS = require("aws-sdk") var fs
const { spawnSync } = require("child_process")
const { readFileSync, writeFileSync, unlinkSync } = require("fs")
const AWS = require("aws-sdk")
var fs = require("fs")
const s3 = new AWS.S3()
var path = require('path')
var os = require('os')
module.exports.handler = async (event, context) => {
try {
let imageURL = 'https://via.placeholder.com/600.png'
let fileName = "magik.png"
let bucket = "testing-image"
let id = context.awsRequestId
let workdir = os.tmpdir()
let outputFile = path.join(workdir, 'converted-' + id + ".png");
console.log("Output File Path>>>>", imageURL);
let spawn = spawnSync(
"/opt/bin/convert",
[
imageURL,
"-resize",
"50%",
outputFile
],
{ stdio: ['inherit', 'inherit', 'pipe'] }
)
if (spawn.stderr) {
console.log("Spawn error>>>>>"+ Error(spawn.stderr))
process.exitCode = 1;
}
} catch (e) {
console.log("Exception in Lambda Fn >>>>>>>", e)
}
}
当我运行此操作时,我不断遇到以下错误:
Spawn error>>>>>Error: convert: delegate failed `'curl' -s -k -L -o '%o' 'https:%M'' @
error/delegate.c/InvokeDelegate/1867.
convert: unable to open file '/tmp/magick-23JJ4ectjZG7CF': No such file or directory @
error/constitute.c/ReadImage/596.
convert: no images defined `/tmp/converted-69f6a8ae-2bdd-4a7b-a9c4-75f22f93c821.png' @
error/convert.c/ConvertImageCommand/3300.
END RequestId: 69f6a8ae-2bdd-4a7b-a9c4-75f22f93c821
当我在mac中从终端尝试以下代码时,它工作得非常好:
magick convert 'https://via.placeholder.com/600.png' -resize 50% outputImage.png
我在Lambda中错过了什么