View a markdown version of this page

Referenz zum Bereitstellungsmanifestschema - AWS Elastic Beanstalk

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.

Referenz zum Bereitstellungsmanifestschema

Das Bereitstellungsmanifest ist eine JSON-Datei, die definiert, wie Elastic Beanstalk Ihre Windows-Anwendungen bereitstellen und konfigurieren soll. Dieser Abschnitt enthält eine umfassende Referenz für alle unterstützten Eigenschaften und Konfigurationsoptionen im Manifestschema.

Struktur des Manifests

Das Bereitstellungsmanifest folgt einem bestimmten JSON-Schema mit der folgenden Struktur auf oberster Ebene:

Beispiel Grundlegende Manifeststruktur
{ "manifestVersion": 1, "skipIISReset": false, "iisConfig": { "websites": [...], "appPools": [...] }, "deployments": { "msDeploy": [...], "aspNetCoreWeb": [...], "custom": [...] } }

Top-level Eigenschaften

manifestVersion (Erforderlich)

Typ: Zahl

Standard: 1

Gültige Werte: 1

Gibt die Version des Manifestschemas an. Derzeit wird nur Version 1 unterstützt.

skipIISReset (optional)

Typ: Boolesch

Standard: false

Steuert, ob Elastic Beanstalk IIS bei Anwendungsbereitstellungen zurücksetzt. Dieses Flag wirkt sich auf Bereitstellungen aus. msDeploy aspNetCoreWeb Bei custom Bereitstellungen steuert es, ob Elastic Beanstalk Ihr benutzerdefiniertes Neustartskript während der Anwendungsbereitstellung ausführt.

Verhalten:

  • Nicht angegeben oder false (Standard): IIS-Resets werden bei Installations-, Deinstallations- und Aktualisierungsvorgängen durchgeführt. Dies ist das traditionelle Verhalten.

  • true: IIS-Resets werden bei Bereitstellungsvorgängen übersprungen.

Vorteile:

  • Reduzierte Ausfallzeiten — Bei Anwendungen kommt es während der Bereitstellung zu kürzeren Betriebsunterbrechungen.

  • Schnellere Bereitstellungen — Eliminiert die Zeit, die IIS für den vollständigen Neustart und die Neuinitialisierung benötigt.

Anmerkung

Bei Verwendung skipIISReset führt der RestartAppServer Vorgang unabhängig von dieser Flag-Einstellung einen IIS-Reset durch.

Beispiel:

{ "manifestVersion": 1, "skipIISReset": true, "deployments": { "aspNetCoreWeb": [ { "name": "my-dotnet-core-app", "parameters": { "archive": "dotnet-core-app.zip", "iisPath": "/" } } ] } }
deployments (Erforderlich)

Typ: Objekt

Enthält die Bereitstellungskonfigurationen für Ihre Anwendungen. Dieses Objekt kann custom Bereitstellungstypen msDeployaspNetCoreWeb, und enthalten.

iisConfig (optional)

Typ: Objekt

Definiert IIS-Konfigurationseinstellungen, die vor der Bereitstellung von Anwendungen angewendet werden. Unterstützt sowohl die Website- als auch die Anwendungspoolkonfiguration.

IIS-Konfiguration

iisConfigIn diesem Abschnitt können Sie die IIS-Einstellungen konfigurieren, bevor Sie Ihre Anwendungen bereitstellen. Dazu gehören das Einrichten von Anwendungspools mit bestimmten Konfigurationen und das Konfigurieren von IIS-Websites mit benutzerdefinierten Bindungen.

IIS-Websites

Auf IIS-Websites können Sie benutzerdefinierte Website-Einstellungen einschließlich physischer Pfade und Netzwerkbindungen konfigurieren, bevor Sie Ihre Anwendungen bereitstellen.

