Configuración de las variables de entorno y otras opciones de software
La página Configuración de actualizaciones, supervisión y registro permite configurar el software en las instancias de Amazon Elastic Compute Cloud (Amazon EC2) que ejecutan la aplicación. Puede configurar las variables de entorno, la depuración de AWS X-Ray, el almacenamiento y el streaming de registros de instancias y la configuración específica de la plataforma.
Temas
Configuración de la configuración específica de la plataforma
Además del conjunto estándar de opciones disponibles para todos los entornos, la mayoría de plataformas de Elastic Beanstalk le permiten especificar una configuración específica del lenguaje o de marco. Aparecen en la sección Software de la plataforma de la página Configuración de actualizaciones, supervisión y registro y pueden adoptar las siguientes formas.
-
Propiedades preestablecidas del entorno: la plataforma Ruby utiliza propiedades del entorno para la configuración del marco como
RACK_ENVyBUNDLE_WITHOUT. -
Propiedades comodín del entorno: la plataforma Tomcat define una propiedad del entorno llamada
JDBC_CONNECTION_STRINGque no se ha establecido en ningún valor. Este tipo de configuración era más habitual en las versiones anteriores de la plataforma. -
Opciones de configuración: la mayoría de las plataformas definen las opciones de configuración en espacios de nombres compartidos o específicos de plataforma como
aws:elasticbeanstalk:xrayoaws:elasticbeanstalk:container:python.
Para configurar los parámetros específicos de la plataforma en la consola de Elastic Beanstalk
Abra la consola de Elastic Beanstalk
y, en la lista Regions (Regiones), seleccione su Región de AWS. -
En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.
En el panel de navegación, elija Configuración.
-
En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Edición de.
-
En Software de plataforma, realice los cambios necesarios en los valores de configuración.
-
Para guardar los cambios, elija Aplicar en la parte inferior de la página.
Para obtener más información sobre opciones específicas de la plataforma y sobre la obtención de valores de propiedad del entorno, consulte el tema de la plataforma para su lenguaje o marco:
Configuración de las propiedades del entorno (variables de entorno)
Puede utilizar las propiedades de entorno (también conocidas como variables de entorno) para transferir puntos de conexión, ajustes de depuración y otros datos a su aplicación. Las variables de entorno le permiten ejecutar la aplicación en varios entornos para distintos fines, por ejemplo, desarrollo, pruebas, uso transitorio y producción.
Además, al agregar una base de datos a su entorno, Elastic Beanstalk establece las variables de entorno, por ejemplo, RDS_HOSTNAME, que puede leer en el código de la aplicación para construir una cadena u objeto de conexión.
Cómo configurar variables de entorno en la consola de Elastic Beanstalk
Abra la consola de Elastic Beanstalk
y, en la lista Regions (Regiones), seleccione su Región de AWS. -
En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.
En el panel de navegación, elija Configuración.
-
En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Edición de.
-
Desplácese hacia abajo hasta Variables de entorno de tiempo de ejecución.
-
Seleccione Añadir variables de entorno.
-
En Fuente, seleccione Texto sin formato.
nota
Los valores de Secrets Manager y Almacén de parámetros de SSM del menú desplegable sirven para configurar variables de entorno como secretos para almacenar información confidencial, como credenciales y claves de API. Para obtener más información, consulte Uso de Elastic Beanstalk con AWS Secrets Manager y el Almacén de parámetros de AWS Systems Manager.
-
Introduzca los pares de nombre de la variable de entorno y valor de la variable de entorno.
-
Si necesita añadir más variables, repita desde el Paso 6 hasta el Paso 8.
-
Para guardar los cambios, elija Aplicar en la parte inferior de la página.
Límites de la propiedad de entorno
-
Las claves pueden contener caracteres alfanuméricos y los siguientes símbolos:
_ . : / + \ - @Los símbolos indicados son válidos para las clave de propiedad de entorno, pero podrían no ser válidos para nombres de variable de entorno en la plataforma del entorno. Para lograr la compatibilidad con todas las plataformas, limite las propiedades del entorno al siguiente patrón:
[A-Z_][A-Z0-9_]* -
Los valores pueden contener cualquier carácter alfanumérico y los siguientes símbolos:
_ . : / = + \ - @ ' "nota
Se debe aplicar escape a algunos caracteres de los valores de propiedades del entorno. Usa el carácter de barra invertida (
\) para representar algunos caracteres especiales y caracteres de control. La siguiente lista incluye ejemplos para representar algunos caracteres a los que hay que aplicar escape:barra invertida (
\): para representar el uso\\comillas simples (
'): para representar el uso\'comillas dobles (
"): para representar el uso\"
-
Las claves y los valores distinguen entre mayúsculas y minúsculas.
-
El tamaño combinado de todas las propiedades del entorno no puede superar 4096 bytes cuando se almacena como cadenas con el formato
clave=valor.
Espacios de nombres para configuración de software
Puede usar un archivo de configuración para definir opciones de configuración y realizar otras tareas de configuración en las instancias durante las implementaciones. Las opciones de configuración pueden ser específicas de la plataforma o aplicarse a todas las plataformas del servicio de Elastic Beanstalk en su conjunto. Las opciones de configuración se organizan en espacios de nombres.
Puede utilizar archivos de configuración de Elastic Beanstalk para establecer propiedades de entorno y opciones de configuración en el código fuente. Utilice el aws:elasticbeanstalk:application:environment espacio de nombres para definir las propiedades del entorno.
ejemplo .ebextensions/options.config
option_settings:
aws:elasticbeanstalk:application:environment:
API_ENDPOINT: www.example.com/apiSi utiliza archivos de configuración o plantillas de CloudFormation para crear recursos personalizados, puede usar una función de CloudFormationpara obtener información acerca del recurso y asignarlo a una propiedad de entorno dinámicamente durante la implementación. El siguiente ejemplo del repositorio de GitHub elastic-beanstalk-samplesNOTIFICATION_TOPIC.
Notas
-
Si utiliza una función de CloudFormation para definir una propiedad de entorno, la consola de Elastic Beanstalk muestra el valor de la propiedad antes de evaluar la función. Puede utilizar el script de plataforma get-config para confirmar los valores de las propiedades de entorno que están disponibles para su aplicación.
-
La plataforma Multicontainer Docker con varios contenedores no utiliza CloudFormation para crear recursos de contenedor. Como resultado, esta plataforma no admite la definición de las propiedades del entorno mediante funciones CloudFormation.
ejemplo .Ebextensions/sns-topic.config
Resources:
NotificationTopic:
Type: AWS::SNS::Topic
option_settings:
aws:elasticbeanstalk:application:environment:
NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'También puede utilizar esta característica para propagar información de pseudoparámetros de CloudFormation. Este ejemplo obtiene la región actual y la asigna a una propiedad llamada AWS_REGION.
ejemplo .Ebextensions/env-regionname.config
option_settings:
aws:elasticbeanstalk:application:environment:
AWS_REGION: '`{"Ref" : "AWS::Region"}`'La mayoría de las plataformas de Elastic Beanstalk define espacios de nombres adicionales con opciones para configurar software que se ejecuta en la instancia, como el proxy inverso que transmite solicitudes a su aplicación. Para obtener más información sobre los espacios de nombres disponibles para su plataforma, consulte las siguientes secciones:
Elastic Beanstalk cuenta con numerosas opciones de configuración para personalizar el entorno. Además de los archivos de configuración, también puede definir opciones en la consola, configuraciones guardadas, la CLI de EB o la AWS CLI. Para obtener más información, consulte Opciones de configuración.
Acceso a las propiedades del entorno
En la mayoría de los casos, accede a propiedades de entorno en su código de aplicación como una variable de entorno. No obstante, las propiedades del entorno suelen transferirse únicamente a la aplicación y no se pueden visualizar conectando una instancia en su entorno y ejecutando env.
-
Go –
os.Getenvendpoint := os.Getenv("API_ENDPOINT") -
Java SE –
System.getenvString endpoint = System.getenv("API_ENDPOINT"); -
Tomcat –
System.getPropertyySystem.getenvEn las versiones de la plataforma Tomcat publicadas a partir del 26 de marzo de 2025 también se puede utilizar
System.getenvpara acceder a variables de entorno de texto sin formato. Puede seguir utilizandoSystem.getPropertypara acceder a las variables de entorno de texto sin formato. Sin embargo, las variables de entorno almacenadas como secretas solo están disponibles medianteSystem.getenv.String endpoint = System.getProperty("API_ENDPOINT");String endpoint = System.getenv("API_ENDPOINT");importante
La adición del acceso
System.getenva las variables de entorno en las versiones de la plataforma Tomcat publicadas a partir del 26 de marzo de 2025 puede provocar un comportamiento inesperado en las aplicaciones que dan prioridad a las variables de entorno sobre las propiedades del sistema Java o al cambiar explícitamente deSystem.getPropertyaSystem.getenv. Para obtener más información y acciones recomendadas, consulte Uso de la plataforma Tomcat de Elastic Beanstalk. -
.NET Core en Linux –
Environment.GetEnvironmentVariablestring endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT"); -
.NET –
appConfigNameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"]; -
Node.js –
process.envvar endpoint = process.env.API_ENDPOINT -
PHP –
$_SERVER$endpoint = $_SERVER['API_ENDPOINT']; -
Python –
os.environimport os endpoint = os.environ['API_ENDPOINT'] -
Ruby –
ENVendpoint = ENV['API_ENDPOINT']
Fuera del código de aplicación como, por ejemplo, en un script que se ejecuta durante la implementación, puede obtener acceso a las propiedades del entorno con el get-config script de la plataforma. Consulte el repositorio de GitHub elastic-beanstalk-samplesget-config.