

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Distribuzioni personalizzate di ASP.NET Core Elastic Beanstalk
<a name="deployment-beanstalk-custom-netcore"></a>

Questo argomento descrive come funziona la distribuzione e cosa è possibile fare per personalizzare le distribuzioni durante la creazione di applicazioni ASP.NET Core con Elastic Beanstalk e Toolkit for Visual Studio.

Dopo aver completato la procedura guidata di distribuzione in Toolkit for Visual Studio, il toolkit raggruppa l'applicazione e la invia a Elastic Beanstalk. **Il primo passaggio nella creazione del pacchetto di applicazioni consiste nell'utilizzare la nuova CLI dotnet per preparare l'applicazione per la pubblicazione utilizzando il comando publish.** **Il framework e la configurazione vengono trasmessi dalle impostazioni della procedura guidata al comando publish.** Quindi, se hai selezionato **Release** for `configuration` e **netcoreapp1.0** per`framework`, il toolkit eseguirà il seguente comando:

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

Al termine del comando **publish**, il toolkit scrive il nuovo manifesto di distribuzione nella cartella di pubblicazione. Il manifesto di distribuzione è un file JSON denominato **aws-windows-deployment-manifest.json**, che il contenitore Windows Elastic Beanstalk (versione 1.2 o successiva) legge per determinare come distribuire l'applicazione. Ad esempio, per un'applicazione ASP.NET Core che desideri distribuire nella radice di IIS, il toolkit genera un file manifest simile al seguente:

```
{
  "manifestVersion": 1,
  "deployments": {

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

La `appBundle` proprietà indica dove si trovano i bit dell'applicazione rispetto al file manifest. Questa proprietà può puntare a una directory o a un archivio ZIP. Le `iisWebSite` proprietà `iisPath` and indicano dove in IIS ospitare l'applicazione.

## Personalizzazione del manifesto
<a name="tkv-deploy-beanstalk-custom-netcore-manifest"></a>

Il toolkit scrive il file manifesto solo se non ne esiste già uno nella cartella di pubblicazione. Se il file esiste, il toolkit aggiorna le `appBundle` `iisWebSite` proprietà `iisPath` e nella prima applicazione elencata nella `aspNetCoreWeb` sezione del manifesto. Ciò consente di aggiungere il **aws-windows-deployment-manifestfile.json** al progetto e personalizzare il manifest. **A tale scopo, per un'applicazione Web ASP.NET Core in Visual Studio, aggiungi un nuovo file JSON alla radice del progetto e chiamalo .json. aws-windows-deployment-manifest**

Il manifesto deve essere denominato **aws-windows-deployment-manifest.json** e deve trovarsi alla radice del progetto. Il contenitore Elastic Beanstalk cerca il manifest nella radice e, se lo trova, invoca gli strumenti di distribuzione. **Se il file non esiste, il contenitore Elastic Beanstalk ricorre ai vecchi strumenti di distribuzione, che presuppongono che l'archivio sia un archivio msdeploy.**

Per garantire che il comando `publish` CLI dotnet includa il manifesto, aggiorna `project.json` il file in modo che includa il file manifest nella sezione `include` include sotto in. `publishOptions`

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

Ora che hai dichiarato il manifesto in modo che sia incluso nel pacchetto dell'app, puoi configurare ulteriormente il modo in cui desideri distribuire l'applicazione. È possibile personalizzare la distribuzione oltre a quanto supportato dalla procedura guidata di distribuzione. AWS ha definito uno schema JSON per il **aws-windows-deployment-manifestfile.json** e quando hai installato Toolkit for Visual Studio, l'installazione ha registrato l'URL per lo schema.

Quando lo apri`windows-deployment-manifest.json`, vedrai l'URL dello schema selezionato nella casella a discesa Schema. Puoi accedere all'URL per ottenere una descrizione completa di ciò che può essere impostato nel manifesto. Con lo schema selezionato, Visual Studio lo fornirà IntelliSense durante la modifica del manifesto.

Una personalizzazione che puoi eseguire è configurare il pool di applicazioni IIS in cui verrà eseguita l'applicazione. L'esempio seguente mostra come definire un pool di applicazioni IIS («CustomPool») che ricicla il processo ogni 60 minuti e lo assegna all'applicazione che lo utilizza. `"appPool": "customPool"`

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

Inoltre, il manifesto può dichiarare PowerShell gli script di Windows da eseguire prima e dopo le azioni di installazione, riavvio e disinstallazione. Ad esempio, il seguente manifesto esegue lo PowerShell script di Windows `PostInstallSetup.ps1` per eseguire ulteriori operazioni di configurazione dopo la distribuzione dell'applicazione ASP.NET Core su IIS. Quando aggiungi script come questo, assicurati che vengano aggiunti alla sezione include in PublishOptions nel `project.json` file, proprio come hai fatto con il file. `aws-windows-deployment-manifest.json` **In caso contrario, gli script non verranno inclusi come parte del comando di pubblicazione della CLI dotnet.**

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

## Che dire delle estensioni.ebextensions?
<a name="tkv-deploy-beanstalk-custom-netcore-ebextensions"></a>

I file di configurazione **Elastic** Beanstalk .ebextensions sono supportati come tutti gli altri contenitori Elastic Beanstalk. Per includere .ebextensions in un'applicazione ASP.NET Core, aggiungi la directory alla sezione sottostante del file. `.ebextensions` `include` `publishOptions` `project.json` [Per ulteriori informazioni su.ebextensions, consulta la Elastic Beanstalk Developer Guide.](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)