Google Cloud功能在功能完成之前返回

时间:2020-04-07 11:37:03

标签: python google-cloud-platform subprocess google-cloud-functions google-cloud-pubsub

Google云功能在功能完成之前突然返回。

  1. 此执行器功能由pubsub A 触发。
  2. 发送 50 请求以发布 A
  3. 功能 executer 一次运行50个请求。但有时在显示此消息之前返回(完成)→print("Published.") (此消息表示功能已完成)
    • 功能内存为2gb,最大功能实例为40,超时为300sec
  4. 完成后,此功能将发布到pubsub B

main.py

# function name is : executer

import os
import subprocess
from google.cloud import pubsub_v1

def main(event):
    ...

    commands = event['commands']

    cmd_results = []
    for command in commands:
        print('Action execution started.')
        cmd_res = {}
        try:
            print("subprocess.run()")
            res = subprocess.run(
                command.split(" "),
                stdout=subprocess.PIPE,
                stderr=subprocess.STDOUT
            )

            print("returncode : " + str(res.returncode))
            print("result : " + str(res.stdout.decode()))
            cmd_res['returncode'] = res.returncode
            cmd_res['result'] = str(res.stdout.decode())

            cmd_results.append(cmd_res)
        except Exception as e:
            print("Error : {}".format(e))

    print("Action exectution finished.")
    data = {
        "cmd_results": cmd_results,
        "id": 1,
    }

    # publish command result to pubsub 
    try:
        print("Publish to pubusb.")
        publisher = pubsub_v1.PublisherClient()
        topic_path = publisher.topic_path("PROJECT_NAME", "TOPIC_NAME")
        publisher.publish(topic_path, data=json.dumps(data).encode('utf-8'))
        print("Published.")
        return {'status': 200}
    except Exception as e:
        print("Pubsub error : {}".format(e))

requirements.txt

botocore
google-cloud-pubsub==0.39.1

This is function log message

0 个答案:

没有答案