View a markdown version of this page

Riferimento allo schema del manifesto di distribuzione - AWS Elastic Beanstalk

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à.

Riferimento allo schema del manifesto di distribuzione

Il manifesto di distribuzione è un file JSON che definisce in che modo Elastic Beanstalk deve distribuire e configurare le applicazioni Windows. Questa sezione fornisce un riferimento completo per tutte le proprietà e le opzioni di configurazione supportate nello schema del manifesto.

Struttura del manifesto

Il manifesto di distribuzione segue uno schema JSON specifico con la seguente struttura di primo livello:

Esempio Struttura del manifesto di base
{ "manifestVersion": 1, "skipIISReset": false, "iisConfig": { "websites": [...], "appPools": [...] }, "deployments": { "msDeploy": [...], "aspNetCoreWeb": [...], "custom": [...] } }

Top-level proprietà

manifestVersion (obbligatorio)

Tipo: numero

Impostazione predefinita: 1

Valori validi: 1

Specifica la versione dello schema del manifesto. Attualmente è supportata solo la versione 1.

skipIISReset (facoltativo)

Tipo: Booleano

Di default: false

Controlla se Elastic Beanstalk reimposta IIS durante le distribuzioni delle applicazioni. Questo flag influisce sulle distribuzioni. msDeploy aspNetCoreWeb Per le custom distribuzioni, controlla se Elastic Beanstalk esegue lo script di riavvio personalizzato durante le distribuzioni delle applicazioni.

Comportamento:

  • Non specificato o false (impostazione predefinita): le reimpostazioni di IIS vengono eseguite durante le operazioni di installazione, disinstallazione e aggiornamento. Questo è il comportamento tradizionale.

  • true: le reimpostazioni di IIS vengono ignorate durante le operazioni di distribuzione.

Vantaggi:

  • Riduzione dei tempi di inattività: le applicazioni subiscono interruzioni del servizio più brevi durante le implementazioni.

  • Implementazioni più rapide: elimina il tempo necessario al riavvio completo e alla reinizializzazione di IIS.

Nota

Durante l'utilizzoskipIISReset, l'RestartAppServeroperazione esegue un ripristino di IIS indipendentemente da questa impostazione del flag.

Esempio:

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

Tipo: oggetto

Contiene le configurazioni di distribuzione per le applicazioni. Questo oggetto può includere msDeployaspNetCoreWeb, e tipi di custom distribuzione.

iisConfig (facoltativo)

Tipo: oggetto

Definisce le impostazioni di configurazione IIS da applicare prima di distribuire le applicazioni. Supporta la configurazione del sito Web e del pool di applicazioni.

Configurazione IIS

La iisConfig sezione consente di configurare le impostazioni IIS prima di distribuire le applicazioni. Ciò include l'impostazione di pool di applicazioni con configurazioni specifiche e la configurazione di siti Web IIS con associazioni personalizzate.

Siti Web IIS

I siti Web IIS consentono di configurare impostazioni personalizzate dei siti Web, inclusi percorsi fisici e collegamenti di rete, prima di distribuire le applicazioni.

Considerazioni importanti per la creazione di diversi siti Web IIS
  • Ordine di configurazione del sito Web: i siti Web vengono configurati in sequenza nell'ordine in cui appaiono nell'websitesarray. La piattaforma elabora ogni configurazione del sito Web in sequenza, quindi assicurati che l'ordine sia corretto in caso di dipendenze tra siti Web.

  • Firewall e accesso alle porte: solo la porta 80 viene esposta automaticamente tramite la configurazione predefinita del firewall Windows di Elastic Beanstalk. Se configuri i siti Web per utilizzare porte non standard, devi definire regole firewall personalizzate tramite ebextensions o script di distribuzione personalizzati per consentire l'accesso esterno a queste porte.

Esempio Configurazione del sito Web
{ "iisConfig": { "websites": [ { "name": "MyCustomSite", "physicalPath": "C:\inetpub\wwwroot\mysite", "bindings": [ { "protocol": "http", "port": 8080, "hostName": "mysite.local" }, { "protocol": "https", "port": 8443 } ] } ] } }
Proprietà del sito Web
name (obbligatorio)

