Рабочий процесс для задачи Google Cloud Platform не может найти библиотеку журналов

Я создал простую задачу на основе Google Cloud Platform пример push-задачи "обновить счетчик". Все, что я хочу сделать, это записать, что он был вызван в журналах Stackdriver.

from google.cloud import logging
logging_client = logging.Client()
log_name = 'service-log'
logger = logging_client.logger(log_name)

import webapp2

class UpdateCounterHandler(webapp2.RequestHandler):
    def post(self):
        amount = int(self.request.get('amount'))
        logger.log_text('Service startup task done.')


app = webapp2.WSGIApplication([
    ('/update_counter', UpdateCounterHandler)
], debug=True)

После развертывания этого и вызова возникает ошибка. В логах онлайн написано:

from google.cloud import logging
ImportError: No module named cloud

Это не локальная версия, а та, которую я развернул. Мне трудно поверить, что мне действительно нужно установить библиотеки Python в рабочую среду выполнения. (Я даже не могу представить, что могу.)


person Doug Knesek    schedule 21.03.2018    source источник


Ответы (2)


Согласно коренному файлу ознакомительных сведений. указывает:

Многие образцы требуют установки дополнительных библиотек. Если есть requirements.txt, вам нужно будет установить зависимости с pip.

Попробуйте добавить библиотеку, как описано здесь.

person Tudormi    schedule 29.03.2018

При использовании logging из стандартной библиотеки Python в App Engine журналы также попадают в Stackdriver. Таким образом, вы можете использовать import logging вместо from google.cloud import logging.

Если вы особенно заинтересованы в использовании библиотеки google.cloud.logging, ее необходимо установить в папку проекта ./lib, как указано Tudormi: здесь

person Taavi    schedule 20.04.2018