Use ILambdaContext.RemainingTime to create a valid CancellationToken for AspNetCoreServer Requests
- Lingua principale
- C#
- Stelle
- 1.7k
- Fork
- 503
- Merge medio
- 1g 18h
- PR unite (30g)
- 21
Descrizione
### Describe the feature
Currently when a Lambda execution times out, a AspNetCore request continues to execute even if it is checking a CancellationToken parameter for cancellation.
This feature would create a new CancellationTokenSource using ILambdaContext.RemainingTime and request cancellation when remaining time reaches or nears zero. This would allow consumer code to cancel long running operations in a way that is more controlled. This would create similar functionality to how timeouts are handled in Kestrel and IIS
### Use Case
Due to upstream concurrency limitations, we sometimes have a lambda AspNetCore request timeout. Since the CancellationToken passed into the request is never cancelled, we continue to try to execute retry requests in the background if a lambda is reused.
### 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 .NET SDK and/or Package version used
Amazon.Lambda.AspNetCoreServer.Hosting 1.5.0
### Targeted .NET Platform
net6.0
### Operating System and version
AmazonLinux (Lambda)
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia tracciando come Amazon.Lambda.AspNetCoreServer.Hosting 1.5.0 crea il CancellationToken delle richieste AspNetCoreServer e accede a ILambdaContext. Definisci il comportamento di annullamento in relazione a ILambdaContext.RemainingTime, inclusa la soglia prossima allo zero, quindi verifica che il lavoro delle richieste di lunga durata rilevi l’annullamento prima del timeout di Lambda e che le Lambdas riutilizzate non continuino i tentativi in background.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- aws, csharp
- Ambito
- api, backend, cloud
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100