Tipo: stringa

Il nome del sito Web IIS. Questo nome viene utilizzato per identificare il sito Web in IIS Manager e deve essere univoco all'interno della configurazione IIS.

physicalPath (obbligatorio)

Tipo: stringa

Il percorso fisico sul server in cui sono archiviati i file del sito Web. Questo percorso deve essere accessibile al processo di lavoro IIS.

bindings (obbligatorio)

Tipo: matrice

Elementi minimi: 1

Una serie di configurazioni vincolanti che definiscono il modo in cui il sito Web risponde alle richieste di rete. Ogni associazione specifica un protocollo, una porta e un nome host opzionale.

Associazioni ai siti Web

I collegamenti ai siti Web definiscono gli endpoint di rete in cui il sito Web IIS ascolterà le richieste in arrivo.

protocol (obbligatorio)

Tipo: stringa

Valori validi: «http», «https»

Il protocollo utilizzato per l'associazione.

port (obbligatorio)

Tipo: integer

Intervallo valido: 1-65535

Il numero di porta su cui il sito Web ascolterà le richieste.

hostName (facoltativo)

Tipo: stringa

Il nome host (nome di dominio) per l'associazione.

Pool di applicazioni

I pool di applicazioni forniscono l'isolamento tra le applicazioni e consentono di configurare le impostazioni di runtime per gruppi di applicazioni.

