2

我正在从事一个有许多小任务的项目。其中一些任务是相关的并且需要重叠的 api。

task_1/
    main.py
task_2/
    main.py
apis/
    api_1/
    api_2/
    api_3/
test/
    test_api_1.py
    test_api_2.py
    test_task_1.py
    test_task_2.py
    test_task_3.py

例如,task_1需要api_1api_3,而task_2需要api_1api_2。起初我尝试使用 Google Cloud Functions 来执行这些任务,但我遇到了GCF 需要将本地依赖项安装在与任务相同的文件夹中的问题。这意味着将代码从复制api_1task_1. 此外,由于 GCF 导入的方式(相对于 ),本地测试会变得更加复杂.mylocalpackage.myscript

然后,您可以使用本地依赖项 mylocalpackage 中的代码:

from mylocalpackage.myscript import foo

有没有办法构建我的代码库以更轻松地部署 GCF?由于我的要求,我无法将每个 API 部署为自己的 GCF。Google Cloud Run 会解决我的问题吗?

谢谢!

4

1 回答 1

2

要为此使用 Cloud Functions,您需要以这样一种方式安排您的代码,即一个函数所依赖的所有代码在部署时都存在于该函数的目录中。这可以作为自定义构建/打包步骤来移动文件。

要为此使用 Cloud Run,您需要创建一个最小的 HTTP 网络服务器来将请求路由到您的每个“函数”。这可能最好通过为您要支持的每个功能创建一个路径来完成。此时,您已经重新创建了具有多个资源的传统 Web 服务。

如果这些任务是作为后台功能,您可以连接 Pub/Sub Push 集成

于 2019-06-19T23:02:40.957 回答