Personalizzazione di software su server Windows - 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à.

Personalizzazione di software su server Windows

È possibile che tu voglia personalizzare e configurare il software da cui dipende la tua applicazione. Questi file potrebbero essere dipendenze richieste dall'applicazione, ad esempio servizi o pacchetti aggiuntivi che devono essere eseguiti. Per informazioni generali sulla personalizzazione e sulla configurazione degli ambienti Elastic Beanstalk, consulta Configurazione degli ambienti Elastic Beanstalk.

Nota

YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

I file di configurazione supportano le seguenti chiavi utilizzabili con il server Windows in cui è in esecuzione l'applicazione.

Le chiavi sono elaborate nell'ordine in cui sono elencate qui.

Nota

Le versioni della piattaforma .NET (senza versione) meno recenti non sono in grado di elaborare i file di configurazione nell'ordine corretto. Ulteriori informazioni sono disponibili in Migrazione tra le versioni principali della piattaforma server Windows di Elastic Beanstalk.

Controlla gli eventi del tuo ambiente durante lo sviluppo e il test dei file di configurazione. Elastic Beanstalk ignora un file di configurazione contenente errori di convalida, ad esempio una chiave non valida, e non elabora le altre chiavi contenute nello stesso file. In questi casi, Elastic Beanstalk aggiunge un avviso nel log degli eventi.

Pacchetti

Utilizza la chiave packages per scaricare e installare pacchetti di componenti e applicazioni.

Negli ambienti Windows, Elastic Beanstalk supporta il download e l'installazione di pacchetti MSI. Gli ambienti Linux supportano programmi di gestione dei pacchetti aggiuntivi. Per maggiori dettagli, consultare Pacchetti nella pagina Personalizzazione di software su server Linux.

Puoi fare riferimento a qualsiasi posizione esterna, come un oggetto Amazon Simple Storage Service (Amazon S3), a condizione che l'URL sia pubblicamente accessibile.

Se si specificano diversi msi: pacchetti, il loro ordine di installazione non è garantito.

Sintassi

Specifica un nome di tua scelta come nome del pacchetto e un URL per un percorso di file MSI come valore. È possibile specificare più pacchetti nella chiave msi:.

packages: msi: package name: package url ...

Esempi

L'esempio seguente specifica un URL per scaricare mysql da https://dev.mysql.com/.

packages: msi: mysql: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.11.msi

L'esempio seguente specifica un oggetto Amazon S3 come posizione del file MSI.

packages: msi: mymsi: https://mybucket.s3.amazonaws.com/myobject.msi

Origini

Utilizza la chiave sources per scaricare un file di archivio da un URL pubblico e decomprimerlo in una directory di destinazione sull'istanza EC2.

Sintassi

sources: target directory: location of archive file

Formati supportati

In ambienti Windows, Elastic Beanstalk supporta il formato ZIP. Gli ambienti Linux supportano formati aggiuntivi. Per maggiori dettagli, consultare Origini nella pagina Personalizzazione di software su server Linux.

Puoi fare riferimento a qualsiasi posizione esterna, come un oggetto Amazon Simple Storage Service (Amazon S3), a condizione che l'URL sia pubblicamente accessibile.

Esempio

L'esempio seguente scarica un file .zip pubblico da un bucket Amazon S3 e lo decomprime in c:/myproject/myapp.

sources: "c:/myproject/myapp": https://mybucket.s3.amazonaws.com/myobject.zip

File

Utilizza la chiave files per creare file sull'istanza EC2. Il contenuto può essere inline nel file di configurazione o essere estratto da un URL. I file sono scritti su disco in ordine lessicografico. Per scaricare file privati da Amazon S3, fornisci un profilo dell'istanza per l'autorizzazione.

Sintassi

files: "target file location on disk": source: URL authentication: authentication name: "target file location on disk": content: | this is my content encoding: encoding format

Opzioni

content

(Facoltativa) Una stringa.

source

(Facoltativa) L'URL da cui il file è caricato. Questa opzione non può essere specificata con la chiave contenuto.

encoding

(Facoltativa) Il formato di codifica. Questa opzione è utilizzata solo per un valore di chiave contenuto fornito. Il valore di default è plain.

Valori validi: plain | base64

authentication

(Facoltativo) Il nome di un metodo di autenticazione AWS CloudFormation da utilizzare. Puoi aggiungere metodi di autenticazione ai metadati del gruppo Auto Scaling con la chiave Resources.

