У меня есть программа на boto3 (python), которая подключается к DynamoDB. Я сделал базовые функции c CRUD, которые записывают, читают, обновляют, удаляют и т. Д. c элементы в таблицу DynamoDB. В своих функциях я вызываю функции, предоставляемые boto3, как put_item()
, update_item()
, delete_item()
, et c.
. Я хочу сохранять журналы для каждого действия, выполненного моей программой. Например, создание элемента, удаление элемента, обновление ... что угодно. И затем отправка этих журналов на S3.
Теперь я застрял в получении журналов для отдельных действий. Я смотрел в Kinesis, CloudTrail ... Как я могу регистрироваться каждый раз, когда я вызываю одну из моих функций? Например, если я помещаю новый элемент с первичным ключом ('id_001', 'example@email.com '), Я хочу, чтобы оно появилось в журнале с чем-то вроде "Элемент создан: id_001".
Согласно моим поискам, лучший метод - CloudTrail. Но когда я использую CloudTrail на консоли AWS, в истории событий перечисляются такие события, как PutImage
, BatchDeleteImage
, CompleteLayerUpload
, InitiateLayerUpload
... Но эти события ничего не говорят мне о моих отдельных функциях, которые взаимодействуют с DynamoDB.
Журнал Kinesis имеет эту форму , очевидно. Как я могу вставить туда информацию о моих функциях?
Примечание: В моей программе я использую поток Kinesis. И каждая из моих функций CRUD имеет в своем определении декоратор @kinesis_log
.