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 degli aggiornamenti, del monitoraggio e della registrazione consente di configurare il software sulle istanze Amazon Elastic Compute Cloud EC2 (Amazon) che eseguono l'applicazione. Puoi configurare le proprietà dell'ambiente, AWS X-Ray debug, archiviazione e streaming dei log delle istanze e 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 Regioni, seleziona la 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 Regioni, seleziona la 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 memorizzate come stringhe con il formato key=value.

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 possono essere specifiche della piattaforma o essere applicate a tutte le piattaforme del servizio Elastic Beanstalk nel suo complesso. Le opzioni di configurazione sono organizzate in namespace.

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 si utilizzano file di configurazione o AWS CloudFormation modelli per creare risorse personalizzate, puoi usare un AWS CloudFormation funzione per ottenere informazioni sulla risorsa e assegnarla dinamicamente a una proprietà dell'ambiente durante la distribuzione. L'esempio seguente tratto dal elastic-beanstalk-samples GitHub repository utilizza la funzione Ref per ottenere un SNS argomento Amazon creato e lo assegna a una proprietà di ambiente denominata. ARN NOTIFICATION_TOPIC

Note
  • Se usi un AWS CloudFormation per definire una proprietà di 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 container. Di conseguenza, questa piattaforma non supporta la definizione delle proprietà dell'ambiente utilizzando AWS CloudFormation funzioni.

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

È inoltre possibile utilizzare questa funzionalità per propagare informazioni da AWS CloudFormation pseudo parametri. 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 anche impostare le opzioni di configurazione utilizzando la console, le configurazioni salvate, l'EB CLI o il AWS CLI. Opzioni di configurazionePer ulteriori informazioni, vedere.

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");
  • . NETCore su LinuxEnvironment.GetEnvironmentVariable

    string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  • .NETappConfig

    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. Vedi il elastic-beanstalk-samples GitHub repository per esempi di configurazioni che utilizzano. get-config