aws / aws/aws-lambda-dotnet

CloudWatchEvents.ScheduledEvent cannot be used with EventBridge Scheduler

Aperta
#1,864 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug module/lambda-client-lib p2 service-api
Lingua principale
C#
Stelle
1.7k
Fork
503
Merge medio
1g 13h
PR unite (30g)
19

Descrizione

### Describe the bug

Attempting to use ScheduledEvent with EventBridge Scheduler fails due to JSON Serialization.

### Regression Issue

- [ ] Select this option if this issue appears to be a regression.

### Expected Behavior

I am able to use ScheduledEvent with EventBridge Scheduler.

### Current Behavior

Error converting the Lambda event JSON payload to type Amazon.Lambda.CloudWatchEvents.ScheduledEvents.ScheduledEvent: The JSON value could not be converted to Amazon.Lambda.CloudWatchEvents.ScheduledEvents.Detail. Path: $.detail | LineNumber: 0 | BytePositionInLine: 339.

### Additional Information/Context

Here's the event I'm receiving:
```json
{
"version": "0",
"id": "49672d39-8c3a-4cc6-8de5-c57b0acf718f",
"detail-type": "Scheduled Event",
"source": "aws.scheduler",
"account": "12345",
"time": "2024-11-07T22:05:00Z",
"region": "eu-central-1",
"resources": [
"arn:aws:scheduler:eu-central-1:12345:schedule/default/test-schedule"
],
"detail": "{}"
}
```

It is very-very similar to what we have in ScheduledEvent. However, "detail" here is a string, not a json object.

According to
https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html
"detail" should be a JSON object, but "{}". I have no idea why such string is allowed, or whether any other stringified JSON is possible there.

### Possible Solution

Write JSON converter, which allows Detail to be string (either allow empty object string only "{}", or a full stringified JSON object - not sure).

### AWS .NET SDK and/or Package version used

Amazon.Lambda.CloudWatchEvents 4.4.0

### Targeted .NET Platform

.NET 8

### Operating System and version

AmazonLinux

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con Amazon.Lambda.CloudWatchEvents.ScheduledEvent e la deserializzazione di Detail nella versione 4.4.0, quindi confrontalo con il payload EventBridge Scheduler fornito. Determina la forma stringa supportata per detail e verifica che l'evento Scheduler venga convertito correttamente in .NET 8 senza compromettere la normale deserializzazione degli oggetti evento.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
aws, csharp
Ambito
backend, cloud
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.