Support IDisposable for Function Handlers
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit der Überprüfung des Handler-Verhaltens von Amazon.Lambda.Core 2.7.1 und des in diesem Issue beschriebenen SIGTERM-Lebenszyklus und vergleiche ihn anschließend mit dem früheren Issue 342. Als erledigt gilt die Aufgabe, wenn die Runtime eine definierte Möglichkeit bietet, Function-Handler zu disposen, wenn Lambda SIGTERM sendet, einschließlich Bereinigung wie dem Leeren von Logs oder dem Schließen von Verbindungen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the feature
It's the same feature request as https://github.com/aws/aws-lambda-dotnet/issues/342 - to dispose function handler when Lambda service deletes the execution environment.
It was closed because there was no hook from lambda service at that time. But now there is - Lambda sends SIGTERM to runtime before reclaiming the environment.
Use Case
Any features which requires some cleanup.
Flushing logs and traces, closing DB connections, etc.
Proposed Solution
I have implemented it for my handlers via smth like that:
public abstract class AbstractLambdaHandler : IDisposable
{
private readonly PosixSignalRegistration sigTermRegistration;
protected AbstractLambdaHandler()
{
// AWS Lambda service sends SIGTERM signal before killing lambda container, but
// lambda-dotnet runtime does not handle it yet - https://github.com/aws/aws-lambda-dotnet/issues/342 .
// Until it is implemented, we use custom signal registration to dispose lambda handler.
sigTermRegistration = PosixSignalRegistration.Create(PosixSignal.SIGTERM, _ =>
{
Logger?.LogDebug("SIGTERM signal received. Disposing Lambda Handler.");
Dispose();
});
}
public virtual void Dispose()
{
sigTermRegistration?.Dispose();
// Dispose other things.
}
}
It would be nice to have it provided by the runtime itself though.
Other Information
No response
Acknowledgements
- 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.Core 2.7.1
Targeted .NET Platform
.NET 8
Operating System and version
AmazonLinux
- Vorherrschende Sprache
- C#
- Sterne
- 1.7k
- Forks
- 505
- Ø Merge
- 1 T. 10 Std.
- Gemergte PRs (30 T.)
- 12
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus aws/aws-lambda-dotnet
-
bug module/aspnetcore-support p2 queued
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
aws/aws-lambda-dotnet#1123 · 4 Kommentare · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
feature-request needs-triage
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
aws/aws-lambda-dotnet#2588 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Generated XML doc `cref` contains unescaped generic arguments: CS1584 / CS1658 / CS1570 warningsEvtl. vergeben @reginaldalfret hat das vor 16 Tagen übernommen. Offenannotations bug p2 pr/needs-review
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
aws/aws-lambda-dotnet#2587 ·
Maintainer antworten meist innerhalb von 1 Tag
-
annotations bug p2 pr/needs-review
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 67/100
aws/aws-lambda-dotnet#2586 ·
Maintainer antworten meist innerhalb von 1 Tag
-
feature-request p2
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
aws/aws-lambda-dotnet#2551 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in aws/aws-lambda-dotnet
Ähnliche Issues
-
area:jobads-cv BE P3
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 74/100
klasolsson81/jobbliggaren#2240 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
k2-fsa/sherpa-onnx#4100 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
:watch: Not Triaged
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
unoplatform/uno.check#591 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
weaviate/csharp-client#378 ·