Как запустить сценарий python в качестве подпроцесса внутри Google Cloud Function - PullRequest
0 голосов
/ 15 февраля 2020
import subprocess 
import os

def execute(): 
    code = "def Solution():\n\tprint('Hello')\n\nSolution()\n"
    f = open('/tmp/Solution.py','w')
    f.write(code+'\n')
    f.close() 
    s = subprocess.check_output("python /tmp/Solution.py", shell = True) 
    return s

Я вызываю функцию execute из обработчика облачной функции. Это работает локально, но в gcloud subprocess.check_output возвращает с ненулевым кодом выхода.

Это потому, что среда выполнения gcloud не может найти python интерпретатор? В любом случае, как я могу сделать что-то подобное? Что мне здесь не хватает? У меня не так много информации в журналах, поэтому я застрял.

Спасибо

1 Ответ

0 голосов
/ 15 февраля 2020

Вы должны ожидать, что ваша функция будет развернута в контейнере, который включает, в вашем случае, Python время выполнения. Вы не можете предполагать, что ваша облачная функция также включает в себя оболочку. Поэтому не рекомендуется использовать subprocess в вашем коде python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...