Propiedades del entorno y otras opciones del software - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Propiedades del entorno y otras opciones del software

La página Configurar actualizaciones, monitoreo y registro permite configurar el software en las instancias de Amazon Elastic Compute Cloud (Amazon EC2) que ejecutan la aplicación. Puede configurar las propiedades del 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.

Configurar 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 Configurar actualizaciones, monitoreo 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_ENV y BUNDLE_WITHOUT.

  • Propiedades comodín del entorno: la plataforma Tomcat define una propiedad del entorno llamada JDBC_CONNECTION_STRING que 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:xray o aws:elasticbeanstalk:container:python.

Para configurar los parámetros específicos de la plataforma en la consola de Elastic Beanstalk
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su Región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

  5. En Software de plataforma, realice los cambios necesarios en los valores de configuración.

  6. 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 del entorno (también conocidas como variables de entorno) para pasar claves secretas, puntos de conexión, ajustes de depuración y otros datos a su aplicación. Las propiedades del entorno le ayudarán a ejecutar la aplicación en varios entornos para distintos fines, por ejemplo, desarrollo, pruebas, almacenamiento provisional y producción.

Además, al agregar una base de datos a su entorno, Elastic Beanstalk establece las propiedades del 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.

Variables de entorno

En la mayoría de los casos, las propiedades del entorno se transfieren a la aplicación como variables de entorno, pero el comportamiento depende de la plataforma. Por ejemplo, la plataforma Java SE establece las variables de entorno que se recuperan con System.getenv, mientras que la plataforma Tomcat establece las propiedades del sistema Java que se recuperan con System.getProperty. En general, las propiedades no están visibles si se conecta a una instancia y ejecuta env.

Para configurar las propiedades del entorno en la consola de Elastic Beanstalk
  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su Región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.

  5. Desplácese hacia abajo hasta Propiedades del entorno.

  6. Seleccione Agregar propiedad de entorno.

  7. Introduzca los pares Nombre y Valor de la propiedad.

  8. Si necesita agregar más variables, repita Paso 6 y Paso 7.

  9. 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/api

Si utiliza archivos de configuración o plantillas de AWS CloudFormation para crear recursos personalizados, puede usar una función de AWS CloudFormation para 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-samples utiliza la función Ref para obtener el ARN de un tema de Amazon SNS que crea y se lo asigna a una propiedad de entorno denominada NOTIFICATION_TOPIC.

Notas
  • Si utiliza una función de AWS 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 no utiliza AWS CloudFormation para crear recursos de contenedor. Como resultado, esta plataforma no admite la definición de las propiedades del entorno usando funciones de AWS 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 AWS 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.Getenv

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

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

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

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

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

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

    $endpoint = $_SERVER['API_ENDPOINT'];
  • Python: os.environ

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

    endpoint = 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-samples para obtener configuraciones de ejemplo que utilizan get-config.