Tutorial: Erstellen und Testen einer serverlosen Anwendung mit AWS Lambda - AWS Toolkit mit Amazon Q

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.

Tutorial: Erstellen und Testen einer serverlosen Anwendung mit AWS Lambda

Sie können mithilfe einer Vorlage eine serverlose Lambda-Anwendung erstellen AWS Toolkit for Visual Studio . Zu den Lambda-Projektvorlagen gehört eine Vorlage für eine AWS serverlose Anwendung, bei der es sich um die AWS Toolkit for Visual Studio Implementierung des AWS Serverless Application Model (AWSSAM) handelt. Mit diesem Projekttyp können Sie eine Sammlung von AWS Lambda Funktionen entwickeln und diese mit allen erforderlichen AWS Ressourcen als gesamte Anwendung bereitstellen, um die Bereitstellung AWS CloudFormation zu orchestrieren.

Voraussetzungen und Informationen zur Einrichtung von finden Sie unter Verwenden der AWS Lambda-Vorlagen im AWS Toolkit for Visual Studio. AWS Toolkit for Visual Studio

Erstellen Sie ein neues AWS serverloses Anwendungsprojekt

AWS Serverlose Anwendungsprojekte erstellen Lambda-Funktionen mit einer AWS CloudFormation serverlosen Vorlage. AWS CloudFormation Mithilfe von Vorlagen können Sie zusätzliche Ressourcen wie Datenbanken definieren, IAM-Rollen hinzufügen und mehrere Funktionen gleichzeitig bereitstellen. Dies unterscheidet sich von AWS Lambda-Projekten, die sich auf die Entwicklung und Bereitstellung einer einzigen Lambda-Funktion konzentrieren.

