构建Google Cloud Platform项目

时间:2019-06-17 18:15:33

标签: python-3.x google-cloud-platform google-cloud-functions google-cloud-run

我正在做一个有很多小任务的项目。其中一些任务是相关的,并且需要重叠的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 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可以解决我的问题吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

要为此使用Cloud Functions,您将需要以某种方式排列代码,以使功能依赖的所有代码在部署时都位于该功能的目录中。可以通过自定义构建/打包步骤来移动文件。

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

如果这些任务的目的是Background Functions,则可以wire up Pub/Sub Push integration