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.
Starte einASP. NETAPICore-Web-Docker-Container auf einer Amazon EC2 Linux-Instance
Erstellt von Vijai Anand Ramalingam () und Sreelaxmi Pai () AWS AWS
Umgebung: PoC oder Pilotprojekt | Technologien: Container und Mikroservices; Web- und mobile Apps | Arbeitslast: Microsoft |
AWSDienste: AmazonEC2; Elastic Load Balancing (ELB) |
Übersicht
Dieses Muster ist für Benutzer gedacht, die damit beginnen, ihre Anwendungen in der Amazon Web Services (AWS) Cloud zu containerisieren. Wenn Sie beginnen, Apps in der Cloud zu containerisieren, sind in der Regel keine Container-Orchestrierungsplattformen eingerichtet. Mit diesem Muster können Sie schnell eine Infrastruktur einrichten, auf der Sie Ihre containerisierten Anwendungen testen AWS können, ohne dass eine aufwändige Infrastruktur für die Container-Orchestrierung erforderlich ist.
Der erste Schritt auf dem Weg zur Modernisierung besteht darin, die Anwendung zu transformieren. Wenn es ein Vermächtnis ist. NETFramework-Anwendung, auf die Sie zuerst die Laufzeit ändern müssenASP. NETKern. Führen Sie dann die folgenden Schritte aus:
Erstellen Sie das Docker-Container-Image
Führen Sie den Docker-Container mit dem erstellten Image aus
Überprüfen Sie die Anwendung, bevor Sie sie auf einer beliebigen Container-Orchestrierungsplattform wie Amazon Elastic Container Service (AmazonECS) oder Amazon Elastic Kubernetes Service (Amazon) bereitstellen. EKS
Dieses Muster behandelt die Aspekte der Erstellung, Ausführung und Validierung der modernen Anwendungsentwicklung auf einer Amazon Elastic Compute Cloud (AmazonEC2) Linux-Instance.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktives Amazon Web Services (AWS) -Konto
Eine AWSIdentity and Access Management (IAM) -Rolle mit ausreichendem Zugriff, um AWS Ressourcen für dieses Muster zu erstellen
Visual Studio Community 2022
oder höher wurde heruntergeladen und installiert EIN. NETRahmenprojekt modernisiert aufASP. NETKern
Ein GitHub Endlager
Produktversionen
Visual Studio Community 2022 oder höher
Architektur
Zielarchitektur
Dieses Muster verwendet eine AWS CloudFormation Vorlage
Zugriff auf die Linux-Instance über Session Manager
Tools
AWSDienste
AWSBefehlszeilenschnittstelle — Die AWS Befehlszeilenschnittstelle (AWSCLI) ist ein Open-Source-Tool für die Interaktion mit AWS Diensten über Befehle in Ihrer Befehlszeilen-Shell. Mit minimaler Konfiguration können Sie AWS CLI Befehle ausführen, die Funktionen implementieren, die denen der browserbasierten AWS Managementkonsole entsprechen.
AWSManagementkonsole — Die AWS Managementkonsole ist eine Webanwendung, die eine breite Palette von Servicekonsolen für die Verwaltung von AWS Ressourcen umfasst und sich auf diese bezieht. Wenn Sie sich zum ersten Mal anmelden, sehen Sie die Startseite der Konsole. Die Startseite bietet Zugriff auf jede Servicekonsole und bietet einen zentralen Ort, an dem Sie auf die Informationen zugreifen können, die Sie für die Ausführung der AWS damit verbundenen Aufgaben benötigen.
AWSSystems Manager Session Manager — Session Manager ist eine vollständig verwaltete AWS Systems Manager Manager-Funktion. Mit Session Manager können Sie Ihre Amazon Elastic Compute Cloud (AmazonEC2) -Instances verwalten. Session Manager bietet eine sichere und überprüfbare Knotenverwaltung, ohne dass eingehende Ports geöffnet, Bastion-Hosts verwaltet oder Schlüssel verwaltet werden müssen. SSH
Andere Tools
Visual Studio 2022
— Visual Studio 2022 ist eine integrierte Entwicklungsumgebung (IDE). Docker
— Docker ist eine Reihe von Platform-as-a-Service (PaaS) -Produkten, die Virtualisierung auf Betriebssystemebene nutzen, um Software in Containern bereitzustellen.
Code
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /src COPY ["DemoNetCoreWebAPI/DemoNetCoreWebAPI.csproj", "DemoNetCoreWebAPI/"] RUN dotnet restore "DemoNetCoreWebAPI/DemoNetCoreWebAPI.csproj" COPY . . WORKDIR "/src/DemoNetCoreWebAPI" RUN dotnet build "DemoNetCoreWebAPI.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "DemoNetCoreWebAPI.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "DemoNetCoreWebAPI.dll"]
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie ein BeispielASP. NETCore-Web API mit Visual Studio. | Um ein Beispiel zu erstellenASP. NETCore WebAPI, gehen Sie wie folgt vor:
| App-Developer |
Erstellen Sie eine Docker-Datei. | Gehen Sie wie folgt vor, um ein Dockerfile zu erstellen:
Führen Sie den folgenden Befehl aus, um die Änderungen in Ihr GitHub Repository zu übertragen.
| App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Richten Sie die Infrastruktur ein. | Starten Sie die AWS CloudFormation Vorlage
Weitere Informationen zum Zugriff auf eine private EC2 Amazon-Instance mit Session Manager, ohne dass ein Bastion-Host erforderlich ist, finden Sie im Blogbeitrag Toward a bastion-less world | App-Entwickler, Administrator, AWS AWS DevOps |
Melden Sie sich bei der Amazon EC2 Linux-Instance an. | Gehen Sie wie folgt vor, um eine Verbindung zur Amazon EC2 Linux-Instance im privaten Subnetz herzustellen:
| App-Developer |
Installieren und starten Sie Docker. | Gehen Sie wie folgt vor, um Docker in der Amazon EC2 Linux-Instance zu installieren und zu starten:
| App-Entwickler, AWS Administrator, AWS DevOps |
Installiere Git und klone das Repository. | Gehen Sie wie folgt vor, um Git auf der Amazon EC2 Linux-Instance zu installieren und das Repository von GitHub zu klonen.
| App-Entwickler, Administrator, AWS AWS DevOps |
Erstellen Sie den Docker-Container und führen Sie ihn aus. | Gehen Sie wie folgt vor, um das Docker-Image zu erstellen und den Container in der Amazon EC2 Linux-Instance auszuführen:
| App-Entwickler, AWS Administrator, AWS DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Testen Sie das Web API mit dem Befehl curl. | Führen Sie den folgenden Befehl ausAPI, um das Web zu testen.
Überprüfen Sie die API Antwort. Hinweis: Sie können die curl-Befehle für jeden Endpunkt von Swagger abrufen, wenn Sie ihn lokal ausführen. | App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Alle Ressourcen löschen. | Löschen Sie den Stapel, um alle Ressourcen zu entfernen. Dadurch wird sichergestellt, dass Ihnen keine Dienste in Rechnung gestellt werden, die Sie nicht nutzen. | AWSAdministrator, AWS DevOps |