Esempio Configurazione del pool di applicazioni
{ "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 } } ] } }
Proprietà del pool di applicazioni
name (obbligatorio)

Tipo: stringa

Il nome del pool di applicazioni. Questo nome viene utilizzato per fare riferimento al pool nelle configurazioni di distribuzione.

enable32Bit (facoltativo)

Tipo: Booleano

Consente l'esecuzione di un'applicazione a 32 bit su una versione a 64 bit di Windows. Impostato true per le applicazioni precedenti che richiedono la compatibilità a 32 bit.

managedPipelineMode (facoltativo)

Tipo: stringa

Valori validi: «Integrato», «Classico»

Specifica la modalità di elaborazione delle richieste per il pool di applicazioni.

managedRuntimeVersion (facoltativo)

Tipo: stringa

Valori validi: «No Managed Code», «v2.0", «v4.0"

Specifica la versione .NET Framework per il pool di applicazioni.

queueLength (facoltativo)

Tipo: integer

Numero massimo di richieste in HTTP.sys coda per il pool di applicazioni prima di rifiutare richieste aggiuntive.

Configurazione della CPU

L'cpuoggetto configura i limiti di utilizzo della CPU e il monitoraggio per il pool di applicazioni.

limitPercentage (facoltativo)

Tipo: numero

Percentuale massima di tempo di CPU che i processi di lavoro nel pool di applicazioni possono consumare.

limitAction (facoltativo)

Tipo: stringa

Valori validi: "NoAction«, «KillW3WP», «Throttle», "» ThrottleUnderLoad

Azioni da intraprendere quando viene raggiunto il limite della CPU.

limitMonitoringInterval (facoltativo)

Tipo: numero

Periodo di ripristino (in minuti) per il monitoraggio della CPU e i limiti di limitazione.

Configurazione del riciclaggio

L'recyclingoggetto configura quando e come i processi di lavoro del pool di applicazioni vengono riciclati.

regularTimeInterval (facoltativo)

Tipo: integer

Intervallo di tempo (in minuti) dopo il quale il pool di applicazioni viene riciclato. Impostato su 0 per disabilitare il riciclo basato sul tempo.

requestLimit (facoltativo)

Tipo: integer

Numero massimo di richieste elaborate dal pool di applicazioni prima del riciclo.

memory (facoltativo)

Tipo: integer

Quantità di memoria virtuale (in kilobyte) che attiva il riciclaggio dei processi di lavoro.

privateMemory (facoltativo)

Tipo: integer

Quantità di memoria privata (in kilobyte) che attiva il riciclo dei processi dei lavoratori.

Tipi di implementazione

L'deploymentsoggetto contiene matrici di configurazioni di distribuzione per diversi tipi di applicazioni. Ogni tipo di distribuzione ha proprietà e casi d'uso specifici.

Distribuzioni MSDeploy

Le distribuzioni di MSDeploy vengono utilizzate per le tradizionali applicazioni .NET Framework che possono essere distribuite tramite Web Deploy (MSDeploy).

Esempio Configurazione della distribuzione di MSDeploy
{ "deployments": { "msDeploy": [ { "name": "WebApp", "description": "Main web application", "parameters": { "appBundle": "webapp.zip", "iisPath": "/", "appPool": "DefaultAppPool" } } ] } }
Proprietà di distribuzione di MSDeploy
name (obbligatorio)

Tipo: stringa

Nome univoco per la distribuzione. Questo nome deve essere univoco per tutte le distribuzioni del manifesto.

description (facoltativo)

Tipo: stringa

Human-readable descrizione della distribuzione.

parameters (obbligatorio)

Tipo: oggetto

Parametri di configurazione per l'operazione MSDeploy.

scripts (facoltativo)

Tipo: oggetto

PowerShell script da eseguire nelle varie fasi del ciclo di vita della distribuzione.

parametri MSDeploy

appBundle (obbligatorio)

Tipo: stringa

Percorso del pacchetto applicativo (file ZIP) relativo al file manifesto. Questo pacchetto contiene i file dell'applicazione da distribuire.

iisWebSite (facoltativo)

Tipo: stringa

Predefinito: «Sito Web predefinito»

Il sito Web IIS su cui distribuire l'applicazione. Per impostazione predefinita, le applicazioni vengono distribuite nel «Sito Web predefinito». Facoltativamente, è possibile specificare un nome di sito Web diverso, ad esempio quello configurato nella iisConfig.websites sezione.

iisPath (facoltativo)

Tipo: stringa

Predefinito: «/»

Percorso della directory virtuale in IIS in cui verrà distribuita l'applicazione. Usa «/» per il percorso principale o «/api» per una sottodirectory.

appPool (facoltativo)

Tipo: stringa

Nome del pool di applicazioni per eseguire questa applicazione.

ASP.NET Implementazioni principali

ASP.NET Le distribuzioni principali sono progettate specificamente per le applicazioni.NET Core e .NET 5+.

Esempio ASP.NET Configurazione di distribuzione principale
{ "deployments": { "aspNetCoreWeb": [ { "name": "CoreAPI", "description": "ASP.NET Core Web API", "parameters": { "appBundle": "coreapi.zip", "iisPath": "/api", "appPool": "CoreAppPool" } } ] } }

ASP.NET Le distribuzioni principali utilizzano la stessa struttura di proprietà delle distribuzioni MSDeploy, con la differenza fondamentale nell'ambiente di runtime e nel modello di hosting utilizzati per l'applicazione.

ASP.NET Parametri di distribuzione principali
appBundle (obbligatorio)

Tipo: stringa

Percorso del pacchetto applicativo relativo al file manifesto. Può essere un archivio ZIP o un percorso di directory contenente l'applicazione ASP.NET Core pubblicata.

iisWebSite (facoltativo)

Tipo: stringa

Predefinito: «Sito Web predefinito»

Il sito Web IIS su cui distribuire l'applicazione ASP.NET Core. Per impostazione predefinita, le applicazioni vengono distribuite nel «Sito Web predefinito». Facoltativamente, è possibile specificare un nome di sito Web diverso, ad esempio quello configurato nella iisConfig.websites sezione.

iisPath (facoltativo)

Tipo: stringa

Predefinito: «/»

Percorso della directory virtuale in IIS per l'applicazione ASP.NET Core.

appPool (facoltativo)

Tipo: stringa

Pool di applicazioni per l'applicazione ASP.NET Core. Il pool verrà configurato in modo appropriato per l'hosting ASP.NET Core.

Implementazioni personalizzate

Le distribuzioni personalizzate forniscono il controllo completo sul processo di distribuzione tramite script. PowerShell Questo tipo di distribuzione è utile per scenari complessi che richiedono una logica di installazione, configurazione o distribuzione personalizzata.

Esempio Configurazione di distribuzione personalizzata
{ "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 } } } ] } }
Proprietà di distribuzione personalizzate
name (obbligatorio)

Tipo: stringa

Nome univoco per la distribuzione personalizzata.

description (facoltativo)

Tipo: stringa

Descrizione della distribuzione personalizzata.

architecture (facoltativo)

Tipo: integer

Predefinito: 32

Valori validi: 32, 64

Le specifiche dell'architettura per la modalità di esecuzione degli script PowerShell

scripts (obbligatorio)

Tipo: oggetto

PowerShell script che definiscono il comportamento di distribuzione. Le distribuzioni personalizzate supportano tipi di script aggiuntivi rispetto ad altri tipi di distribuzione.

Script di distribuzione

Gli script di distribuzione sono PowerShell script che vengono eseguiti in punti specifici durante il ciclo di vita della distribuzione. Tipi di distribuzione diversi supportano diversi set di eventi di script.

Eventi di script

I seguenti eventi di script sono disponibili a seconda del tipo di distribuzione:

Script di distribuzione standard (MSDeploy e asp) NetCoreWeb
preInstall

Viene eseguito prima dell'installazione o dell'aggiornamento dell'applicazione.

postInstall

Viene eseguito dopo l'installazione o l'aggiornamento dell'applicazione.

preRestart

Viene eseguito prima del riavvio dell'applicazione.

postRestart

Viene eseguito dopo il riavvio dell'applicazione.

preUninstall

Viene eseguito prima della disinstallazione dell'applicazione.

postUninstall

Viene eseguito dopo la disinstallazione dell'applicazione.

Script di distribuzione personalizzati (solo distribuzioni personalizzate)
install

Script di installazione principale per una distribuzione personalizzata. Elastic Beanstalk esegue questo script durante la distribuzione di ogni applicazione. Questo script distribuisce il contenuto dell'applicazione, configura IIS o il servizio e fornisce all'applicazione il percorso di controllo dello stato (per impostazione / predefinita) in modo che il controllo dello stato abbia esito positivo. Per ulteriori informazioni, consulta Definizione di distribuzioni personalizzate.

restart

Script che riavvia l'applicazione o il servizio. Elastic Beanstalk esegue questo script dopo ogni distribuzione dell'applicazione e dopo ogni modifica della configurazione. Poiché una distribuzione personalizzata non esegue alcuna gestione IIS per conto dell'utente, questo script deve riavviare l'applicazione stessa, per un IIS-hosted sito eseguendo l'esecuzione iisreset o per un servizio ospitato autonomamente riavviando il servizio. La scelta di Restart App Server viene eseguita a livello di piattaforma e non richiama lo script di riavvio personalizzatoiisreset.

Nota

Quando la skipIISReset proprietà di primo livello è impostata sutrue, Elastic Beanstalk salta lo script di riavvio personalizzato nelle distribuzioni delle applicazioni. Le distribuzioni di configurazione eseguono sempre lo script di riavvio personalizzato, indipendentemente dall'impostazione. skipIISReset

uninstall

Script che rimuove una versione dell'applicazione installata in precedenza. Elastic Beanstalk esegue questo script prima dell'installazione di ogni nuova versione dell'applicazione, ovvero prima di ogni distribuzione dell'applicazione. Impostato true in ignoreErrors modo che la prima distribuzione, quando non c'è nulla da rimuovere, non abbia esito negativo.

Proprietà dello script

Ogni script è definito come un oggetto con le seguenti proprietà:

file (obbligatorio)

Tipo: stringa

Percorso del file di PowerShell script relativo al file manifesto. Lo script deve avere un'.ps1estensione.

ignoreErrors (facoltativo)

Tipo: Booleano

Di default: false

Se impostato sutrue, la distribuzione continua anche se lo script ha esito negativo. Usalo per script o operazioni di pulizia non critici.

Esempio Esempio di configurazione degli script
{ "scripts": { "preInstall": { "file": "backup-config.ps1", "ignoreErrors": true }, "postInstall": { "file": "configure-app.ps1" } } }