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中执行您要求的操作。