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

YAMLsi basa su un'indentazione coerente. 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

Più vecchio (senza versioni). NETle versioni della piattaforma non elaborano 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, ad esempio un oggetto Amazon Simple Storage Service (Amazon S3), purché sia accessibile pubblicamenteURL.

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

Sintassi

Specificate un nome a vostra scelta come nome del pacchetto e un nome URL a una posizione MSI del file come valore. È possibile specificare più pacchetti nella chiave msi:.

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

Esempi

L'esempio seguente specifica URL a da cui scaricare mysql. 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 MSI del file.

packages: msi: mymsi: https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.msi

Origini

Usa la sources chiave per scaricare un file di archivio da un archivio pubblico URL 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, ad esempio un oggetto Amazon Simple Storage Service (Amazon S3), purché sia accessibile pubblicamenteURL.

Esempio

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

sources: "c:/myproject/myapp": https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject.zip

File

Usa la files chiave per creare file sull'istanza. EC2 Il contenuto può essere incorporato nel file di configurazione o proveniente da unURL. 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

(Facoltativo) Il file URL da cui viene caricato il file. 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 predefinito è 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 i due modi per fornire il contenuto del file: da un URL file o in linea 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 lo utilizza per scaricare un file privato da 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" s: ["amzn-s3-demo-bucket"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role"

Comandi

Usa la commands chiave 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 predefinito è 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 del contenitore solo per i leader non vengono eseguiti a causa di modifiche alla configurazione di avvio, ad esempio una modifica dell'AMIID 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