Benutzerdefinierte ASP.NET Core-Bereitstellungen in Elastic Beanstalk-Bereitstellungen in - 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.

Benutzerdefinierte ASP.NET Core-Bereitstellungen in Elastic Beanstalk-Bereitstellungen in

In diesem Thema wird beschrieben, wie die Bereitstellung funktioniert und wie Sie diese anpassen können, wenn Sie mit Elastic Beanstalk und dem Toolkit for Visual Studio ASP.NET Core-Anwendungen erstellen.

Nachdem Sie alle gewünschten Schritte mit dem Bereitstellungsassistenten im Toolkit for Visual Studio abgeschlossen haben, verpackt das Toolkit die Anwendung und sendet sie an Elastic Beanstalk. Als erster Schritt bei der Erstellung des Anwendungspakets wird die Anwendung mithilfe der neuen dotnet CLI mit dem Befehl publish auf die Veröffentlichung vorbereitet. Das Framework und die Konfiguration werden von den Einstellungen im Assistenten an den Befehl publish weitergegeben. Wenn Sie also Release für configuration und netcoreapp1.0 für das framework ausgewählt haben, führt das Toolkit den folgenden Befehl aus:

dotnet publish --configuration Release --framework netcoreapp1.0

Nach Ausführung des Befehls publish schreibt das Toolkit das neue Bereitstellungsmanifest in den Veröffentlichungsordner. Das Bereitstellungsmanifest ist eine JSON-Datei mit dem Namenaws-windows-deployment-manifest.json, den der Elastic Beanstalk -Container (Version 1.2 oder höher) liest, um zu bestimmen, wie die Anwendung bereitgestellt werden soll. Beispiel: Für eine ASP.NET Core-Anwendung, die Sie im Stammverzeichnis von IIS bereitstellen möchten, erzeugt das Toolkit eine Manifestdatei, die wie folgt aussieht:

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appBundle": ".", "iisPath": "/", "iisWebSite": "Default Web Site" } } ] } }

Die Eigenschaft appBundle gibt an, wo sich die Anwendungsbits im Bezug auf die Manifestdatei befinden. Diese Eigenschaft kann entweder auf ein Verzeichnis oder auf eine ZIP-Datei verweisen. Die Eigenschaften iisPath und iisWebSite geben an, wo die Anwendung in IIS gehostet werden soll.

Anpassen der Manifest-Datei

Das Toolkit schreibt die Manifestdatei nur dann, wenn nicht bereits eine im Veröffentlichungsordner existiert. Wenn die Datei vorhanden ist, aktualisiert das Toolkit die Eigenschaften appBundleiisPath und iisWebSite in der ersten Anwendung in der Liste des Manifestabschnitts aspNetCoreWeb. Dies ermöglicht Ihnen, die Datei aws-windows-deployment-manifest.json Ihrem Projekt hinzuzufügen und das Manifest anzupassen. Um dies für eine ASP.NET Core-Webanwendung in Visual Studio auszuführen, fügen Sie dem Stammverzeichnis des Projekts eine neue JSON-Datei hinzu und nennen diese aws-windows-deployment-manifest.json.

Die Manifestdatei muss aws-windows-deployment-manifest.json genannt und im Stammverzeichnis des Projekts gespeichert werden. Der Elastic Beanstalk-Container sucht das Manifest im Stammverzeichnis. Sobald er die Datei gefunden hat, ruft er das Bereitstellungstool auf. Wenn die Datei nicht vorhanden ist, greift der Elastic Beanstalk-Container auf das ältere Bereitstellungstool zurück, das davon ausgeht, dass es sich um einemsdeployArchiv.

Um sicherzustellen, dass der publish-Befehl von dotnet CLI das Manifest mit einschließt, aktualisieren Sie die project.json-Datei, um die Manifestdatei in den Abschnitt "Include" unter include in publishOptions aufzunehmen.

{ "publishOptions": { "include": [ "wwwroot", "Views", "Areas/**/Views", "appsettings.json", "web.config", "aws-windows-deployment-manifest.json" ] } }

Nachdem Sie das Manifest deklariert haben, damit es in die App aufgenommen wird, können Sie weitere Konfigurationen zur Bereitstellung der Anwendung vornehmen. Sie können die Bereitstellung über die Optionen des Bereitstellungsassistenten hinaus anpassen.AWShat ein JSON-Schema für dasaws-windows-deployment-manifest.json-Dateiund als Sie das Toolkit for Visual Studio installiert haben, wurde bei der Einrichtung die URL für das Schema registriert.

Wenn Sie windows-deployment-manifest.json öffnen, wird die ausgewählte Schema-URL im Schema-Dropdown-Feld angezeigt. Sie können zu der URL navigieren, um eine komplette Beschreibung der möglichen Einstellungen in der Manifestdatei zu erhalten. Nachdem Sie das Schema ausgewählt haben, stellt Ihnen Visual Studio IntelliSense zur Verfügung, während Sie die Manifestdatei bearbeiten.

Sie können beispielsweise den IIS-Anwendungspool konfigurieren, unter dem die Anwendung ausgeführt wird. Am folgenden Beispiel sehen Sie, wie Sie einen IIS-Anwendungspool ("customPool") definieren können, der den Prozess alle 60 Minuten recycelt und ihn mithilfe von "appPool": "customPool" der Anwendung zuweist.

{ "manifestVersion": 1, "iisConfig": { "appPools": [ { "name": "customPool", "recycling": { "regularTimeInterval": 60 } } ] }, "deployments": { "aspNetCoreWeb": [ { "name": "app", "parameters": { "appPool": "customPool" } } ] } }

Darüber hinaus kann das Manifest die Ausführung von Windows PowerShell-Skripts vor und nach Installations-, Neustart- und Deinstallationsaktionen deklarieren. Beispiel: Das folgende Manifest führt das Windows PowerShell-Skript PostInstallSetup.ps1 aus, um nach der Bereitstellung der ASP.NET Core-Anwendung auf IIS weitere Konfigurationen vorzunehmen. Stellen Sie beim Hinzufügen solcher Skripts sicher, dass die Skripts dem Abschnitt "include" unter "publishOptions" in der project.json-Datei hinzugefügt werden, ebenso wie bei der aws-windows-deployment-manifest.json-Datei. Wenn Sie dies nicht tun, werden die Skripts nicht als Teil des Befehls publish der dotnet CLI aufgenommen.

{ "manifestVersion": 1, "deployments": { "aspNetCoreWeb": [ { "name": "app", "scripts": { "postInstall": { "file": "SetupScripts/PostInstallSetup.ps1" } } } ] } }

Und was ist mit .ebextensions?

Die Elastic Beanstalk.ebextensions-Konfigurationsdateien werden wie bei allen anderen Elastic Beanstalk-Containern auch unterstützt. Um .ebextensions in eine ASP.NET Core-Anwendung einzuschließen, fügen Sie das .ebextensions-Verzeichnis dem Abschnitt include unter publishOptions in der project.json-Datei hinzu. Weitere Informationen über .ebextensions finden Sie im Elastic Beanstalk-Entwicklerhandbuch.