【问题标题】:Structuring Google Cloud Platform project构建谷歌云平台项目
【发布时间】:2019-10-31 08:52:56
【问题描述】:

我正在处理一个包含许多小任务的项目。其中一些任务是相关的,需要重叠的 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 会解决我的问题吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-11
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2020-06-02
      • 2021-04-07
      • 2020-05-09
      相关资源
      最近更新 更多