如何在Google Cloud Function中运行子流程?

问题描述 投票:0回答:1

我想在我的云函数内部运行一个子流程,以触发写入外部文件的数据流管道。

import base64
import subprocess

def hello_pubsub(event, context):

    if 'data' in event:
        name = base64.b64decode(event['data']).decode('utf-8')

    else:
        name = 'World'
    print('Hello {}!'.format(name))
    var = subprocess.run(["python", "./defaultTrigger.py", "--input_topic", " projects/my_project/subscriptions/sub1" ,"--output_topic", "projects/my_project/topics/topic2"])

Ps:我的数据流管道从sub1读取并写入topic2。

我的云功能由pubsub触发。

CompletedProcess(args = ['python','...',...],returncode = 1

python-3.x google-cloud-platform subprocess google-cloud-functions google-cloud-dataflow
1个回答
0
投票

我回答了你here

另一部分是您希望在Function中执行一个子过程并在此子过程中调用“ python”。请记住,您处于无服务器架构中,您不知道底层服务器,操作系统和平台是什么。如果接受了调用,则执行子进程python可能会导致意外情况(python 2或3?哪个依赖项?...)。实际上,您需要为请求处理时间付费。如果您分叉进程并运行后台线程,则计费不公平。这就是为什么禁止执行这种操作的原因。我建议您重新设计您的应用]

© www.soinside.com 2019 - 2024. All rights reserved.