html pdf在firebase云函数中运行速度非常慢



我开发了一个函数,该函数接受一页HTML,使用htmp-PDF包将其转换为PDF,并上传到firebase存储。当我从我的电脑上运行这个功能时,它只需要不到5秒,但当我从firebase功能运行它时,它需要长达6分钟。这是代码:

pdf.create(estadoCuenta, { orientation: 'portrait', type: 'pdf', timeout: '360000' }).toStream(function(err, stream) {
console.log('Nombre del archivo generado: ' + file.name);
stream.pipe(file.createWriteStream({
metadata: {
contentType: 'application/pdf',
metadata: {
origin: 'created by ...'
}
},
public: true,
validation: "md5"
}))
.on('error', function(err) {
console.log('error en la carga de archivo: ' + err);
})
.on('finish', function() {
// The file upload is complete.
let estadoCuentaPDF = file.name.replace('/','%2F');
console.log('estadoCuentaPDF:' + estadoCuentaPDF);
});
});

变量";estadoCuenta";包含要转换的html。

这是我的包.json:

{
"name": "dialogflowFirebaseFulfillment",
"description": "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase",
"version": "0.0.1",
"author": "xxx",
"repository": "https://yyy@bitbucket.org/zzz/www.git",
"license": "xxx",
"private": true,
"scripts": {
"start": "firebase serve --only functions:dialogflowFirebaseFulfillment",
"deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment"
},
"engines": {
"node": "10"
},
"dependencies": {
"-": "0.0.1",
"@google-cloud/firestore": "^3.7.5",
"actions-on-google": "^2.10.0",
"cors": "^2.8.5",
"dialogflow": "^1.2.0",
"dialogflow-fulfillment": "^0.6.1",
"dotenv": "^8.2.0",
"envfile": "^6.9.0",
"express": "^4.17.1",
"firebase-admin": "^8.0.0",
"firebase-functions": "^3.6.1",
"firebase-tools": "^7.4.0",
"html-pdf": "^2.2.0",
"isomorphic-fetch": "^2.2.1",
"node-env-file": "^0.1.8",
"nodejs-base64": "^1.0.3",
"nodemailer": "^6.3.0",
"pg": "^7.18.2",
"string-similarity": "^3.0.0",
"twilio": "^3.31.1",
"unirest": "^0.6.0"
}
}

这是因为分配给函数的计算资源无法与本地设备相比较。

云功能上的CPU速度与本文档中提到的分配内存成正比,请尝试为您的功能设置2GB内存。

有了更多的处理资源,您的功能将更快。

如果该功能在您可以接受的时间内没有响应,下一步是使用另一种无服务器产品,如App Engine或Cloud Run,它允许您为应用程序设置更多资源。

这些更改将影响您的账单。

相关内容

  • 没有找到相关文章

最新更新