Wichtige Überlegungen zum Erstellen verschiedener IIS-Websites
  • Reihenfolge der Website-Einrichtung: Websites werden sequentiell in der Reihenfolge konfiguriert, in der sie im websites Array erscheinen. Die Plattform verarbeitet jede Website-Konfiguration nacheinander. Achten Sie also auf die richtige Reihenfolge, wenn Sie Abhängigkeiten zwischen Websites haben.

  • Firewall und Portzugriff: Nur Port 80 wird durch die standardmäßige Elastic Beanstalk Windows-Firewallkonfiguration automatisch verfügbar gemacht. Wenn Sie Websites so konfigurieren, dass sie nicht standardmäßige Ports verwenden, müssen Sie mithilfe von Ebextensions oder benutzerdefinierten Bereitstellungsskripten benutzerdefinierte Firewallregeln definieren, um externen Zugriff auf diese Ports zu ermöglichen.

Beispiel Konfiguration der Website
{ "iisConfig": { "websites": [ { "name": "MyCustomSite", "physicalPath": "C:\inetpub\wwwroot\mysite", "bindings": [ { "protocol": "http", "port": 8080, "hostName": "mysite.local" }, { "protocol": "https", "port": 8443 } ] } ] } }
Eigenschaften der Website
name (Erforderlich)

Typ: Zeichenfolge

Der Name der IIS-Website. Dieser Name wird zur Identifizierung der Website im IIS-Manager verwendet und muss innerhalb der IIS-Konfiguration eindeutig sein.

physicalPath (Erforderlich)

Typ: Zeichenfolge

Der physische Pfad auf dem Server, auf dem die Website-Dateien gespeichert sind. Auf diesen Pfad muss der IIS-Arbeitsprozess zugreifen können.

bindings (Erforderlich)

Typ: Array

Mindestanzahl der Artikel: 1

Eine Reihe von Bindungskonfigurationen, die definieren, wie die Website auf Netzwerkanfragen reagiert. Jede Bindung spezifiziert ein Protokoll, einen Port und einen optionalen Hostnamen.

Webseiten-Bindungen

Website-Bindungen definieren die Netzwerkendpunkte, an denen Ihre IIS-Website auf eingehende Anfragen wartet.

protocol (Erforderlich)

Typ: Zeichenfolge

Gültige Werte: „http“, „https“

Das für die Bindung verwendete Protokoll.

port (Erforderlich)

Typ: Ganzzahl

Gültiger Bereich: 1-65535

Die Portnummer, auf der die Website auf Anfragen wartet.

hostName (optional)

Typ: Zeichenfolge

Der Hostname (Domainname) für die Bindung.

Anwendungspools

Anwendungspools bieten eine Isolierung zwischen Anwendungen und ermöglichen es Ihnen, Laufzeiteinstellungen für Gruppen von Anwendungen zu konfigurieren.

Beispiel Konfiguration des Anwendungspools
{ "iisConfig": { "appPools": [ { "name": "MyAppPool", "enable32Bit": false, "managedPipelineMode": "Integrated", "managedRuntimeVersion": "v4.0", "queueLength": 1000, "cpu": { "limitPercentage": 80, "limitAction": "Throttle", "limitMonitoringInterval": 5 }, "recycling": { "regularTimeInterval": 1440, "requestLimit": 10000, "memory": 1048576, "privateMemory": 524288 } } ] } }
Eigenschaften des Anwendungspools
name (Erforderlich)

Typ: Zeichenfolge

Der Name des Anwendungspools. Dieser Name wird verwendet, um in Bereitstellungskonfigurationen auf den Pool zu verweisen.

enable32Bit (optional)

Typ: Boolesch

Ermöglicht die Ausführung einer 32-Bit-Anwendung auf einer 64-Bit-Version von Windows. trueFür ältere Anwendungen, die 32-Bit-Kompatibilität erfordern, auf festgelegt.

managedPipelineMode (optional)

Typ: Zeichenfolge

Gültige Werte: „Integrated“, „Classic“

Gibt den Anforderungsverarbeitungsmodus für den Anwendungspool an.

managedRuntimeVersion (optional)

Typ: Zeichenfolge

