Wie erstelle ich ein Lambda-Bereitstellungspaket für C#.NET?

Lesedauer: 3 Minute
0

Ich habe ein Bereitstellungspaket für AWS Lambda-Funktionen in C# erstellt. Wenn ich jedoch versuche, die Funktion aufzurufen, gibt Lambda einen der folgenden Fehler zurück: „Modul nicht gefunden“, „Modul kann nicht geladen werden“ oder „Klasse kann nicht gefunden werden“. Wie behebe ich das Problem?

Kurzbeschreibung

Wenn Ihre C#-Lambda-Funktion einen der folgenden Fehler zurückgibt, ist die Ordnerstruktur des Deployment-Pakets der Funktion nicht richtig konfiguriert:

  • Modul nicht gefunden
  • Modul kann nicht geladen werden
  • Klasse kann nicht gefunden werden

Um das Problem zu lösen, müssen Sie ein Bereitstellungspaket für C#-Lambda-Funktionen erstellen, das die richtige Ordnerstruktur aufweist. Es gibt zwei Möglichkeiten, ein Bereitstellungspaket für C#-Lambda-Funktionen mit der richtigen Ordnerstruktur zu erstellen und bereitzustellen:

Behebung

Um die .NET Core-CLI und die Amazon.Lambda.Tools-Erweiterung zu verwenden

  1. Installieren Sie die standardmäßigen Lambda.NET-Vorlagen und fügen Sie der .NET Core-CLI die Amazon.Lambda.Tools-Erweiterung hinzu, indem Sie den folgenden Befehl ausführen:
dotnet new -i 'Amazon.Lambda.Templates::*'
  1. Erstellen Sie entweder eine neue Lambda-Funktion mithilfe einer der von Ihnen installierten Vorlagen oder fügen Sie die Amazon.Lambda.Tools-Erweiterung zu einem vorhandenen Projekt hinzu.

Um eine neue Lambda-Funktion mit einer der von Ihnen installierten Vorlagen zu erstellen

Führen Sie in der .NET Core-CLI im Projekt-Stammverzeichnis der Lambda-Funktion den folgenden Befehl aus:

**Wichtig:**Ersetzen Sie {function-name} durch den Namen Ihrer Funktion. Ersetzen Sie {aws-region} durch die AWS-Region, in der Sie Ihre Funktion haben möchten.

dotnet new lambda.EmptyFunction --name {function-name} --profile default --region {aws-region}

Um die Amazon.Lambda.Tools-Erweiterung zu einem vorhandenen Projekt hinzuzufügen

Führen Sie in der .NET Core-CLI im Projekt-Stammverzeichnis der Lambda-Funktion den folgenden Befehl aus:

dotnet tool install -g Amazon.Lambda.Tools

**Hinweis:**Die Amazon.Lambda.Tools-Erweiterung fordert Sie auf, alle erforderlichen Parameter anzugeben, die fehlen.

  1. Laden Sie die Abhängigkeiten Ihres Deployment-Pakets herunter, indem Sie den folgenden Befehl ausführen:

**Wichtig:**Ersetzen Sie {your-function-directory} durch den Namen Ihres Funktionsverzeichnisses.

cd {your-function-directory}
dotnet restore

**Hinweis:**Wenn die Fehlermeldung Nicht kompatibel angezeigt wird, stellen Sie sicher, dass Sie eine Version von.NET Core verwenden, die mit den Lambda-Tools kompatibel ist. Um frühere Versionen von.NET Core herunterzuladen, besuchen Sie die Website .NET Download Archives.

  1. Erstellen Sie Ihr Lambda-Bereitstellungspaket, indem Sie den folgenden Befehl ausführen:
dotnet lambda deploy-function

**Hinweis:**Oder Sie können ein Lambda-Bereitstellungspaket von Grund auf neu erstellen und es separat bereitstellen. Anweisungen finden Sie unter Bereitstellen eines AWS Lambda-Projekts mit der.NET Core-CLI.

  1. Die .NET Core-CLI fordert Sie auf, einen Funktionsnamen einzugeben und der Funktion eine AWS Identity and Access Management (IAM) -Rolle zuzuweisen. Geben Sie einen Namen für Ihre Funktion ein und weisen Sie der Funktion eine IAM-Rolle zu. Ihre Funktion wird dann erstellt.

So verwenden Sie das AWS Toolkit für Visual Studio

  1. Laden Sie das AWS Toolkit für Visual Studio herunter und installieren Sie es.

  2. Erstellen und erstellen Sie ein AWS Lambda-Projekt (.NET Core). Anweisungen finden Sie unter Verwenden der AWS Lambda-Vorlagen im AWS Toolkit für Visual Studio und AWS Toolkit for Visual Studio im AWS Lambda-Entwicklerleitfaden.

**Wichtig:**Stellen Sie sicher, dass die Signatur des Funktionshandlers das folgende Format hat:

ASSEMBLY::TYPE::METHOD

Um zu überprüfen, ob die Funktion korrekt formatiert ist, überprüfen Sie die Dateien im Verzeichnis src/ {function-name} Ihrer Funktion. Weitere Informationen finden Sie unter .NET Core CLI und AWS Lambda Function Handler in C#.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren