gpt4 book ai didi

node.js - 带有html-pdf的AWS Lambda上的“ERROR Error: write EPIPE”

转载 作者:行者123 更新时间:2023-12-03 12:11:56 31 4
gpt4 key购买 nike

我编码了一个NodeJS类,该类应该从html字符串中创建PDF文件。该类已部署在AWS Lambda上。它基于html-pdf(https://www.npmjs.com/package/html-pdf)。

const {readFileSync} = require('fs');
const pdf = require('html-pdf');

process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'];

const options = { format: 'Letter' };

const createPDF = async (fileName, data) => {

let text = readFileSync('./templates/' + fileName + '.html','utf8');

data.forEach(element => {
text = text.replace("{{{" + element[0] + "}}}",element[1]);
});

console.log(text);

return new Promise(function(resolve, reject) {
pdf.create(text, options).toBuffer(function (err, buffer) {
if (!err)
resolve(buffer);
else
console.log(buffer)
});
});
};

module.exports = {
createPDF
};

但是,一旦调用方法createPDF,就会发生以下错误:
ERROR   Error: write EPIPE
at afterWriteDispatched (internal/stream_base_commons.js:154:25)
at writeGeneric (internal/stream_base_commons.js:145:3)
at Socket._writeGeneric (net.js:784:11)
at Socket._write (net.js:796:8)
at doWrite (_stream_writable.js:403:12)
at writeOrBuffer (_stream_writable.js:387:5)
at Socket.Writable.write (_stream_writable.js:318:11)
at PDF.PdfExec [as exec] (/var/task/node_modules/html-pdf/lib/pdf.js:141:15)
at PDF.PdfToBuffer [as toBuffer] (/var/task/node_modules/html-pdf/lib/pdf.js:44:8)
at /var/task/src/helper/PDFHelper.js:19:35 {
errno: 'EPIPE',
code: 'EPIPE',
syscall: 'write'
}
有人知道如何解决吗?
最好的祝福
朱利叶斯

最佳答案

我也在netlify和vercel函数上也收到此错误。
通常,此错误似乎与无服务器功能有关。
cloud run has this error too
我认为html-pdf使用websockets进行通信,而无服务器lambda函数不支持websockets
我发现的一种解决方案是使用wkhtmltopdf。它在服务器上运行wkhtmltopdf命令。为了使其正常工作,必须在服务器上安装wkhtmltopdf。我通过运行sudo apt-get install wkhtmltopdf将其安装在我的linux机器上

const wkhtmltopdf = require('wkhtmltopdf');
wkhtmltopdf('http://google.com/', { output: 'out.pdf' });

关于node.js - 带有html-pdf的AWS Lambda上的“ERROR Error: write EPIPE”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63161316/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com