2 回答

TA貢獻1869條經驗 獲得超4個贊
實際上可以通過三種方式(我知道):
從 CDN 提供靜態文件。例如來自http://cdnjs.cloudflare.com/ajax/libs/swagger-ui/3.40.0/
自己在不同的端點上托管靜態文件
將靜態文件添加到云函數的根文件夾中。這些將與您的代碼一起打包,因此在部署時可用
(我選擇了選項 3)
對于選項 2 和 3,您必須覆蓋 swaggerui 用于其靜態資產的文件夾。如何執行此操作取決于您如何配置 swagger ui。
就我而言,我使用的是 flask_restx Python 包來生成swagger.json并提供 swaggerui。所以我像這樣猴子補丁:
from flask_restx.apidoc import apidoc
apidoc.static_folder = '<MY STATIC FOLDER PATH' # e.g. os.path.abspath('static/swaggerui')
此外,您需要在運行之前將文件從 swaggerui 庫復制到函數的根目錄gcloud function deploy ...。
static在 CI 管道期間,我將文件夾從 flask_restx復制到函數的根目錄。
希望這對任何人都有幫助!

TA貢獻1871條經驗 獲得超8個贊
我以多種方式嘗試了它,它在本地以與 Cloud Functions 相同的行為(相同的函數簽名)工作,但在 Cloud Functions 上部署后它沒有工作。
我明白為什么了。事實上,Buildpack(Google 開發的用于構建沒有 Dockerfile 的容器的工具,現在在 CNCF 沙箱中)編譯 .go 文件并將二進制文件復制到最終容器層。省略所有其他文件/目錄。因此,它不能工作!
我推薦你使用Cloud Run(與 Cloud Functions 相同的底層平臺,并且在某些情況下更便宜。我寫了一篇關于此的文章)
另一種解決方案是使用未編譯的語言,例如 NodeJS 或 Python。
- 2 回答
- 0 關注
- 147 瀏覽
添加回答
舉報