Отключите ведение журнала для синхронизации S3 в AWS Lambda с помощью библиотеки awscli в Python - PullRequest
0 голосов
/ 17 мая 2019

У меня есть лямбда, которая использует библиотеку Python awscli. Вот некоторые из ключевых частей кода:

from awscli.clidrier import create_clidriver

def handler():
  command = ['s3', 'sync', from_folder, to_folder, '--quiet']
  exit_code = create_clidriver().main(command)

В моих журналах CloudWatch я получаю строку журнала для каждого синхронизируемого файла, например:

[DEBUG] 2019-05-17T19:26:22.116Z    ... Using a multipart threshold of 8388608 and a part size of 8388608
[DEBUG] 2019-05-17T19:26:22.322Z... syncing: MY_S3_KEY -> /tmp/MY_MATCHING_PATH, file does not exist at destination
<continues for every synced file...>

Я хочу отключить эти DEBUG журналы, потому что они слишком перегружены - я синхронизирую тонны маленьких файлов.

Но я не могу понять, как это сделать. флаг --quiet не работает должным образом. Поскольку на них написано DEBUG, я подумал, что, возможно, они поступают из библиотеки Python logging, и поэтому попытался сделать это в моем лямбда-стартапе:

for logger_name in logging.root.manager.loggerDict:
    print(f"found a logger:{logger_name}")
    logger = logging.getLogger(logger_name)
    logger.setLevel(logging.INFO)

Но журналы DEBUG все еще там после запуска с этим кодом. Когда я запускаю код локально (не через SAM, а просто используя `if name == ' main '), у меня нет всех этих журналов печати, поэтому что-то есть в Lambda контекст выполнения, который добавляет это. Есть идеи?

Спасибо!

...