Esempi

L'esempio seguente mostra due modi per fornire i contenuti di un file: da un URL o inline nel file di configurazione.

files: "c:\\targetdirectory\\targetfile.txt": source: http://foo.bar/myfile "c:/targetdirectory/targetfile.txt": content: | # this is my file # with content
Nota

Se utilizzi una barra rovesciata (\) nel percorso di file, devi anteporvi un'altra barra rovesciata (il carattere escape) come mostrato nell'esempio precedente.

L'esempio seguente utilizza la chiave Resources per aggiungere un metodo di autenticazione denominato S3Auth e utilizzato per scaricare un file privato da un bucket Amazon S3:

files: "c:\\targetdirectory\\targetfile.zip": source: https://elasticbeanstalk-us-east-2-123456789012.s3.amazonaws.com/prefix/myfile.zip authentication: S3Auth Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["elasticbeanstalk-us-east-2-123456789012"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role"

Comandi

Utilizza la chiave commands per eseguire comandi sull'istanza EC2. I comandi vengono elaborati in ordine alfabetico per nome e vengono eseguiti prima della configurazione dell'applicazione e del server Web e prima che il file della versione dell'applicazione venga estratto.

I comandi specificati sono eseguiti come utente amministratore.

Per risolvere i problemi emersi con i comandi, è possibile trovare il relativo output nei log delle istanze.

Sintassi

commands: command name: command: command to run

Opzioni

command

Una matrice o una stringa che specifica il comando da eseguire. Se utilizzi una matrice, non è necessario utilizzare un carattere di escape negli spazi o racchiudere i parametri di comando tra virgolette.

cwd

(Facoltativa) La directory di lavoro. Per impostazione predefinita, Elastic Beanstalk tenta di trovare la posizione della directory del tuo progetto. Se non la trova, utilizza c:\Windows\System32 come percorso di default.

env

(Facoltativa) Imposta variabili di ambiente per il comando. Questa proprietà non aggiunge l'ambiente esistente ma lo sovrascrive.

ignoreErrors

(Facoltativa) Un valore booleano che determina se altri comandi devono essere eseguiti nel caso in cui il comando nella chiave command non riesca (restituisce un valore diverso da zero). Imposta questo valore su true per continuare a eseguire i comandi anche se il comando non riesce. Impostalo su false per interrompere l'esecuzione dei comandi se il comando non riesce. Il valore di default è false.

test

(Facoltativo) Un comando che deve restituire il valore true (codice di uscita 0) per consentire a Elastic Beanstalk di elaborare il comando contenuto nella chiave command.

waitAfterCompletion

(Facoltativa) L'intervallo in secondi tra il completamento del comando e l'esecuzione del comando successivo. Se il sistema richiede un riavvio dopo il completamento del comando, il riavvio viene eseguito al termine dell'intervallo specificato. Se il riavvio del sistema è dovuto a un comando, Elastic Beanstalk esegue il recupero fino al punto successivo al comando nel file di configurazione. Il valore predefinito è 60 secondi. Puoi anche specificare forever, ma è necessario riavviare il sistema prima di eseguire un altro comando.

Esempio

L'esempio seguente salva l'output del comando set nel file specificato. Se c'è un comando successivo, viene eseguito da Elastic Beanstalk subito dopo il completamento di questo comando. Se tale comando richiede un riavvio, Elastic Beanstalk riavvia l'istanza subito dopo il completamento del comando.

commands: test: command: set > c:\\myapp\\set.txt waitAfterCompletion: 0

Servizi

Utilizza la chiave services per definire i servizi che devono essere avviati o arrestati all'avvio dell'istanza. La chiave services consente inoltre di specificare le dipendenze in origini, pacchetti e file, di modo che se è necessario un riavvio a seguito dell'installazione dei file, Elastic Beanstalk esegue il riavvio del servizio.

Sintassi

services: windows: name of service: files: - "file name" sources: - "directory" packages: name of package manager: "package name[: version]" commands: - "name of command"

Opzioni

ensureRunning

(Facoltativo) Imposta su true per continuare a eseguire il servizio dopo la chiusura di Elastic Beanstalk.

Imposta su false per continuare a eseguire il servizio dopo la chiusura di Elastic Beanstalk.

Ometti la chiave per non apportare modifiche allo stato del servizio.

enabled

