Proprietà dell'ambiente e altre impostazioni software - 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à.

Proprietà dell'ambiente e altre impostazioni software

La pagina di configurazione Configurazione di aggiornamenti, monitoraggio e registrazione consente di configurare il software sulle istanze Amazon Elastic Compute Cloud (Amazon EC2) che eseguono l'applicazione. È possibile configurare le proprietà dell'ambiente, il debug AWS X-Ray, l'archiviazione e lo streaming dei log delle istanze e le impostazioni specifiche della piattaforma.

Configurare le impostazioni specifiche della piattaforma

Oltre al set di opzioni standard disponibili per tutti gli ambienti, la maggior parte delle piattaforme Elastic Beanstalk consente di specificare le impostazioni specifiche per il linguaggio o il framework. Queste vengono visualizzati nella sezione Software della piattaforma della pagina Configurazione di aggiornamenti, monitoraggio e registrazione e possono assumere le seguenti forme.

  • Proprietà dell'ambiente preimpostate: la piattaforma Ruby utilizza le proprietà dell'ambiente per le impostazioni del framework, ad esempio RACK_ENV e BUNDLE_WITHOUT.

  • Proprietà dell'ambiente di tipo segnaposto: la piattaforma Tomcat definisce una proprietà dell'ambiente denominata JDBC_CONNECTION_STRING che non è impostata su nessun valore. Questo tipo di impostazione è più comune nelle versioni delle piattaforme meno recenti.

  • Opzioni di configurazione: la maggior parte delle piattaforme definisce le opzioni di configurazione negli spazi dei nomi condivisi o specifici per la piattaforma, ad esempio aws:elasticbeanstalk:xray o aws:elasticbeanstalk:container:python.

Per configurare le impostazioni specifiche della piattaforma nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e nell'elenco Regions (Regioni) seleziona la tua Regione AWS.

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), scegli Edit (Modifica).

  5. In Software della piattaforma, apporta le modifiche necessarie alle impostazioni delle opzioni.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Per informazioni sulle opzioni specifiche della piattaforma e su come ottenere i valori di proprietà dell'ambiente nel codice, consulta l'argomento sulla piattaforma relativo al linguaggio o al framework in uso:

Configurazione delle proprietà dell'ambiente (variabili di ambiente)

È possibile utilizzare le proprietà dell'ambiente, anche chiamate variabili di ambiente, per trasmettere segreti, endpoint, impostazioni di debug e altre informazioni all'applicazione. Le proprietà dell'ambiente consentono di eseguire l'applicazione in più ambienti per diversi scopi, ad esempio sviluppo, test, gestione temporanea e produzione.

Inoltre, se aggiungi un database all'ambiente, Elastic Beanstalk imposta le proprietà dell'ambiente, come RDS_HOSTNAME, che puoi leggere nel codice dell'applicazione per creare un oggetto o una stringa di connessione.

Variabili di ambiente

Nella maggior parte dei casi, le proprietà dell'ambiente vengono trasferite all'applicazione sotto forma di variabili di ambiente, ma il loro comportamento dipende dalla piattaforma. Ad esempio, la piattaforma Java SE imposta le variabili di ambiente recuperate con System.getenv, mentre la piattaforma Tomcat imposta le proprietà di sistema Java recuperate con System.getProperty. In generale, le proprietà non sono visibili se effettui la connessione a un'istanza ed esegui env.

