AWS Lambda nodejs 函数抛出异常以使用 html-pdf 生成 html 到 pdf
AWS Lambda nodejs function throwing exception to generate html to pdf using html-pdf
我们创建了 AWS Lambda
函数,使用 html-pdf 库在 nodejs4.3
eun 环境中动态生成 html 到 pdf。
该功能在工作站中运行良好。在 AWS Lambda
中进行测试时出现以下异常。
错误详情:
{
"errorMessage": "spawn /var/task/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe ENOENT",
"errorType": "Error",
"stackTrace": [
"exports._errnoException (util.js:870:11)",
"Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)",
"onErrorNT (internal/child_process.js:344:16)",
"nextTickCallbackWith2Args (node.js:437:9)",
"process._tickDomainCallback (node.js:392:17)"
]
任何人都可以告诉我如何解决这个问题。
出现错误是因为您没有 PhantomJS 二进制文件
/var/task/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe
应该将 HTML 页面保存为 PDF。
但即使您将该二进制文件与 Lambda 函数打包在一起,它仍然无法正常工作:*.exe 扩展名清楚地表明它是 Microsoft Windows 可执行文件。在 AWS Lambda 中,您需要 Linux 到 运行 的版本。
您应该在 *nix 机器上安装“phantomjs-prebuilt”和“html-pdf”包并部署
我们创建了 AWS Lambda
函数,使用 html-pdf 库在 nodejs4.3
eun 环境中动态生成 html 到 pdf。
该功能在工作站中运行良好。在 AWS Lambda
中进行测试时出现以下异常。
错误详情:
{ "errorMessage": "spawn /var/task/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe ENOENT", "errorType": "Error", "stackTrace": [ "exports._errnoException (util.js:870:11)", "Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)", "onErrorNT (internal/child_process.js:344:16)", "nextTickCallbackWith2Args (node.js:437:9)", "process._tickDomainCallback (node.js:392:17)" ]
任何人都可以告诉我如何解决这个问题。
出现错误是因为您没有 PhantomJS 二进制文件
/var/task/node_modules/phantomjs-prebuilt/lib/phantom\bin\phantomjs.exe
应该将 HTML 页面保存为 PDF。
但即使您将该二进制文件与 Lambda 函数打包在一起,它仍然无法正常工作:*.exe 扩展名清楚地表明它是 Microsoft Windows 可执行文件。在 AWS Lambda 中,您需要 Linux 到 运行 的版本。
您应该在 *nix 机器上安装“phantomjs-prebuilt”和“html-pdf”包并部署