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": [...]
}
}
Proprietà di primo livello
manifestVersion
(richiesto)-
Tipo: numero
Impostazione predefinita: 1
Valori validi: 1
Speciifica la versione dello schema del manifesto. Attualmente è supportata solo la versione 1.
skipIISReset
(facoltativo)-
Tipo: Booleano
Di default: false
Controlla se IIS viene ripristinato durante le distribuzioni delle applicazioni. Questo flag influisce su entrambi i tipi
msDeploy
diaspNetCoreWeb
distribuzione.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 IIS vengono ignorate durante le operazioni di distribuzione.
Vantaggi:
-
Tempi di inattività ridotti: le applicazioni subiscono interruzioni del servizio più brevi durante le implementazioni.
-
Implementazioni più rapide: elimina il tempo necessario a IIS per riavviare e reinizializzare completamente IIS.
Nota
Durante l'utilizzo
skipIISReset
, l'RestartAppServeroperazione esegue un ripristino di IIS indipendentemente dall'impostazione di questa bandiera.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
msDeploy
easpNetCoreWeb
tipi dicustom
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 la configurazione 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 dei siti Web: i siti Web vengono configurati in sequenza nell'ordine in cui appaiono nell'
websites
array. La piattaforma elabora ogni configurazione del sito Web in sequenza, quindi assicurati un ordine corretto in caso di dipendenze tra i siti Web. -
Firewall e accesso alle porte: solo la porta 80 viene esposta automaticamente tramite la configurazione firewall Windows Elastic Beanstalk predefinita. Se si configurano siti Web per utilizzare porte non standard, è necessario 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
(richiesto)-
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
(richiesto)-
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
Numero minimo di articoli: 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 a siti Web
Le associazioni ai siti Web definiscono gli endpoint di rete in cui il sito Web IIS ascolterà le richieste in arrivo.
protocol
(richiesto)-
Tipo: stringa
Valori validi: «http», «https»
Il protocollo utilizzato per l'associazione.
port
(richiesto)-
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 su
true
per le applicazioni legacy che richiedono la compatibilità a 32 bit. managedPipelineMode
(facoltativo)-
Tipo: stringa
Valori validi: «Integrato», «Classico»
Speciifica la modalità di elaborazione delle richieste per il pool di applicazioni.
managedRuntimeVersion
(facoltativo)-
Tipo: stringa
Valori validi: «No Managed Code», «v2.0", «v4.0"
Speciifica la versione.NET Framework per il pool di applicazioni.
queueLength
(facoltativo)-
Tipo: integer
Numero massimo di richieste che HTTP.sys mette in coda per il pool di applicazioni prima di rifiutare richieste aggiuntive.
Configurazione della CPU
L'cpu
oggetto 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
Azione 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'recycling
oggetto 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. Impostare su 0 per disabilitare il riciclo basato sul tempo.
requestLimit
(facoltativo)-
Tipo: integer
Numero massimo di richieste elaborate dal pool di applicazioni prima del riciclaggio.
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 riciclaggio dei processi di lavoro.
Tipi di distribuzione
L'deployments
oggetto contiene matrici di configurazioni di distribuzione per diversi tipi di applicazioni. Ogni tipo di distribuzione ha proprietà e casi d'uso specifici.
MSDeploy distribuzioni
MSDeploy le distribuzioni vengono utilizzate per le tradizionali applicazioni.NET Framework che possono essere distribuite utilizzando Web Deploy (). MSDeploy
Esempio MSDeploy configurazione di distribuzione
{
"deployments": {
"msDeploy": [
{
"name": "WebApp",
"description": "Main web application",
"parameters": {
"appBundle": "webapp.zip",
"iisPath": "/",
"appPool": "DefaultAppPool"
}
}
]
}
}
MSDeploy proprietà di distribuzione
name
(richiesto)-
Tipo: stringa
Nome univoco per la distribuzione. Questo nome deve essere univoco in tutte le distribuzioni del manifesto.
description
(facoltativo)-
Tipo: stringa
Descrizione della distribuzione in formato leggibile dall'uomo.
parameters
(richiesto)-
Tipo: oggetto
Parametri di configurazione per l' MSDeploy operazione.
scripts
(facoltativo)-
Tipo: oggetto
PowerShell script da eseguire in varie fasi del ciclo di vita dell'implementazione.
MSDeploy parametri
appBundle
(richiesto)-
Tipo: stringa
Percorso del pacchetto dell'applicazione (file ZIP) relativo al file manifest. 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.
Distribuzioni ASP.NET Core
Le distribuzioni ASP.NET Core sono progettate specificamente per le applicazioni.NET Core e.NET 5+.
Esempio Configurazione della distribuzione di ASP.NET Core
{
"deployments": {
"aspNetCoreWeb": [
{
"name": "CoreAPI",
"description": "ASP.NET Core Web API",
"parameters": {
"appBundle": "coreapi.zip",
"iisPath": "/api",
"appPool": "CoreAppPool"
}
}
]
}
}
Le distribuzioni ASP.NET Core utilizzano la stessa struttura di proprietà delle MSDeploy distribuzioni, con la differenza fondamentale costituita dall'ambiente di runtime e dal modello di hosting utilizzati per l'applicazione.
Parametri di distribuzione di ASP.NET Core
appBundle
(richiesto)-
Tipo: stringa
Percorso del bundle dell'applicazione relativo al file manifest. Può trattarsi di un archivio ZIP o di 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.
Distribuzioni 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 installazione, configurazione o logica di distribuzione personalizzate.
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
Valore predefinito: 32
Valori validi: 32, 64
Le specifiche di architettura per la modalità di esecuzione degli script PowerShell
scripts
(richiesto)-
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 momenti specifici durante il ciclo di vita della distribuzione. Diversi tipi di distribuzione 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 Web) aspNetCore
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 distribuzioni personalizzate. Questo script è responsabile dell'installazione dell'applicazione o del servizio.
restart
-
Script per riavviare l'applicazione o il servizio. Chiamato al riavvio dell'ambiente.
uninstall
-
Script per disinstallare l'applicazione o il servizio. Chiamato durante la chiusura dell'ambiente o la rimozione dell'applicazione.
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 manifest. Lo script deve avere un'
.ps1
estensione. ignoreErrors
(facoltativo)-
Tipo: Booleano
Di default: false
Se impostato su
true
, la distribuzione continua anche se lo script fallisce. Utilizzalo per script o operazioni di pulizia non critici.
Esempio di configurazione dello script
{
"scripts": {
"preInstall": {
"file": "backup-config.ps1",
"ignoreErrors": true
},
"postInstall": {
"file": "configure-app.ps1"
}
}
}