

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 Elastic Beanstalk Beanstalk-Bereitstellungen
<a name="deployment-beanstalk-custom-netcore"></a>

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

Nachdem Sie den Bereitstellungsassistenten im Toolkit for Visual Studio abgeschlossen haben, bündelt 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 Deployment-Manifest ist eine JSON-Datei mit dem Namen **aws-windows-deployment-manifest.json**, die der Elastic Beanstalk Windows-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
<a name="tkv-deploy-beanstalk-custom-netcore-manifest"></a>

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 `appBundle``iisPath` und `iisWebSite` in der ersten Anwendung in der Liste des Manifestabschnitts `aspNetCoreWeb`. Auf diese Weise können Sie Ihrem Projekt die Datei **aws-windows-deployment-manifest.json** hinzufügen und das Manifest anpassen. **Fügen Sie dazu für eine ASP.NET Core-Webanwendung in Visual Studio eine neue JSON-Datei zum Stammverzeichnis des Projekts hinzu und nennen Sie sie aws-windows-deployment-manifest .json.**

Das Manifest muss den Namen **aws-windows-deployment-manifest.json** haben und sich im Stammverzeichnis des Projekts befinden. Der Elastic Beanstalk Beanstalk-Container sucht im Stammverzeichnis nach dem Manifest und ruft, falls er es findet, das Deployment-Tooling auf. **Wenn die Datei nicht existiert, greift der Elastic Beanstalk Beanstalk-Container auf das ältere Deployment-Tooling zurück, das davon ausgeht, dass es sich bei dem Archiv um ein msdeploy-Archiv handelt.**

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 das Deployment über das hinaus anpassen, was der Deployment Wizard unterstützt. AWS hat ein JSON-Schema für die **aws-windows-deployment-manifestJSON-Datei** definiert, und als Sie das Toolkit for Visual Studio installiert haben, hat das Setup 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. Wenn das Schema ausgewählt ist, stellt Visual Studio IntelliSense während der Bearbeitung das Manifest bereit.

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 PowerShell Windows-Skripts so deklarieren, dass sie vor und nach den Installations-, Neustarts- und Deinstallationsaktionen ausgeführt werden. Das folgende Manifest führt beispielsweise das PowerShell Windows-Skript aus, `PostInstallSetup.ps1` um weitere Einrichtungsarbeiten durchzuführen, nachdem die ASP.NET Core-Anwendung auf IIS bereitgestellt wurde. 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?
<a name="tkv-deploy-beanstalk-custom-netcore-ebextensions"></a>

Die Elastic Beanstalk **Beanstalk-.ebextensions-Konfigurationsdateien** werden wie alle anderen Elastic Beanstalk Beanstalk-Container 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](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html).