Personalización avanzada de entornos con archivos de configuración (.ebextensions
)
Puede añadir 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 el 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.
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 cualquier recurso compatible con AWS CloudFormation, que Elastic Beanstalk utilice 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 obtener ejemplos de .ebextensions de uso común, consulte el Repositorio de archivos de configuración de Elastic Beanstalk
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. Para obtener instrucciones, consulte Cree el paquete de código fuente de la aplicación.. -
Naming (Denominación): los archivos de configuración deben tener la extensión de archivo
.config
. -
Formatting (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)
. -
Uniqueness (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:
Temas