Уведомление о событии S3 не обновляется при повторном развертывании с новой конфигурацией фильтра; вместо этого создаетсJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Уведомление о событии S3 не обновляется при повторном развертывании с новой конфигурацией фильтра; вместо этого создаетс

Сообщение Anonymous »

У нас есть приложение, использующее бессерверную технологию с AWS Lambda, и мы управляем нашей инфраструктурой с помощью AWS CDK. Однако мы работаем с существующей корзиной S3, которая не управляется AWS CDK. Наша цель — добавить в этот сегмент уведомление о событии S3, которое будет запускать функцию Lambda при добавлении объекта. Ниже приведен код, который мы используем для добавления уведомления о событии S3:

Код: Выделить всё

lambda.addEventSource(S3EventSourceV2.Builder.create(bucket)
.events(List.of(EventType.OBJECT_CREATED_PUT))
.filters(List.of(NotificationKeyFilter.builder().prefix("images/")
.suffix(".jpg")
.build())
);
До этого момента все работает как положено. Однако когда мы обновляем суффикс на «.png» и повторно развертываем решение, все существующие уведомления, прикрепленные к корзине S3, изменяются. Имена событий S3 изменяются с Lambda ARN на случайное значение (например, «MDNhYjk0Y2QtBjg0MC00YmIxLTgyNjMtNDA3Yjc4NDk2Mgdp»), что делает существующие объекты событий S3 неизменяемыми. Хотя фильтр все еще присутствует, функция Lambda больше не может его отслеживать. Кроме того, предыдущее уведомление от моей функции Lambda не обновляется; вместо этого добавляется новый фильтр с ARN, а старое имя события заменяется случайным значением.
Чтобы решить эту проблему, мы также попытались использовать подход, ориентированный на сегменты, как показано ниже. :

Код: Выделить всё

s3Bucket.addEventNotification(
software.amazon.awscdk.services.s3.EventType.OBJECT_CREATED,
new LambdaDestination(lambdaFunction),
software.amazon.awscdk.services.s3.notifications.NotificationKeyFilter.builder()
.prefix("images/")
.suffix(".jpg")
.build()
);
Однако проблема остается. Мы также проверили конфигурацию уведомлений cnfBucket, но в итоге были удалены все существующие события уведомлений.
Не могли бы вы посоветовать, как мы можем обновить только уведомление для нашей функции Lambda, не удаляя остальные существующие уведомления или добавление новых?

Подробнее здесь: https://stackoverflow.com/questions/791 ... filter-con
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»