Gültige Werte: „Kein verwalteter Code“, „v2.0", „v4.0"

Gibt die .NET Framework-Version für den Anwendungspool an.

queueLength (optional)

Typ: Ganzzahl

Maximale Anzahl von Anforderungen, die für den Anwendungspool in die HTTP.sys Warteschlange gestellt werden, bevor weitere Anforderungen abgelehnt werden.

CPU-Konfiguration

Das cpu Objekt konfiguriert CPU-Nutzungslimits und die Überwachung für den Anwendungspool.

limitPercentage (optional)

Typ: Zahl

Maximaler Prozentsatz der CPU-Zeit, die Arbeitsprozesse im Anwendungspool verbrauchen können.

limitAction (optional)

Typ: Zeichenfolge

Gültige Werte: "NoAction„, „KillW3WP“, „Throttle“, "“ ThrottleUnderLoad

Aktion, die ergriffen werden soll, wenn das CPU-Limit erreicht ist.

limitMonitoringInterval (optional)

Typ: Zahl

Rücksetzzeitraum (in Minuten) für CPU-Überwachungs- und Drosselungsgrenzwerte.

Konfiguration wird recycelt

Das recycling Objekt konfiguriert, wann und wie Worker-Prozesse für den Anwendungspool wiederverwendet werden.

regularTimeInterval (optional)

Typ: Ganzzahl

Zeitintervall (in Minuten), nach dem der Anwendungspool wiederverwendet wird. Setzen Sie den Wert auf 0, um das zeitbasierte Recycling zu deaktivieren.

requestLimit (optional)

Typ: Ganzzahl

Maximale Anzahl von Anfragen, die der Anwendungspool vor dem Recycling verarbeitet.

memory (optional)

Typ: Ganzzahl

Menge an virtuellem Speicher (in Kilobyte), die das Recycling von Arbeitsprozessen auslöst.

privateMemory (optional)

Typ: Ganzzahl

Menge an privatem Speicher (in Kilobyte), die das Recycling von Arbeitsprozessen auslöst.

Bereitstellungstypen

Das deployments Objekt enthält Arrays von Bereitstellungskonfigurationen für verschiedene Anwendungstypen. Jeder Bereitstellungstyp hat bestimmte Eigenschaften und Anwendungsfälle.

MSDeploy-Bereitstellungen

MSDeploy-Bereitstellungen werden für herkömmliche.NET Framework-Anwendungen verwendet, die mithilfe von Web Deploy (MSDeploy) bereitgestellt werden können.

Beispiel Konfiguration der MSDeploy-Bereitstellung
{ "deployments": { "msDeploy": [ { "name": "WebApp", "description": "Main web application", "parameters": { "appBundle": "webapp.zip", "iisPath": "/", "appPool": "DefaultAppPool" } } ] } }
Eigenschaften der MSDeploy-Bereitstellung
name (Erforderlich)

Typ: Zeichenfolge

Eindeutiger Name für die Bereitstellung. Dieser Name muss für alle Bereitstellungen im Manifest eindeutig sein.

description (optional)

Typ: Zeichenfolge

Human-readable Beschreibung der Bereitstellung.

parameters (Erforderlich)

Typ: Objekt

Konfigurationsparameter für den MSDeploy-Vorgang.

scripts (optional)

Typ: Objekt

PowerShell Skripts zur Ausführung in verschiedenen Phasen des Bereitstellungslebenszyklus.

MSDeploy-Parameter

appBundle (Erforderlich)

Typ: Zeichenfolge

Pfad zum Anwendungspaket (ZIP-Datei) relativ zur Manifestdatei. Dieses Paket enthält die Anwendungsdateien, die bereitgestellt werden sollen.

iisWebSite (optional)

Typ: Zeichenfolge

Standard: „Standard-Website“

Die IIS-Website, auf der die Anwendung bereitgestellt werden soll. Standardmäßig werden Anwendungen auf der „Standardwebsite“ bereitgestellt. Optional können Sie einen anderen Namen der Website angeben, z. B. einen, der im iisConfig.websites Abschnitt konfiguriert wurde.

