Personalización avanzada de entornos con archivos de configuración (.ebextensions) - AWS Elastic Beanstalk

Personalización avanzada de entornos con archivos de configuración (.ebextensions)

Puede agregar archivos de configuración de AWS Elastic Beanstalk (.ebextensions) al código fuente de la aplicación web para configurar el entorno y personalizar los recursos de AWS que contiene. Los archivos de configuración son documentos con formato YAML o JSON y con una extensión de archivo .config que se sitúan en una carpeta llamada .ebextensions y se implementan en el paquete de código fuente de la aplicación.

ejemplo .ebextensions/network-load-balancer.config

En este ejemplo se realiza un simple cambio de configuración. Modifica una opción de configuración para establecer el tipo de balanceador de carga del entorno en Balanceador de carga de red.

option_settings: aws:elasticbeanstalk:environment: LoadBalancerType: network

Recomendamos utilizar YAML para los archivos de configuración, ya que es más fácil de leer que JSON. YAML admite comentarios, comandos multilínea, varias alternativas de uso de comillas, etc. Sin embargo, puede realizar cualquier cambio de configuración en los archivos de configuración de Elastic Beanstalk exactamente igual usando YAML o JSON.

Sugerencia

Cuando esté desarrollando o probando nuevos archivos de configuración, lance un entorno limpio que ejecute la aplicación predeterminada e impleméntelos en este entorno. Si los archivos de configuración no tienen un formato correcto, se producirán error irrecuperables al lanzar un nuevo entorno.

En la sección option_settings de un archivo de configuración, se definen los valores de las opciones de configuración. Las opciones de configuración le permiten configurar el entorno de Elastic Beanstalk, los recursos de AWS que contiene el entorno y el software que ejecuta la aplicación. Los archivos de configuración son solo uno de los diferentes mecanismos para definir las opciones de configuración.

La sección Resources le permite personalizar aún más los recursos del entorno de la aplicación y definir otros recursos de AWS para obtener otra funcionalidad que la que proporcionan las opciones de configuración. Puede agregar y configurar los recursos admitidos por AWS CloudFormation, que Elastic Beanstalk utiliza para crear entornos.

El resto de las secciones de un archivo de configuración (packages, sources, files, users, groups, commands, container_commands y services) le permiten configurar las instancias EC2 que se lanzan en el entorno. Cuando se lanza un servidor en el entorno, Elastic Beanstalk ejecuta las operaciones definidas en estas secciones para preparar el sistema operativo y el sistema de almacenamiento de la aplicación.

Para ver ejemplos de .ebextensions utilizados, consulte el Elastic Beanstalk Configuration Files Repository.

Requisitos

  • Ubicación: coloque todos sus archivos de configuración en una sola carpeta, denominada .ebextensions, en la raíz de su paquete de código fuente. Los exploradores de archivos pueden ocultar las carpetas que comienzan con un punto, así que asegúrese de agregar la carpeta al crear el paquete de código fuente. Consulte Cree el paquete de código fuente de la aplicación. para obtener instrucciones.

  • Denominación: los archivos de configuración deben tener la extensión de archivo .config.

  • Formato: Los archivos de configuración deben cumplir las especificaciones de formato de YAML o JSON.

    Si utiliza YAML, use siempre espacios para aplicar sangría a las claves en los diferentes niveles de anidación. Para obtener más información acerca de YAML, consulte YAML Ain't Markup Language (YAML™) (versión 1.1).

  • Unicidad: Use cada clave una sola vez en cada archivo de configuración.

    Advertencia

    Si utiliza una clave (por ejemplo, option_settings) dos veces en el mismo archivo de configuración, se descartará una de las secciones. Combine secciones duplicadas en una sola sección o colóquelas en archivos de configuración distintos.

El proceso de implementación varía ligeramente en función del cliente que se utilice para administrar los entornos. Consulte las secciones siguientes para obtener más detalles: