Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Stellen Sie C#-Lambda-Funktionen bereit mit AWS CDK
Das AWS Cloud Development Kit (AWS CDK) ist ein Open-Source-Framework für die Softwareentwicklung zur Definition von Cloud-Infrastruktur als Code mit modernen Programmiersprachen und Frameworks wie.NET. AWS CDK Projekte werden ausgeführt, um AWS CloudFormation Vorlagen zu generieren, die dann zur Bereitstellung Ihres Codes verwendet werden.
Folgen Sie den Anweisungen in den folgenden Abschnitten AWS CDK, um eine Hello World-.NET-Beispielanwendung mithilfe von zu erstellen und bereitzustellen. Die Beispielanwendung implementiert ein grundlegendes API-Backend, das aus einem API-Gateway-Endpunkt und einer Lambda-Funktion besteht. API Gateway ruft die Lambda-Funktion auf, wenn Sie eine HTTP-GET-Anforderung an den Endpunkt senden. Die Funktion gibt eine Hello-World-Nachricht zusammen mit der IP-Adresse der Lambda-Instance zurück, die Ihre Anfrage verarbeitet.
Voraussetzungen
- .NET 8 SDK
-
Installieren Sie das.NET 8
SDK und Runtime. - AWS CDK Version 2
-
Informationen zur Installation der neuesten Version von finden Sie AWS CDK unter Erste Schritte mit dem AWS CDK im AWS Cloud Development Kit (AWS CDK) v2-Entwicklerhandbuch.
Stellen Sie eine AWS CDK Beispielanwendung bereit
-
Erstellen Sie ein Projektverzeichnis für die Beispielanwendung und navigieren Sie dorthin.
mkdir hello-world cd hello-world
-
Initialisieren Sie eine neue AWS CDK Anwendung, indem Sie den folgenden Befehl ausführen.
cdk init app --language csharp
Der Befehl erstellt die folgenden Dateien und Verzeichnisse in Ihrem Projektverzeichnis
├── README.md ├── cdk.json └── src ├── HelloWorld │ ├── GlobalSuppressions.cs │ ├── HelloWorld.csproj │ ├── HelloWorldStack.cs │ └── Program.cs └── HelloWorld.sln
-
Öffnen Sie das
src
-Verzeichnis und erstellen Sie eine neue Lambda-Funktion mit der.NET-CLI. Dies ist die Funktion, die Sie mit dem AWS CDK einsetzen werden. In diesem Beispiel erstellen Sie eine Hello world-Funktion mit dem NamenHelloWorldLambda
unter Verwendung derlambda.EmptyFunction
-Vorlage.cd src dotnet new lambda.EmptyFunction -n HelloWorldLambda
Nach diesem Schritt sollte Ihre Verzeichnisstruktur innerhalb Ihres Projektverzeichnisses wie folgt aussehen.
├── README.md ├── cdk.json └── src ├── HelloWorld │ ├── GlobalSuppressions.cs │ ├── HelloWorld.csproj │ ├── HelloWorldStack.cs │ └── Program.cs ├── HelloWorld.sln └── HelloWorldLambda ├── src │ └── HelloWorldLambda │ ├── Function.cs │ ├── HelloWorldLambda.csproj │ ├── Readme.md │ └── aws-lambda-tools-defaults.json └── test └── HelloWorldLambda.Tests ├── FunctionTest.cs └── HelloWorldLambda.Tests.csproj
-
Öffnen Sie die
HelloWorldStack.cs
-Datei aus dem Verzeichnissrc/HelloWorld
. Ersetzen Sie den Inhalt der Datei durch den folgenden Code.using Amazon.CDK; using Amazon.CDK.AWS.Lambda; using Amazon.CDK.AWS.Logs; using Constructs; namespace CdkTest { public class HelloWorldStack : Stack { internal HelloWorldStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { var buildOption = new BundlingOptions() { Image = Runtime.DOTNET_8.BundlingImage, User = "root", OutputType = BundlingOutput.ARCHIVED, Command = new string[]{ "/bin/sh", "-c", " dotnet tool install -g Amazon.Lambda.Tools"+ " && dotnet build"+ " && dotnet lambda package --output-package /asset-output/function.zip" } }; var helloWorldLambdaFunction = new Function(this, "HelloWorldFunction", new FunctionProps { Runtime = Runtime.DOTNET_8, MemorySize = 1024, LogRetention = RetentionDays.ONE_DAY, Handler = "HelloWorldLambda::HelloWorldLambda.Function::FunctionHandler", Code = Code.FromAsset("./src/HelloWorldLambda/src/HelloWorldLambda", new Amazon.CDK.AWS.S3.Assets.AssetOptions { Bundling = buildOption }), }); } } }
Dies ist der Code zum Kompilieren und Bündeln des Anwendungscodes sowie die Definition der Lambda-Funktion selbst. Mit dem
BundlingOptions
-Objekt kann eine Zip-Datei erstellt werden, zusammen mit einer Reihe von Befehlen, die zur Erzeugung des Inhalts der Zip-Datei verwendet werden. In diesem Fall wird der Befehldotnet lambda package
zum Kompilieren und Erzeugen der Zip-Datei verwendet. -
Um Ihre Anwendung bereitzustellen, führen Sie den folgenden Befehl aus.
cdk deploy
-
Rufen Sie Ihre bereitgestellte Lambda-Funktion mit der .NET Lambda CLI auf.
dotnet lambda invoke-function HelloWorldFunction -p "hello world"
-
Nach Abschluss der Tests können Sie die erstellten Ressourcen löschen, es sei denn, Sie möchten sie beibehalten. Führen Sie den folgenden Befehl aus, um Ihre Ressourcen zu löschen.
cdk destroy
Nächste Schritte
Weitere Informationen AWS CDK zur Erstellung und Bereitstellung von Lambda-Funktionen mit.NET finden Sie in den folgenden Ressourcen: