Google-Cloud-Platform

在 Google Cloud Function 中執行二進製文件

  • December 3, 2019

我有一個生成pdf的雲功能。雲函式在 Python3.7 中,它使用模組 pdfkit==0.6.1。此 pdfkit 具有 wkhtmltopdf 的依賴項。執行實例的作業系統環境不提供這種依賴關係。所以我所做的就是將 wkhtmltopdf 二進製文件放在程式碼目錄中並從那裡使用它。問題是它給出了一個錯誤“

$$ Errno 13 $$權限被拒絕:’/user_code/wkhtmltopdf.deb’”。有沒有辦法允許對雲函式中的文件的權限?或者可能以另一種方式安裝依賴項,例如“sudo apt-get install xvfb libfontconfig wkhtmltopdf

Cloud Functions 是事件驅動的無伺服器;這意味著當事件發生並且您不關心背後的基礎架構時,函式將執行。pdfkit取決於wkhtmltopdf哪個二進製文件應該安裝在您的伺服器上,但不適用於 Cloud Functions 範圍。

儘管如此,我還是嘗試將二進製文件上傳到使用程式碼壓縮的 Cloud Functions 中,並且在使用 python 執行一些棘手的命令後,將二進製文件的權限更改為可執行,你需要面對另一個問題,這wkhtmltopdf取決於 QT5 庫。您需要上傳包含超過 150 MB 的二進製文件、庫和程式碼的 zip 文件,即使您認為已經完成,也需要更多庫,需要更多記憶體,並且當您執行函式時需要很長時間由於所有的預處理,執行時間。

最後,這是一個壞主意,您可能想要使用這樣的替代方案

引用自:https://serverfault.com/questions/993790