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