Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在Google Cloud函数中运行子流程?_Python 3.x_Google Cloud Platform_Subprocess_Google Cloud Functions_Google Cloud Dataflow - Fatal编程技术网

Python 3.x 如何在Google Cloud函数中运行子流程?

Python 3.x 如何在Google Cloud函数中运行子流程?,python-3.x,google-cloud-platform,subprocess,google-cloud-functions,google-cloud-dataflow,Python 3.x,Google Cloud Platform,Subprocess,Google Cloud Functions,Google Cloud Dataflow,我想在我的云函数中运行一个子进程,以触发写入外部文件的数据流管道 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

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

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”。请记住,您处于无服务器体系结构中,不知道底层服务器、操作系统和平台是什么。执行子进程python可能会导致意外的结果(python 2或3?哪些依赖项?…)如果呼叫被接受。事实上,您将为请求处理时间付费。如果您分叉进程并运行后台线程,则计费是不公平的。这就是为什么禁止执行此类操作的原因。我建议您重新设计应用程序


云函数是一种托管运行时,您没有办法做到这一点。您可能希望了解Cloud Run,它在许多方面与云函数类似,但运行的是您构建的容器。您可能可以在Cloud Run中执行您要求的操作。