Как использовать DynamoDBStreamEvent Trigger Lambda при обновлении только определенного атрибута - PullRequest
0 голосов
/ 25 мая 2018

Я использую безсерверный фреймворк для развертывания cloudFormation.Я хочу, чтобы лямбда-оператор deleteObject удалялся из моей корзины S3 после того, как я обновил свою таблицу DynamoDB определенным атрибутом, например.В моей таблице есть учетная запись, пользователь, значок, и я хочу, чтобы только когда я обновлял значок, он запускал Lambda для удаления моего iconObject в корзине S3.

Когда я читаю документацию по AWS, кажется, что eventName в потоке DynamoDB Eventтолько три состояния, УДАЛИТЬ, ИЗМЕНИТЬ, ВСТАВИТЬ.

Документация AWS »Amazon DynamoDB» Справочник по API »Типы данных» Потоки Amazon DynamoDB »Запись записи

Могу ли я сделать, как показано ниже?Но откуда мне знать, что это значок обновления вместо другого атрибута, такого как учетная запись или пользователь?

if (this._record.eventName === 'MODIFY' && this._record.NewImage!== this._record.OldImage ){
        return this._remove(this._record.dynamodb);
    }

1 Ответ

0 голосов
/ 25 мая 2018

Вы на правильном пути.Если для DynamoDB StreamViewType установлено значение NEW_AND_OLD_IMAGES, то когда record.eventName === 'MODIFY', record.dynamodb.NewImage будет содержать обновленную версию элемента, а record.dynamodb.OldImage будет содержать информацию о том, какой элемент был до обновления.Затем вы можете проверить 2 объекта и найти изменения в интересующих вас полях.

...