iisPath (optional)

Typ: Zeichenfolge

Standard: „/“

Virtueller Verzeichnispfad in IIS, in dem die Anwendung bereitgestellt wird. Verwenden Sie „/“ für den Stammpfad oder „/api“ für ein Unterverzeichnis.

appPool (optional)

Typ: Zeichenfolge

Name des Anwendungspools, um diese Anwendung auszuführen.

ASP.NET Zentrale Bereitstellungen

ASP.NET Core-Bereitstellungen wurden speziell für .NET Core- und.NET 5+-Anwendungen entwickelt.

Beispiel ASP.NET Konfiguration der zentralen Bereitstellung
{ "deployments": { "aspNetCoreWeb": [ { "name": "CoreAPI", "description": "ASP.NET Core Web API", "parameters": { "appBundle": "coreapi.zip", "iisPath": "/api", "appPool": "CoreAppPool" } } ] } }

ASP.NET Kernbereitstellungen verwenden dieselbe Eigenschaftsstruktur wie MSDeploy-Bereitstellungen, wobei der Hauptunterschied in der Laufzeitumgebung und dem für die Anwendung verwendeten Hosting-Modell besteht.

ASP.NET Zentrale Bereitstellungsparameter
appBundle (Erforderlich)

Typ: Zeichenfolge

Pfad zum Anwendungspaket relativ zur Manifestdatei. Dies kann entweder ein ZIP-Archiv oder ein Verzeichnispfad sein, der die veröffentlichte ASP.NET Core-Anwendung enthält.

iisWebSite (optional)

Typ: Zeichenfolge

Standard: „Standard-Website“

Die IIS-Website, auf der die ASP.NET Core-Anwendung bereitgestellt werden soll. Standardmäßig werden Anwendungen auf der „Standardwebsite“ bereitgestellt. Optional können Sie einen anderen Namen der Website angeben, z. B. einen, der im iisConfig.websites Abschnitt konfiguriert wurde.

iisPath (optional)

Typ: Zeichenfolge

Standard: „/“

Virtueller Verzeichnispfad in IIS für die ASP.NET Core-Anwendung.

appPool (optional)

Typ: Zeichenfolge

Anwendungspool für die ASP.NET Core-Anwendung. Der Pool wird entsprechend für ASP.NET Core-Hosting konfiguriert.

Benutzerdefinierte Bereitstellungen

Benutzerdefinierte Bereitstellungen bieten mithilfe PowerShell von Skripten die vollständige Kontrolle über den Bereitstellungsprozess. Dieser Bereitstellungstyp eignet sich für komplexe Szenarien, die eine benutzerdefinierte Installations-, Konfigurations- oder Bereitstellungslogik erfordern.

Beispiel Benutzerdefinierte Bereitstellungskonfiguration
{ "deployments": { "custom": [ { "name": "CustomService", "description": "Custom Windows service deployment", "architecture": 32, "scripts": { "install": { "file": "install-service.ps1" }, "restart": { "file": "restart-service.ps1" }, "uninstall": { "file": "uninstall-service.ps1", "ignoreErrors": true } } } ] } }
Benutzerdefinierte Bereitstellungseigenschaften
name (Erforderlich)

Typ: Zeichenfolge

Eindeutiger Name für die benutzerdefinierte Bereitstellung.

description (optional)

Typ: Zeichenfolge

Beschreibung der benutzerdefinierten Bereitstellung.

architecture (optional)

Typ: Ganzzahl

Standard: 32

Gültige Werte: 32, 64

Die Architekturspezifikation für den Ausführungsmodus von Powershell-Skripten

scripts (Erforderlich)

Typ: Objekt

PowerShell Skripte, die das Bereitstellungsverhalten definieren. Benutzerdefinierte Bereitstellungen unterstützen im Vergleich zu anderen Bereitstellungstypen zusätzliche Skripttypen.

Bereitstellungsskripte