Per configurare le proprietà dell'ambiente nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e nell'elenco Regions (Regioni) seleziona la tua Regione AWS.

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), scegli Edit (Modifica).

  5. Scorri verso il basso fino a Proprietà dell'ambiente.

  6. Seleziona Aggiungi proprietà dell'ambiente.

  7. Inserisci la coppia di Nome e Valore della proprietà.

  8. Se è necessario aggiungere altre variabili, ripeti il Passaggio 6 e il Passaggio 7.

  9. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Limitare le proprietà dell'ambiente
  • Le chiavi possono contenere qualsiasi carattere alfanumerico e i simboli seguenti: _ . : / + \ - @

    I simboli elencati sono validi per le chiavi di proprietà dell'ambiente, ma potrebbero non esserlo per i nomi delle variabili di ambiente nella piattaforma dell'ambiente. Per assicurare la compatibilità con tutte le piattaforme, limita le proprietà dell'ambiente al modello seguente: [A-Z_][A-Z0-9_]*

  • I valori possono contenere qualsiasi carattere alfanumerico, spazi vuoti e i simboli seguenti: _ . : / = + \ - @ ' "

    Nota

    Occorre inserire caratteri di escape per alcuni caratteri inseriti nei valori delle proprietà di ambiente Usa il carattere barra rovesciata (\) per rappresentare alcuni caratteri speciali e caratteri di controllo. L'elenco seguente include esempi per la rappresentazione di alcuni caratteri che devono essere sottoposti a escape:

    • barra rovesciata (\) — per rappresentare l'uso \\

    • virgoletta singola (') — per rappresentare l'uso \'

    • virgolette doppie (") — per rappresentare l'uso \"

  • Le chiavi e i valori fanno distinzione tra maiuscole e minuscole.

  • La dimensione combinata di tutte le proprietà dell'ambiente non può superare i 4.096 byte se tali proprietà vengono archiviate come stringhe con il formato chiave=valore.

Spazi dei nomi delle impostazioni software

È possibile utilizzare un file di configurazione per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione, che possono essere definite dal servizio Elastic Beanstalk o dalla piattaforma utilizzata, sono organizzate in spazi dei nomi.

Puoi utilizzare i file di configurazione di Elastic Beanstalk per impostare le proprietà e le opzioni di configurazione dell'ambiente nel codice sorgente. Utilizza lo spazio dei nomiaws:elasticbeanstalk:application:environment per definire le proprietà dell'ambiente.

Esempio .ebextensions/options.config
option_settings: aws:elasticbeanstalk:application:environment: API_ENDPOINT: www.example.com/api

Se utilizzi file di configurazione o modelli di AWS CloudFormation per creare risorse personalizzate, puoi utilizzare una funzione AWS CloudFormation per ottenere informazioni sulla risorsa e assegnarla dinamicamente a una proprietà dell'ambiente durante la distribuzione. L'esempio seguente, preso dal repository GitHub elastic-beanstalk-samples, utilizza la funzione Ref per ottenere l'ARN di un argomento Amazon SNS creato e lo assegna a una proprietà dell'ambiente denominata NOTIFICATION_TOPIC.

Note
  • Se utilizzi una funzione AWS CloudFormation per definire una proprietà dell'ambiente, la console Elastic Beanstalk visualizza il valore della proprietà prima che la funzione venga valutata. Puoi utilizzare lo script della piattaforma get-config per confermare i valori delle proprietà dell'ambiente disponibili per la tua applicazione.

  • La piattaforma Multicontainer Docker non utilizza AWS CloudFormation per creare risorse del container. Di conseguenza non supporta la definizione di proprietà dell'ambiente mediante le funzioni AWS CloudFormation.

Esempio .Ebextensions/sns-topic.config
Resources: NotificationTopic: Type: AWS::SNS::Topic option_settings: aws:elasticbeanstalk:application:environment: NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'

Puoi inoltre utilizzare questa caratteristica per propagare le informazioni dagli pseudoparametri di AWS CloudFormation. Questo esempio ottiene la regione corrente e la assegna a una proprietà denominata AWS_REGION.

Esempio .Ebextensions/env-regionname.config
option_settings: aws:elasticbeanstalk:application:environment: AWS_REGION: '`{"Ref" : "AWS::Region"}`'

La maggior parte delle piattaforme Elastic Beanstalk definisce spazi dei nomi aggiuntivi con opzioni per la configurazione del software in esecuzione sull'istanza, come il proxy inverso che inoltra le richieste all'applicazione. Per ulteriori informazioni sugli spazi dei nomi disponibili per la piattaforma in uso, consulta una delle sezioni seguenti:

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, puoi impostare le opzioni di configurazione tramite la console, le configurazioni salvate, la CLI EB o AWS CLI. Per ulteriori informazioni, consultare Opzioni di configurazione.

Accesso alle proprietà dell'ambiente

Nella maggior parte dei casi, puoi accedere alle proprietà dell'ambiente nel codice dell'applicazione come accedi alle variabili di ambiente. In generale, tuttavia, le proprietà dell'ambiente vengono trasmesse soltanto all'applicazione e non possono essere visualizzate tramite la connessione di un'istanza nell'ambiente e l'esecuzione di env.

  • Go: os.Getenv

    endpoint := os.Getenv("API_ENDPOINT")
  • Java SE: System.getenv

    String endpoint = System.getenv("API_ENDPOINT");
  • TomcatSystem.getProperty

    String endpoint = System.getProperty("API_ENDPOINT");
  • .NET Core su Linux: Environment.GetEnvironmentVariable

    string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  • .NET: appConfig

    NameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"];
  • Node.jsprocess.env

    var endpoint = process.env.API_ENDPOINT
  • PHP: $_SERVER

    $endpoint = $_SERVER['API_ENDPOINT'];
  • Pythonos.environ

    import os endpoint = os.environ['API_ENDPOINT']
  • Ruby: ENV

    endpoint = ENV['API_ENDPOINT']

All'esterno del codice dell'applicazione, ad esempio in uno script eseguito durante la distribuzione, puoi accedere alle proprietà dell'ambiente con lo script di piattaforma get-config. Consulta il repository GitHub elastic-beanstalk-samples per configurazioni di esempio in cui viene utilizzato get-config.