Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Support IDisposable for Function Handlers

Offen
#2,159 2 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

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
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
aws, csharp
Bereich
backend, cloud

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

feature-request module/lambda-client-lib needs-investigation p2
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

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus aws/aws-lambda-dotnet

Alle Issues in aws/aws-lambda-dotnet

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.