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

Propiedades del entorno y otras opciones del software

La página de configuración Modify software (Modificar software) le 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.


      Página de configuración Modify software (Modificar software)

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. Estas aparecen en la sección Platform options (Opciones de plataforma) de la página Modify software (Modificar software) 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 la configuración específica de la plataforma en la consola de Elastic Beanstalk

  1. Abra la consola de Elastic Beanstalk y, en la lista 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 Software, elija Edit (Editar).

  5. En Platform options (Opciones de plataforma), realice los cambios necesarios en los valores de configuración.

  6. Seleccione Aplicar.

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 de entorno

Puede utilizar las propiedades del entorno para pasar claves secretas, puntos de conexión, ajustes de configuració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 de entorno en la consola de Elastic Beanstalk

  1. Abra la consola de Elastic Beanstalk y, en la lista 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 Software, elija Edit (Editar).

  5. En Environment properties (Propiedades de entorno), escriba pares de clave-valor.

    
        Sección Environment properties (Propiedades de entorno) de la página Modify software configuration (Modificar configuración de software)
  6. Seleccione Aplicar.

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 las comillas simples y dobles.

  • Las claves pueden contener un máximo de 128 caracteres. Los valores pueden contener un máximo de 256 caracteres.

  • 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 se pueden definir a través del servicio Elastic Beanstalk o la plataforma que utilice y están organizadas por 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 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-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 con varios contenedores no utiliza AWS CloudFormation para crear recursos de contenedor. Como resultado, esta plataforma no admite la definición de las propiedades del entorno mediante funciones 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 a través de la consola, configuraciones guardadas, la CLI de EB o la CLI de AWS. 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.

  • Goos.Getenv

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

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

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

    NameValueCollection appConfig = ConfigurationManager.AppSettings; string endpoint = appConfig["API_ENDPOINT"];
    nota

    Elastic Beanstalk no permite pasar variables de entorno a las aplicaciones de .NET Core ni a las implementaciones de IIS de varias aplicaciones que usen un manifiesto de implementación.

  • Node.jsprocess.env

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

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

    import os endpoint = os.environ['API_ENDPOINT']
  • RubyENV

    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.