PowerShell Bereitstellungsskripts sind Skripts, die zu bestimmten Zeitpunkten während des Bereitstellungszyklus ausgeführt werden. Verschiedene Bereitstellungstypen unterstützen unterschiedliche Gruppen von Skriptereignissen.

Skript-Ereignisse

Die folgenden Skriptereignisse sind je nach Bereitstellungstyp verfügbar:

Standard-Bereitstellungsskripts (MSDeploy und aspNetCoreWeb)
preInstall

Wird ausgeführt, bevor die Anwendung installiert oder aktualisiert wird.

postInstall

Wird ausgeführt, nachdem die Anwendung installiert oder aktualisiert wurde.

preRestart

Wird ausgeführt, bevor die Anwendung neu gestartet wird.

postRestart

Wird nach dem Neustart der Anwendung ausgeführt.

preUninstall

Wird ausgeführt, bevor die Anwendung deinstalliert wird.

postUninstall

Wird ausgeführt, nachdem die Anwendung deinstalliert wurde.

Benutzerdefinierte Bereitstellungsskripts (nur benutzerdefinierte Bereitstellungen)
install

Primäres Installationsskript für eine benutzerdefinierte Bereitstellung. Elastic Beanstalk führt dieses Skript bei jeder Anwendungsbereitstellung aus. Dieses Skript stellt den Anwendungsinhalt bereit, konfiguriert IIS oder Ihren Dienst und stellt die Anwendung im Pfad zur Integritätsprüfung bereit (/standardmäßig), sodass die Integritätsprüfung erfolgreich ist. Weitere Informationen finden Sie unter Definieren benutzerdefinierter Bereitstellungen.

restart

Skript, das die Anwendung oder den Dienst neu startet. Elastic Beanstalk führt dieses Skript nach jeder Anwendungsbereitstellung und nach jeder Konfigurationsänderung aus. Da eine benutzerdefinierte Bereitstellung keine IIS-Verwaltung in Ihrem Namen durchführt, muss dieses Skript die Anwendung selbst neu starten — für eine IIS-hosted Site, indem es ausgeführt wirdiisreset, oder für einen selbst gehosteten Dienst, indem Sie den Dienst neu starten. Wenn Sie „Anwendungsserver neu starten“ wählen, erfolgt dies auf Plattformebene. Ihr benutzerdefiniertes iisreset Neustartskript wird nicht aufgerufen.

Anmerkung

Wenn die skipIISReset Eigenschaft der obersten Ebene auf festgelegt isttrue, überspringt Elastic Beanstalk das benutzerdefinierte Neustartskript bei Anwendungsbereitstellungen. Bei Konfigurationsbereitstellungen wird unabhängig von der Einstellung immer das benutzerdefinierte Neustartskript ausgeführt. skipIISReset

uninstall

Skript, das eine zuvor installierte Anwendungsversion entfernt. Elastic Beanstalk führt dieses Skript aus, bevor jede neue Anwendungsversion installiert wird, also vor jeder Anwendungsbereitstellung. Stellen ignoreErrors Sie diese Option ein, true damit die erste Bereitstellung — wenn nichts zu entfernen ist — nicht fehlschlägt.

Eigenschaften des Skripts

Jedes Skript ist als Objekt mit den folgenden Eigenschaften definiert:

file (Erforderlich)

Typ: Zeichenfolge

Pfad zur PowerShell Skriptdatei relativ zur Manifestdatei. Das Skript sollte eine .ps1 Erweiterung haben.

ignoreErrors (optional)

Typ: Boolesch

Standard: false

Wenn diese Option auf gesetzt isttrue, wird die Bereitstellung auch dann fortgesetzt, wenn das Skript fehlschlägt. Verwenden Sie diese Option für unkritische Skripts oder Bereinigungsvorgänge.

Beispiel Beispiel für eine Skriptkonfiguration
{ "scripts": { "preInstall": { "file": "backup-config.ps1", "ignoreErrors": true }, "postInstall": { "file": "configure-app.ps1" } } }