【发布时间】:2021-10-01 10:02:49
【问题描述】:
在 Cloud Functions 上部署时,我在使用本地模块时遇到了一些问题 - 任何想法或最佳实践都将不胜感激!
我正在尝试将我的项目的一部分部署为云功能。它使用项目中的一些本地代码,这些代码与其他模块共享——我为此使用了绝对导入。我正在使用 Cloud Repository 进行部署,并在其中说明了函数所在的文件夹 (parent\cloud_function\)。问题是父包不适用于该设置。
这是项目结构的示例:
├── parent_repo
│ ├── parent
│ │ ├── __init__.py
│ │ ├── config.conf
│ │ ├── config.py
│ │ ├── cloud_function
│ │ │ ├── __init__.py
│ │ │ ├── main.py
│ │ │ └── requirements.txt
│ │ ├── shared_module
│ │ │ ├── __init__.py
│ │ │ ├── package1.py
│ │ │ └── package2.py
│ │ ├── other_module
│ │ │ ├── __init__.py
│ │ │ ├── some_script.py
│ │ │ └── another_script.py
│ │ └── utils.py
在parent.cloud_function.main.py 和parent.other_module.some_script.py 中我使用:
from parent.shared_module.package1 import some_func
from parent.shared_module.package2 importsome_class
访问共享代码。但是,当尝试在 Cloud Functions 上部署该功能时,由于我假设它只查看文件夹,因此 parent 模块不可用。
当然,我可以简单地将所有必需的代码嵌套在 cloud_function 文件夹中 - 但从项目的角度来看并不理想 - 因为该代码在其他资源之间共享,并且在逻辑上不属于那里。
有没有人知道如何更好地做到这一点?
提前致谢!
【问题讨论】:
标签: python google-cloud-functions python-import