错误:使用html-to-pdf软件包在AWS Lambda上生成EACCES

时间:2019-06-07 20:50:24

标签: node.js aws-lambda

我正在尝试使用节点js在AWS Lambda上将html转换为pdf。我收到“错误:生成EACCES”消息。我正在使用https://www.npmjs.com/package/html-pdf

完整消息在这里:

START RequestId: 8bc188e7-8249-41d7-b8f7-8a2585ea8e46 Version: $LATEST
2019-06-07T20:44:44.824Z    8bc188e7-8249-41d7-b8f7-8a2585ea8e46    ************** start
2019-06-07T20:44:45.025Z    8bc188e7-8249-41d7-b8f7-8a2585ea8e46    Error: spawn EACCES
    at _errnoException (util.js:1022:11)
    at ChildProcess.spawn (internal/child_process.js:323:11)
    at Object.exports.spawn (child_process.js:502:9)
    at PDF.PdfExec [as exec] (/var/task/node_modules/html-pdf/lib/pdf.js:87:28)
    at PDF.PdfToBuffer [as toBuffer] (/var/task/node_modules/html-pdf/lib/pdf.js:44:8)
    at exports.handler (/var/task/index.js:17:35)
END RequestId: 8bc188e7-8249-41d7-b8f7-8a2585ea8e46
REPORT RequestId: 8bc188e7-8249-41d7-b8f7-8a2585ea8e46  Duration: 345.46 ms Billed Duration: 400 ms     Memory Size: 128 MB Max Memory Used: 39 MB  
RequestId: 8bc188e7-8249-41d7-b8f7-8a2585ea8e46 Process exited before completing request

1 个答案:

答案 0 :(得分:2)

夫妇的想法:

1)您如何打包和上传代码? lambda要求文件对所有用户(特别是“其他”)具有读取权限,如果缺少此权限,则在尝试调用该函数时会收到一个非显而易见的错误。修复非常简单,请在创建zip文件之前执行“ chmod a + r *”。如果该代码在嵌入式编辑器中可见,则添加一个空行并保存也可以解决该问题,大概是通过使用正确的权限覆盖该文件来实现的。

2)您将转换后的文件保存在哪里/您正在使用lambda tmp目录?可能是错误的路径

3)Lambda超时没有足够的时间执行您的函数。可能性较小,但是由于提到了完成过程之前退出的过程,因此我会仔细检查。检查功能的超时设置