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 关注
- 164 浏览
添加回答
举报