Erstellen und Bereitstellen von C#-Lambda-Funktionen mit ZIP-Dateiarchiven - AWS Lambda

Erstellen und Bereitstellen von C#-Lambda-Funktionen mit ZIP-Dateiarchiven

Ein .NET-Bereitstellungspaket (ZIP-Dateiarchiv) enthält die kompilierten Assembly Ihrer Funktion sowie aller ihrer Assembly-Abhängigkeiten. Das Paket enthält auch eine proj.deps.json-Datei. Dies signalisiert der .NET-Laufzeit alle Abhängigkeiten Ihrer Funktion sowie eine proj.runtimeconfig.json-Datei, die für die Konfiguration der Laufzeit verwendet wird.

Um einzelne Lambda-Funktionen bereitzustellen, können Sie die Amazon.Lambda.Tools .NET Lambda Global CLI verwenden. Mit dem dotnet lambda deploy-function Befehl wird automatisch ein ZIP-Bereitstellungspaket erstellt und auf Lambda bereitgestellt. Wir empfehlen jedoch, Frameworks wie AWS Serverless Application Model (AWS SAM) oder AWS Cloud Development Kit (AWS CDK) zu verwenden, um Ihre .NET-Anwendungen auf AWS bereitzustellen.

Serverless-Anwendungen bestehen in der Regel aus einer Kombination von Lambda-Funktionen und anderen verwalteten AWS-Services, die zusammenarbeiten, um eine bestimmte Geschäftsaufgabe zu erfüllen. AWS SAM und AWS CDK vereinfachen die Erstellung und Bereitstellung von Lambda-Funktionen mit anderen AWS-Services in großem Umfang. Die AWS SAM-Vorlagenspezifikation bietet eine einfache und saubere Syntax zur Beschreibung der Lambda-Funktionen, APIs, Berechtigungen, Konfigurationen und andere AWS-Ressourcen, aus denen Ihre Serverless-Anwendung besteht. Über das AWS CDK definieren Sie die Cloud-Infrastruktur als Code, mit dem Sie zuverlässige, skalierbare und kostengünstige Anwendungen in der Cloud mit modernen Programmiersprachen und Frameworks wie .NET erstellen können. Sowohl die AWS CDK als auch die AWS SAM verwenden das.NET Lambda Global CLI, um Ihre Funktionen zu verpacken.

Obwohl es möglich ist, Lambda-Ebenen mit Funktionen in C# mithilfe der .NET-Core-CLI zu verwenden, raten wir davon ab. Funktionen in C#, die Ebenen verwenden, laden die freigegebenen Baugruppen während des Init-Phase manuell in den Speicher, was die Kaltstartzeiten verlängern kann. Fügen Sie stattdessen den gesamten gemeinsam genutzten Code zur Kompilierungszeit ein, um die Auswirkungen auf die Leistung durch das Laden von Assemblys zur Laufzeit zu vermeiden.

In den folgenden Abschnitten finden Sie Anweisungen zum Erstellen und Bereitstellen von .NET-Lambda-Funktionen mit der AWS SAM, der AWS CDK und der .NET Lambda Global CLI.