В настоящее время я пытаюсь развернуть облачную функцию, запускаемую Pub / Sub, написанную на Python. Раньше для входа мы использовали loguru. Сейчас я переключаюсь на ведение журнала в облаке. Я думал, что это будет довольно просто, но весьма озадачен. Вот код, который я развернул в облачной функции, просто чтобы попробовать войти:
import base64
import logging
import google.cloud.logging as google_logging
def hello_pubsub(event, context):
client = google_logging.Client()
client.setup_logging()
logging.debug("Starting function")
logging.info("Hello")
logging.warning("warning ! ")
pubsub_message = base64.b64decode(event['data']).decode('utf-8')
logging.info(pubsub_message)
logging.error("Exit function")
Я следил за документацией, которую смог найти по этому вопросу (но на страницах могут быть показаны различные методы, и они не очень понятны). Вот результат в интерфейсе регистрации:
Это результат в "глобальных" журналах. Здесь два вопроса: почему не отображаются журналы отладки, даже если я явно установил уровень журнала как «отладка» в интерфейсе? И почему логи показываются 1, 2 или 3 раза случайным образом?
Теперь я пытаюсь отображать журналы только для моей облачной функции:
Это становится еще хуже, теперь журналы отображаются до 5 раз (и даже не столько раз, как на вкладке «Глобальный»), все уровни информации неверны (logging.info дает 1 информационную строку, 1 строка ошибки; ошибка и предупреждение приводят к 2 строкам ошибок ...)
Я полагаю, что, должно быть, делаю что-то плохое, но не могу понять, что именно, поскольку то, что я пытаюсь сделать, довольно просто. Кто-нибудь может мне помочь? Спасибо !
РЕДАКТИРОВАТЬ: Я допустил ошибку, поместив инициализацию клиента в функцию, это объясняет, что журналы отображались более одного раза. Осталась одна проблема: предупреждения отображаются как ошибки на вкладках «Облачные функции» и правильно отображаются на вкладке «Глобальные». У кого-нибудь есть представление об этом?