【问题标题】:python google cloud function local dependencypython 谷歌云函数本地依赖
【发布时间】:2021-04-22 15:22:50
【问题描述】:

我正在用 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 模块。

我怎样才能做到这一点?

谢谢!

【问题讨论】:

    标签: python google-cloud-functions package


    【解决方案1】:

    不可能在两个不同的云功能之间共享代码,因为每个云功能都驻留在不同的虚拟机上。有两种方法可以实现您想做的事情:

    1. 创建一个包含所有需求的包并上传(您必须为每个函数添加两次常用函数的源代码)

    2. 利用外部存储库,例如我重新创建了您的环境并通过调用 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
    
    

    通过这种方式,您可以通过上传到存储库来更改代码中的通用模块

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 2019-07-04
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2018-05-28
      • 1970-01-01
      相关资源
      最近更新 更多