我正在做一个有很多小任务的项目。其中一些任务是相关的,并且需要重叠的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_1
和api_3
,而task_2
需要api_1
和api_2
。最初,我尝试使用Google Cloud Functions执行这些任务,但是遇到了GCF needs local dependencies installed in the same folder as the task问题。这意味着将代码从api_1
复制到task_1
。此外,由于GCF进行导入的方式(与.mylocalpackage.myscript
相对),本地测试将变得更加复杂:
然后您可以使用本地依赖项mylocalpackage中的代码:
from mylocalpackage.myscript import foo
有没有一种方法可以构建我的代码库,以简化GCF的部署?由于我的要求,我无法将每个API都部署为自己的GCF。 Google Cloud Run可以解决我的问题吗?
谢谢!
答案 0 :(得分:2)
要为此使用Cloud Functions,您将需要以某种方式排列代码,以使功能依赖的所有代码在部署时都位于该功能的目录中。可以通过自定义构建/打包步骤来移动文件。
要为此使用Cloud Run,您需要创建一个最小的HTTP Web服务器以将请求路由到每个“功能”。最好通过为每个要支持的功能创建一个路径来完成此操作。到那时,您已经重新创建了具有多种资源的传统Web服务。
如果这些任务的目的是Background Functions,则可以wire up Pub/Sub Push integration。