В настоящее время я пытаюсь развернуть облачную функцию, запускаемую Pub / Sub, написанную в Python. Ранее мы использовали логуру для входа. Сейчас я делаю переход к облачной регистрации. Я думал, что это будет довольно просто, но я довольно озадачен. Вот код, который я развернул в облачной функции, просто для того, чтобы попытаться войти в систему:
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 ошибкам ...)
Я предполагаю, что я, должно быть, делаю что-то плохое, но я не вижу что, как то, что я пытаюсь сделать это довольно просто. Может кто-нибудь, пожалуйста, помогите мне? Спасибо !
РЕДАКТИРОВАТЬ: я сделал ошибку, поместив инициализацию клиента в функцию, это объясняет, что журналы отображались более одного раза. Осталась одна проблема: предупреждения отображаются как ошибки на вкладках «Облачная функция» и корректно отображаются на вкладке «Глобальные». У кого-нибудь есть идеи по этому поводу?