(Facoltativa) Imposta su true per eseguire automaticamente il servizio all'avvio.

Imposta su false per non eseguire automaticamente il servizio all'avvio.

Ometti la chiave per non apportare modifiche a questa proprietà.

files

Un elenco di file. Se Elastic Beanstalk ne modifica uno direttamente tramite il blocco di file, il servizio viene riavviato.

sources

Un elenco di directory. Se Elastic Beanstalk espande un archivio in una di queste directory, il servizio viene riavviato.

packages

La mappatura del programma di gestione dei pacchetti a un elenco di nomi di pacchetto. Se Elastic Beanstalk installa o aggiorna uno di questi pacchetti, il servizio viene riavviato.

commands

Un elenco di nomi di comando. Se Elastic Beanstalk esegue il comando specificato, il servizio viene riavviato.

Esempio

services: windows: myservice: enabled: true ensureRunning: true

Comandi del container

Utilizza la chiave container_commands per eseguire comandi che modificano il codice sorgente dell'applicazione. I comandi di contenitore vengono eseguiti dopo la configurazione dell'applicazione e del server Web e l'estrazione dell'archivio delle versioni dell'applicazione, ma prima della distribuzione della versione dell'applicazione. I comandi non di contenitore e altre operazioni di personalizzazione vengono eseguiti prima dell'estrazione del codice sorgente dell'applicazione.

I comandi di contenitore vengono eseguiti a partire dalla directory di gestione temporanea, dove viene estratto il codice sorgente prima di essere distribuito al server di applicazioni. Qualsiasi modifica apportata al codice sorgente nella directory di gestione temporanea con un comando di contenitore verrà inclusa al momento della distribuzione del codice sorgente nella posizione finale.

Per risolvere i problemi emersi con i comandi del container, è possibile trovare il relativo output nei log delle istanze.

Utilizza l'opzione leader_only per eseguire il comando solo su una singola istanza oppure configura un oggetto test per eseguire il comando esclusivamente quando un comando di test restituisce true. I comandi di contenitore "leader-only" vengono eseguiti solo durante la creazione dell'ambiente e le distribuzioni, mentre altri comandi e operazioni di personalizzazione di server sono eseguiti a ogni provisioning o aggiornamento di un'istanza. I comandi di contenitore "leader-only" non vengono eseguiti a causa di modifiche alla configurazione di avvio, ad esempio nel caso di modifica dell'ID AMI o del tipo di istanza.

Sintassi

container_commands: name of container_command: command: command to run

Opzioni

command

Una stringa o una matrice di stringhe da eseguire.

env

(Facoltativa) Imposta le variabili di ambiente prima di eseguire il comando, ignorando qualsiasi valore esistente.

cwd

(Facoltativa) La directory di lavoro. Per impostazione predefinita, questa è la directory di gestione temporanea dell'applicazione decompressa.

leader_only

(Facoltativa) Esegui il comando solo su una singola istanza scelta da Elastic Beanstalk. I comandi di contenitore "leader-only" vengono eseguiti prima di altri comandi di contenitore. Un comando può essere "leader-only" o avere un oggetto test, ma non entrambe le cose (leader_only è prioritario).

test

(Facoltativa) Esegui un comando di test che deve restituire true per eseguire il comando di contenitore. Un comando può essere "leader-only" o avere un oggetto test, ma non entrambe le cose (leader_only è prioritario).

ignoreErrors

(Facoltativa) Esegui correttamente le distribuzioni se il comando di container restituisce un valore diverso da 0 (riuscito). Imposta su true per attivarla.

waitAfterCompletion

(Facoltativa) L'intervallo in secondi tra il completamento del comando e l'esecuzione del comando successivo. Se il sistema richiede un riavvio dopo il completamento del comando, il riavvio viene eseguito al termine dell'intervallo specificato. Se il riavvio del sistema è dovuto a un comando, Elastic Beanstalk esegue il recupero fino al punto successivo al comando nel file di configurazione. Il valore predefinito è 60 secondi. Puoi anche specificare forever, ma è necessario riavviare il sistema prima di eseguire un altro comando.

Esempio

L'esempio seguente salva l'output del comando set nel file specificato. Elastic Beanstalk esegue il comando su un'istanza e riavvia l'istanza subito dopo il completamento del comando.

container_commands: foo: command: set > c:\\myapp\\set.txt leader_only: true waitAfterCompletion: 0