Handle 's3:TestEvent' events in S3EventNotification library
- Lingua principale
- Java
- Stelle
- 2.6k
- Fork
- 1k
- Merge medio
- 2g 9h
- PR unite (30g)
- 51
Descrizione
### Describe the feature
The [s3-event-notification](https://github.com/aws/aws-sdk-java-v2/tree/master/services-custom/s3-event-notifications) library is currently used by us to parse s3 notification that come via SQS.
However, not only do we receive s3 events about new ojects in a bucket (etc.), but also [s3 test events](https://docs.aws.amazon.com/AmazonS3/latest/userguide/notification-content-structure.html#notification-content-structure-examples). Those notifications do not contain any records and the result of `S3EventNotification.fromJson(myS3Notification)` is therefore null ([see here](https://github.com/aws/aws-sdk-java-v2/blob/master/services-custom/s3-event-notifications/src/main/java/software/amazon/awssdk/eventnotifications/s3/internal/DefaultS3EventNotificationReader.java#L66-L67)).
We handle this with a null check, but it would be great if there is a convenience method (`boolean isTestEven()`?).
### Use Case
We monitor the errors around the event consumption. At the moment, we check
```java
s3EventNotification.getRecords() == null || s3EventNotification.getRecords().isEmpty()){
LOG.error("SQS message did not contain any S3 notifications: {}", sqsMessage.getText());
throw new CustomException("no messages!");
}
```
If we had a convenience method `isTestEven()` (or similar), we could filter them out and reduce noise on our monitoring.
### Proposed Solution
_No response_
### Other Information
_No response_
### Acknowledgements
- [x] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### AWS Java SDK version used
2.31.25
### JDK version used
OpenJDK Runtime Environment Temurin-11.0.17+8 (build 11.0.17+8)
### Operating System and version
Ubuntu 22.04.5 LTS
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia in services-custom/s3-event-notifications, in particolare in DefaultS3EventNotificationReader.java, riguardo al risultato null per le notifiche senza records. Leggi la struttura dell’evento di test S3 nella documentazione AWS collegata e ispeziona i test esistenti della library. Il lavoro è completato quando i callers possono identificare le notifiche s3:TestEvent tramite una convenience API supportata senza affidarsi a un controllo null.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- aws, java
- Ambito
- cloud
- Tipo di issue
- Funzionalità
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 64/100