.NET-Workloads unter AWS Lambda ausführen Dotnet-Web-API auf Amazon Aurora, Teil 1

Microsoft-Workloads nutzen eine Vielzahl spezieller Web-APIs. AWS-Kunden haben damit unter AWS Lambda das Problem, dass sie viele vorhandene .NET-Web-APIs pflegen müssen. Es geht aber auch anders, wie dieser auf einem AWS-Demo-Projekt basierende Beitrag zeigt.

Ob eine Anwendung nun auf ASP.NET, ASP.NET Razor / MVC, ReactJS oder Angular basiert – bei CRUD-Operationen (Create, Read, Update, Delete) kommunizieren solche Anwendungen üblicherweise mit einer „Microsoft SQL Server“-Datenbank. Für AWS-Nutzer liegt es also nicht allzu fern, herkömmliche Microsoft-SQL-Workloads auf Amazon Aurora zu migrieren.

AWS stellt dazu Beispiel-Code für ein Demo-Projekt zur Orchestrierung von .NET-Web-APIs unter AWS bei GitHub zur Verfügung, auf den sich dieser Beitrag stützt. Im Wesentlichen geht es dabei darum, eine Amazon-Aurora-Datenbank zu erstellen, eine Verbindung zu dieser zu initiieren und die Datenbank dann so zu integrieren, dass das der Front-Code weiter vorhandene .NET Core-Web-APIs nutzen kann.

Um ein vollständiges API-Anwendungssystem bereitzustellen zu können ist es von Vorteil, dass sich viele vorhandene .NET-Core-Anwendungen relativ problemlos mithilfe von Docker– und AWS-Diensten wie Amazon EC2, Elastic Container Service (ECS), AWS Systems Manager (SSM) und Amazon Aurora containerisieren lassen. Das Demo-Projekt erstellt final eine einfache .NET-Web-API für eine To-Do-Anwendung.

Architektur für die Orchestrierung einer „.NET Core Web API“-Applikation unter AWS. ( Bild: AWS )

Hier das zugrunde liegende Architektur-Schema. Die Beispielanwendung kommuniziert mit einer Aurora-Datenbank für grundlegende CRUD-Vorgänge. Mit CloudFormation-Vorlagen wird ein ECS-Container-Cluster mit Fargate und einem serverlosen RDS-Aurora-Backend erstellt. Die bereitgestellte Anwendungsarchitektur wird durch Build– und Pipeline-Tools wie AWS CodeCommit und AWS CodeBuild mit AWS CloudFormation ergänzt, welche wir allesamt bereits in verschiedenen Beiträgen gewürdigt haben.

Die von AWS bereitgestellten CloudFormation-Vorlagen erstellen unter anderem ein AWS-Code-Build-Projekt. Dieses löst – getriggert durch in ebenfalls per CloudFormation erzeugten „AWS Code Commit“-Repository bereitgestellte Änderungen – entsprechende Builds aus und überträgt die Artefakte (Docker Images) in die Amazon Elastic Container Registry (ECR). Das zweite CloudFormation-Template löst den ECS-Dienst aus, der über die Task-Definition verfügt, die das Abbild aus der ECR liest.

Das bereitgestellte .NET-Projekt nutzt AWS-SDKs, um über eine MySQL-Verbindung mit der Aurora-Datenbank zu interagieren. Das Code-Beispiel verfügt über einen Web-API-Endpunkt, der HTTP-Aufrufe (GET & POST) ausführt, um neue To-Dos hinzuzufügen oder vorhandene abzurufen. Der Endbenutzer kann beispielsweise cURL- oder UI-Tools wie Google Chrome ARC Rest Client oder POSTMAN verwenden, um die gemachten Änderungen zu überprüfen.

Hier weiterlesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.