在 Google Cloud Function 中运行二进制文件

在 Google Cloud Function 中运行二进制文件

我有一个生成 pdf 的云函数。云函数在 Python3.7 中,它使用模块 pdfkit==0.6.1。此 pdfkit 具有 wkhtmltopdf 依赖项。实例运行的操作系统环境不提供此依赖项。所以我所做的是将 wkhtmltopdf 二进制文件放在代码目录中并从那里使用它。问题是它给出了一个错误“[Errno 13] 权限被拒绝:'/user_code/wkhtmltopdf.deb'”。有没有办法允许对云函数中的文件具有权限?或者也许以另一种方式安装依赖项,例如“sudo apt-get install xvfb libfontconfig wkhtmltopdf

答案1

Cloud Functions 是事件驱动的无服务器;这意味着当事件发生时函数就会运行,而您不必关心背后的基础设施。pdfkit取决于wkhtmltopdf哪个二进制文件应该安装在您的服务器上,而不适用于 Cloud Functions 范围。

尽管如此,我还是尝试将二进制文件与代码一起压缩上传到 Cloud Functions,在使用 python 执行一些棘手的命令将二进制文件的权限更改为可执行后,您需要面对另一个问题,即wkhtmltopdf依赖于 QT5 库。您需要上传包含二进制文件、库和代码的 zip 文件,该文件的大小超过 150 MB,即使您认为已经完成,也需要更多的库,需要更多的内存,并且当您执行函数时,由于所有预处理,运行时间会很长。

最后,这是一个坏主意,你可能需要使用其他方法这。

相关内容