Das folgende Verfahren beschreibt, wie Sie ein neues Projekt für AWS serverlose Anwendungen erstellen.

  1. Erweitern Sie in Visual Studio das Menü Datei, erweitern Sie Neu und wählen Sie dann Projekt aus.

  2. Stellen Sie im Dialogfeld „Neues Projekt“ sicher, dass die Dropdown-Felder Sprache, Plattform und Projekttyp auf „Alle...“ gesetzt sind, und geben Sie aws lambda in das Suchfeld ein.

  3. Wählen Sie die AWS Vorlage Serverlose Anwendung mit Tests (.NET Core — C#) aus.

    Anmerkung

    Es ist möglich, dass die Vorlage AWS Serverlose Anwendung mit Tests (.NET Core — C#) nicht ganz oben in den Ergebnissen angezeigt wird.

  4. Klicken Sie auf Weiter, um das Dialogfeld Neues Projekt konfigurieren zu öffnen.

  5. Geben ServerlessPowertoolsSie im Dialogfeld „Neues Projekt konfigurieren“ den Namen ein und füllen Sie dann die verbleibenden Felder nach Ihren Wünschen aus. Wählen Sie die Schaltfläche „Erstellen“, um mit dem Dialogfeld „Blueprint auswählen“ fortzufahren.

  6. Wählen Sie im Dialogfeld „Blueprint auswählen“ die Option „Powertools for AWS Lambda Blueprint“ und anschließend „Fertig stellen“, um das Visual Studio-Projekt zu erstellen.

Überprüfen der Dateien der serverlosen Anwendung

Die folgenden Abschnitte bieten einen detaillierten Überblick über drei Dateien für serverlose Anwendungen, die für Ihr Projekt erstellt wurden:

  1. serverless.template

  2. Functions.cs

  3. aws-lambda-tools-defaults.json

1. serverlose Vorlage

Eine serverless.template Datei ist eine AWS CloudFormation Vorlage für die Deklaration Ihrer serverlosen Funktionen und anderer Ressourcen. AWS Die in diesem Projekt enthaltene Datei enthält eine Deklaration für eine einzelne Lambda-Funktion, die über das Amazon API Gateway als HTTP *Get* Operation verfügbar gemacht wird. Sie können diese Vorlage bearbeiten, um die bestehende Funktion anzupassen oder weitere Funktionen und andere Ressourcen hinzuzufügen, die für Ihre Anwendung erforderlich sind.

Im Folgenden wird ein Beispiel für eine serverless.template-Datei dargestellt:

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Description": "An AWS Serverless Application.", "Resources": { "Get": { "Type": "AWS::Serverless::Function", "Properties": { "Architectures": [ "x86_64" ], "Handler": "ServerlessPowertools::ServerlessPowertools.Functions::Get", "Runtime": "dotnet8", "CodeUri": "", "MemorySize": 512, "Timeout": 30, "Role": null, "Policies": [ "AWSLambdaBasicExecutionRole" ], "Environment": { "Variables": { "POWERTOOLS_SERVICE_NAME": "ServerlessGreeting", "POWERTOOLS_LOG_LEVEL": "Info", "POWERTOOLS_LOGGER_CASE": "PascalCase", "POWERTOOLS_TRACER_CAPTURE_RESPONSE": true, "POWERTOOLS_TRACER_CAPTURE_ERROR": true, "POWERTOOLS_METRICS_NAMESPACE": "ServerlessGreeting" } }, "Events": { "RootGet": { "Type": "Api", "Properties": { "Path": "/", "Method": "GET" } } } } } }, "Outputs": { "ApiURL": { "Description": "API endpoint URL for Prod environment", "Value": { "Fn::Sub": "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/" } } } }

Beachten Sie, dass viele der ...AWS:: Serverless::Function... Deklarationsfelder den Feldern einer Lambda-Projektbereitstellung ähneln. Powertools Logging, Metrics und Tracing werden über die folgenden Umgebungsvariablen konfiguriert:

  • POWERTOOLS_SERVICE_NAME= ServerlessGreeting

  • POWERTOOLS_LOG_LEVEL=Informationen

  • POWERTOOLS_LOGGER_CASE= PascalCase

  • PowerTools_Tracer_Capture_Response=Wahr

  • PowerTools_Tracer_Capture_Error=Wahr

  • POWERTOOLS_METRICS_NAMESPACE= ServerlessGreeting

Definitionen und zusätzliche Informationen zu den Umgebungsvariablen finden Sie auf der Powertools-Website für Referenzen. AWS Lambda

2. Functions.cs

Functions.csist eine Klassendatei, die eine C#-Methode enthält, die einer einzelnen Funktion zugeordnet ist, die in der Vorlagendatei deklariert ist. Die Lambda-Funktion reagiert auf HTTP Get Methoden von API Gateway. Das Folgende ist ein Beispiel für die Functions.cs Datei:

public class Functions { [Logging(LogEvent = true, CorrelationIdPath = CorrelationIdPaths.ApiGatewayRest)] [Metrics(CaptureColdStart = true)] [Tracing(CaptureMode = TracingCaptureMode.ResponseAndError)] public APIGatewayProxyResponse Get(APIGatewayProxyRequest request, ILambdaContext context) { Logger.LogInformation("Get Request"); var greeting = GetGreeting(); var response = new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = greeting, Headers = new Dictionary (string, string) { { "Content-Type", "text/plain" } } }; return response; } [Tracing(SegmentName = "GetGreeting Method")] private static string GetGreeting() { Metrics.AddMetric("GetGreeting_Invocations", 1, MetricUnit.Count); return "Hello Powertools for AWS Lambda (.NET)"; } }

3. aws-lambda-tools-defaults.json

aws-lambda-tools-defaults.jsonstellt die Standardwerte für den AWS Bereitstellungsassistenten in Visual Studio und die AWS Lambda Befehle bereit, die zur.NET Core CLI hinzugefügt wurden. Im Folgenden finden Sie ein Beispiel für die aws-lambda-tools-defaults.json Datei, die in diesem Projekt enthalten ist:

{ "profile": "Default", "region": "us-east-1", "configuration": "Release", "s3-prefix": "ServerlessPowertools/", "template": "serverless.template", "template-parameters": "" }

Bereitstellen der serverlosen Anwendung

Gehen Sie wie folgt vor, um Ihre serverlose Anwendung bereitzustellen

  1. Öffnen Sie im Solution Explorer das Kontextmenü für Ihr Projekt (Rechtsklick) und wählen Sie In AWS Lambda veröffentlichen, um das Dialogfeld AWS Serverlose Anwendung veröffentlichen zu öffnen.

  2. Geben Sie im Dialogfeld AWS Serverlose Anwendung veröffentlichen im Feld Stackname einen Namen für den AWS CloudFormation Stack-Container ein.

  3. Wählen Sie im Feld S3-Bucket einen Amazon S3 S3-Bucket aus, in den Ihr Anwendungspaket hochgeladen werden soll, oder wählen Sie New... klicken Sie und geben Sie den Namen eines neuen Amazon S3 S3-Buckets ein. Wählen Sie dann Publish to Publish (Veröffentlichen), um Ihre Anwendung bereitzustellen.

    Anmerkung

    Ihr AWS CloudFormation Stack und Ihr Amazon S3 S3-Bucket müssen in derselben AWS Region existieren. Die übrigen Einstellungen für Ihr Projekt sind in der serverless.template Datei definiert.

    Bild des Dialogfelds „ AWS Serverlose Anwendung veröffentlichen“.
  4. Das Stack-Ansichtsfenster wird während des Veröffentlichungsvorgangs geöffnet. Wenn die Bereitstellung abgeschlossen ist, wird im Feld Status Folgendes angezeigt:CREATE_COMPLETE.

    Bild des Fensters mit der Ansicht des Bereitstellungsstapels in Visual Studio.

Testen der serverlosen Anwendung

Wenn die Erstellung des Stacks abgeschlossen ist, können Sie Ihre Anwendung mithilfe der AWS serverlosen URL anzeigen. Wenn Sie dieses Tutorial abgeschlossen haben, ohne zusätzliche Funktionen oder Parameter hinzuzufügen, wird beim Zugriff auf Ihre AWS serverlose URL der folgende Satz in Ihrem Webbrowser angezeigt:. Hello Powertools for AWS Lambda (.NET)