Облачная функция Google возвращается до завершения функции - PullRequest
0 голосов
/ 07 апреля 2020

Функция Google cloud неожиданно возвращается до завершения функции.

  1. Эта функция запуска вызывается pubsub A .
  2. Send 50 запрос к pubusb A .
  3. Функция исполнитель выполнение 50 запросов один за другим. Но иногда возвращается (завершено) перед тем, как показать это сообщение → print("Published.") (это сообщение означает, что функция завершена)
    • память функции составляет 2 ГБ, максимальное количество экземпляров функции составляет 40, время ожидания составляет 300 с c
  4. После завершения эта функция будет опубликована sh в 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))

needs.txt

botocore
google-cloud-pubsub==0.39.1

Это сообщение журнала функций

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