python - python 谷歌云函数本地依赖
问题描述
我正在用 python 编写两个谷歌云函数。这两个函数有一些共同的代码。这是我的目录树:
root
|-- module
|-- common
|-- common_func.py
|-- func1
|-- main.py
|-- requriments.txt
|-- func2
|-- main.py
|-- requriments.txt
在commmon_func.py
我有一种common_method()
在两者中都使用的方法main.py
(对应于每个云功能)。本地工作正常进行以下导入:
from root.module.common.common_func import common_method
但是当部署到谷歌云功能时,这不起作用,我假设requirements.txt
我需要以某种方式指定运送common_func
模块。
我怎样才能做到这一点?
谢谢!
解决方案
不可能在两个不同的云功能之间共享代码,因为每个云功能都驻留在不同的 VM 上。有两种方法可以实现您想要做的事情:
创建一个包含所有需求的包并上传(您必须将常用功能的源代码添加两次,每个功能一个)
利用外部存储库,例如我重新创建了您的环境并通过调用
requirements.txt
文件上的存储库来调用依赖项。
例如,我从外部存储库中导入了一个变量的名称:
requirements.txt
文件
# Function dependencies, for example:
# package>=version
git+https://source.developers.google.com/p/project_name/r/repository_name
main.py
文件
from package_name import class_name
def hello_world(request):
request_json = request.get_json()
if request.args and 'message' in request.args:
return request.args.get('message')
elif request_json and 'message' in request_json:
return request_json['message']
else:
return class.menssage
通过这种方式,您可以通过上传到存储库来更改代码中的公共模块
推荐阅读
- c++ - C++ switch 语句错误(变量未在此范围内声明)
- properties - OWL:SymmetricProperty 没有给出想要的结果
- android - 我的游戏崩溃了。附上崩溃报告
- mockito - 如何使用 JUnit mockito 测试依赖于环境变量的代码?
- javascript - 在 Visual Studio C++ 项目中自动更新 node-gyp 包含文件的路径
- c++ - 合并两个链表会在 MSVC 中抛出 _CrtlsValidHeapPointer(block)
- php - 如何按类别转换数组和排序元素?
- c++ - 为什么 valgrind 这么晚才检测到未初始化的值
- testing - 服务器的“Cache-Control”标头如何影响 TestCafe 服务器
- r - 从 R 中的 Google Earth KML 文件中提取详细信息