Stellen Sie C#-Lambda-Funktionen bereit mit AWS SAM - 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 SAM

The AWS Serverless Application Model (AWS SAM) ist ein Toolkit, das dabei hilft, den Prozess der Erstellung und Ausführung serverloser Anwendungen zu optimieren. AWS Sie definieren die Ressourcen für Ihre Anwendung in einer YAML- oder JSON-Vorlage und verwenden die AWS SAM Befehlszeilenschnittstelle (AWS SAM CLI), um Ihre Anwendungen zu erstellen, zu verpacken und bereitzustellen. Wenn Sie eine Lambda-Funktion aus einer AWS SAM Vorlage erstellen, AWS SAM wird automatisch ein ZIP-Bereitstellungspaket oder ein Container-Image mit Ihrem Funktionscode und allen von Ihnen angegebenen Abhängigkeiten erstellt. AWS SAM stellt dann Ihre Funktion mithilfe eines Stacks bereit.AWS CloudFormation Weitere Informationen zur Verwendung AWS SAM zum Erstellen und Bereitstellen von Lambda-Funktionen finden Sie unter Erste Schritte mit AWS SAM im AWS Serverless Application Model Entwicklerhandbuch.

Die folgenden Schritte zeigen Ihnen, wie Sie eine .NET Hello World-Beispielanwendung mit AWS SAM herunterladen, erstellen und bereitstellen können. Diese Beispielanwendung verwendet eine Lambda-Funktion und einen Amazon API Gateway-Endpunkt, um ein grundlegendes API-Backend zu implementieren. Wenn Sie eine HTTP GET-Anforderung an Ihren API Gateway-Endpunkt senden, ruft API Gateway Ihre Lambda-Funktion auf. Die Funktion gibt eine „Hello World“ -Meldung zusammen mit der IP-Adresse der Lambda-Funktionsinstance zurück, die Ihre Anfrage verarbeitet.

Wenn Sie Ihre Anwendung erstellen und bereitstellen AWS SAM, verwendet die AWS SAM CLI im Hintergrund den dotnet lambda package Befehl, um die einzelnen Lambda-Funktionscodepakete zu verpacken.

Voraussetzungen

.NET 8 SDK

Installieren Sie das.NET 8 SDK und Runtime.

AWS SAM CLI Version 1.39 oder höher

Informationen zur Installation der neuesten Version der AWS SAM CLI finden Sie unter Installation der AWS SAM CLI.

Stellen Sie eine AWS SAM Beispielanwendung bereit

  1. Initialisieren Sie die Anwendung mit der Hello World-.NET-Vorlage mit dem folgenden Befehl.

    sam init --app-template hello-world --name sam-app \ --package-type Zip --runtime dotnet8

    Mit diesem Befehl werden die folgenden Dateien und Verzeichnisse in Ihrem Projektverzeichnis erstellt.

    └── sam-app ├── README.md ├── events │   └── event.json ├── omnisharp.json ├── samconfig.toml ├── src │   └── HelloWorld │   ├── Function.cs │   ├── HelloWorld.csproj │   └── aws-lambda-tools-defaults.json ├── template.yaml └── test └── HelloWorld.Test ├── FunctionTest.cs └── HelloWorld.Tests.csproj
  2. Navigieren Sie in das Verzeichnis, das die template.yaml file enthält. Diese Datei ist eine Vorlage, die die AWS -Ressourcen für Ihre Anwendung definiert, einschließlich Ihrer Lambda-Funktion und einer API-Gateway-API.

    cd sam-app
  3. Um den Quellcode Ihrer Anwendung zu erstellen, führen Sie folgenden Befehl aus.

    sam build
  4. Führen Sie den folgenden Befehl aus AWS, um Ihre Anwendung bereitzustellen.

    sam deploy --guided

    Dieser Befehl packt Ihre Anwendung und stellt sie mit der folgenden Reihe von Eingabeaufforderungen bereit. Um die Standardoptionen zu übernehmen, drücken Sie die Eingabetaste.

    Anmerkung

    Für ist HelloWorldFunction möglicherweise keine Autorisierung definiert, ist das in Ordnung? , geben Sie unbedingt einy.

    • Stack-Name: Der Name des Stacks, der in AWS CloudFormation bereitgestellt werden soll. Dieser Name muss für Ihr AWS-Konto Land eindeutig sein AWS-Region.

    • AWS-Region: Die AWS-Region , auf der Sie Ihre App bereitstellen möchten.

    • Änderungen vor der Bereitstellung bestätigen: Wählen Sie Ja, um alle Änderungssätze manuell zu überprüfen, bevor AWS SAM die Anwendungsänderungen bereitstellt. Wenn Sie Nein wählen, stellt die AWS SAM CLI automatisch Anwendungsänderungen bereit.

    • Erlauben Sie die Erstellung von SAM-CLI-IAM-Rollen: Viele AWS SAM Vorlagen, in diesem Beispiel die von Hello World, erstellen AWS Identity and Access Management (IAM-) Rollen, um Ihren Lambda-Funktionen Zugriff auf andere zu gewähren. AWS -Services Wählen Sie Ja aus, um die Erlaubnis zur Bereitstellung eines AWS CloudFormation Stacks zu erteilen, der IAM-Rollen erstellt oder ändert.

    • Rollback deaktivieren: Wenn bei der Erstellung oder Bereitstellung Ihres Stacks ein Fehler auftritt, wird der Stack standardmäßig AWS SAM auf die vorherige Version zurückgesetzt. Wählen Sie Nein, um diese Standardeinstellung zu akzeptieren.

    • HelloWorldFunction Möglicherweise ist keine Autorisierung definiert, ist das in Ordnung: Geben Sie einy.

    • Argumente in samconfig.toml speichern: Wählen Sie Ja, um Ihre Konfigurationsauswahl zu speichern. In Zukunft können Sie sam deploy ohne Parameter erneut ausführen, um Änderungen an Ihrer Anwendung vorzunehmen.

  5. Wenn die Bereitstellung Ihrer Anwendung abgeschlossen ist, gibt die CLI den Amazon Resource Name (ARN) der Hello World Lambda-Funktion und die für sie erstellte IAM-Rolle zurück. Sie zeigt auch den Endpunkt Ihrer API-Gateway-API an. Um Ihre Anwendung zu testen, öffnen Sie den Endpunkt in einem Browser. Es wird eine Antwort ähnlich der folgenden angezeigt.

    {"message":"hello world","location":"34.244.135.203"}
  6. Um Ihre Ressourcen zu löschen, führen Sie den folgenden Befehl aus. Beachten Sie, dass der von Ihnen erstellte API-Endpunkt ein öffentlicher Endpunkt ist, auf den über das Internet zugegriffen werden kann. Es wird empfohlen, dass Sie diesen Endpunkt nach dem Testen löschen.

    sam delete

Nächste Schritte

Weitere Informationen AWS SAM zur Erstellung und Bereitstellung von Lambda-Funktionen mit.NET finden Sie in den folgenden Ressourcen: