Stellen Sie C#-Lambda-Funktionen bereit mit AWS CDK - AWS Lambda

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

  1. Erstellen Sie ein Projektverzeichnis für die Beispielanwendung und navigieren Sie dorthin.

    mkdir hello-world cd hello-world
  2. 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
  3. Ö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 Namen HelloWorldLambda unter Verwendung der lambda.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
  4. Öffnen Sie die HelloWorldStack.cs-Datei aus dem Verzeichnis src/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 Befehl dotnet lambda package zum Kompilieren und Erzeugen der Zip-Datei verwendet.

  5. Um Ihre Anwendung bereitzustellen, führen Sie den folgenden Befehl aus.

    cdk deploy
  6. Rufen Sie Ihre bereitgestellte Lambda-Funktion mit der .NET Lambda CLI auf.

    dotnet lambda invoke-function HelloWorldFunction -p "hello world"
  7. 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: