python - 如何部署具有共享本地依赖项的 Google Cloud Function?
问题描述
在 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
ANDparent.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 运行时 - 指定依赖项描述 -
requirements.txt 文件或将本地依赖项与您的函数一起打包
Deploy a Python Cloud Function with all package dependencies SO 问题中提供了一些想法。
推荐阅读
- r - 具有连续变量的有序逻辑回归 - 缩放
- mysql - InnoDB 行操作的增加
- python-3.x - 如何将多个字典写入 csv 文件?[Python]
- jquery - 我的代码有问题,我希望在密码字段为空时不提交表单
- debugging - 拔出 JTAG 如何(不重新启动但)解冻在 JTAG 插入之前冻结的设备?
- variables - 为什么这个函数作为全局变量运行,而不是作为局部变量运行?
- angularjs - 启动更新版本的应用程序时如何清除浏览器缓存?
- selenium-webdriver - 使用 webdriver 滚动视图或元素
- sql-server - MS SQL - 我应该用例还有其他方法吗?
- slack - Slack 使用 slack api 向 Slack 通道发送多条消息