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.
Uso de la plataforma Elastic Beanstalk Python
En este tema se describe cómo configurar, crear y ejecutar las aplicaciones de Python en Elastic Beanstalk.
AWS Elastic Beanstalk admite varias ramas de plataforma para diferentes versiones del lenguaje de programación Python. Consulte Python en la AWS Elastic Beanstalk El documento de plataformas contiene una lista completa.
Las aplicaciones web de Python se pueden ejecutar detrás de un servidor proxy conWSGI. Elastic Beanstalk
Puede agregar un Procfile
a su paquete de código fuente para especificar y configurar el WSGI servidor de su aplicación. Para obtener más información, consulte Configuración del WSGI servidor con un perfil en Elastic Beanstalk.
Puede usar los archivos Pipfile
y Pipfile.lock
creados por Pipenv para especificar las dependencias del paquete de Python y otros requisitos. Para obtener más información sobre cómo especificar dependencias, consulte Especificar las dependencias mediante un archivo de requisitos en Elastic Beanstalk.
Elastic Beanstalk proporciona opciones de configuración que puede usar para personalizar el software que se ejecuta EC2 en las instancias de su entorno de Elastic Beanstalk. Puede configurar las variables de entorno que necesita la aplicación, habilitar la rotación de logs en Amazon S3 y asignar carpetas del código fuente de la aplicación que contengan archivos estáticos a rutas proporcionadas por el servidor proxy.
En la consola de Elastic Beanstalk hay opciones de configuración disponibles para modificar la configuración de un entorno en ejecución. Para evitar perder la configuración del entorno cuando lo termina, puede usar las configuraciones guardadas para guardar la configuración y aplicarla posteriormente a otro entorno.
Para guardar la configuración en el código fuente, puede incluir archivos de configuración. Los valores de configuración de los archivos de configuración se aplican cada vez que crea un entorno o que implementa la aplicación. También puede usar archivos de configuración para instalar paquetes, ejecutar scripts y llevar a cabo otras operaciones de personalización de instancias durante las implementaciones.
La configuración aplicada en la consola de Elastic Beanstalk anula la misma configuración en los archivos de configuración, si existe. Esto le permite tener la configuración predeterminada en los archivos de configuración y anularla con la configuración específica del entorno en la consola. Para obtener más información acerca de la prioridad y otros métodos para cambiar valores de configuración, consulte Opciones de configuración.
En los paquetes de Python disponibles de pip
, también puede incluir un archivo de requisitos en la raíz del código fuente de la aplicación. Elastic Beanstalk instala los paquetes de dependencias especificados en un archivo de requisitos durante la implementación. Para obtener más información, consulte Especificar las dependencias mediante un archivo de requisitos en Elastic Beanstalk.
Para obtener más información sobre las diversas formas en las que puede ampliar una plataforma Elastic Beanstalk basada en Linux, consulte Ampliación de las plataformas Linux de Elastic Beanstalk.
Configuración del entorno de Python
La configuración de la plataforma Python te permite ajustar el comportamiento de tus instancias de AmazonEC2. Puede editar la configuración de instancias de Amazon del entorno de Elastic Beanstalk mediante EC2 la consola de Elastic Beanstalk.
Utilice la consola de Elastic Beanstalk para configurar los ajustes del proceso de Python, active AWS X-Ray, habilite la rotación de registros a Amazon S3 y configure las variables que la aplicación pueda leer del entorno.
Para configurar su entorno Python en la consola de Elastic Beanstalk
Abra la consola de Elastic Beanstalk
y, en la lista 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.
nota
Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.
En el panel de navegación, elija Configuration (Configuración).
-
En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Editar.
Configuración de Python
-
Proxy server (Servidor proxy): el servidor proxy que utilizar en las instancias del entorno. De forma predeterminada, se utiliza nginx.
-
WSGIRuta: el nombre o la ruta del archivo principal de la aplicación. Por ejemplo,
application.py
odjango/wsgi.py
. -
NumProcesses— El número de procesos que se ejecutarán en cada instancia de la aplicación.
-
NumThreads— El número de subprocesos que se van a ejecutar en cada proceso.
AWS X-Ray ajustes
-
Demonio X-Ray: ejecuta el AWS X-Ray daemon para procesar los datos de rastreo del AWS X-Ray SDK para Python.
Log Options (Opciones de registro)
La sección Log Options tiene dos valores:
-
Instance profile (Perfil de instancia): especifica el perfil de instancia que tiene permiso para obtener acceso al bucket de Amazon S3 asociado con la aplicación.
-
Habilite la rotación de archivos de registro a Amazon S3: especifica si los archivos de registro de las EC2 instancias de Amazon de su aplicación se copian en el bucket de Amazon S3 asociado a su aplicación.
Archivos estáticos
Para mejorar el rendimiento, puede usar la sección Archivos estáticos para configurar el servidor proxy para que sirva archivos estáticos (por ejemplo, HTML o imágenes) de un conjunto de directorios dentro de su aplicación web. Para cada directorio, se establece la ruta virtual para la asignación de directorios. Cuando el servidor proxy recibe una solicitud de un archivo en la ruta especificada, proporciona directamente el archivo en lugar de direccionar la solicitud la aplicación.
Para obtener más información sobre la configuración de archivos estáticos mediante archivos de configuración o la consola de Elastic Beanstalk, consulte Distribución de archivos estáticos.
De forma predeterminada, el servidor proxy en un entorno de Python proporciona los archivos en una carpeta llamada static
situada en la ruta /static
. Por ejemplo, si el código fuente de la aplicación contiene un archivo llamado logo.png
en una carpeta denominada static
, el servidor proxy lo proporciona a los usuarios en
. Puede configurar mapeos adicionales como se explica en esta sección.subdomain
.elasticbeanstalk.com/static/logo.png
Propiedades del entorno
Puede utilizar las propiedades del entorno para proporcionar información a la aplicación y configurar las variables de entorno. Por ejemplo, puede crear una propiedad de entorno llamada CONNECTION_STRING
que especifique una cadena de conexión que la aplicación pueda usar para conectarse a la base de datos.
Dentro del entorno de Python que se ejecuta en Elastic Beanstalk, estos valores son accesibles a través del diccionario os.environ
de Python. Para obtener más información, visite http://docs.python.org/library/os.html
Puede utilizar un código similar al siguiente para tener acceso a las claves y los parámetros:
import os
endpoint = os.environ['API_ENDPOINT
']
Las propiedades de entorno también pueden proporcionar información a un marco de trabajo. Por ejemplo, puede crear una propiedad llamada DJANGO_SETTINGS_MODULE
para configurar Django de forma que utilice un módulo de configuración específico. En función del entorno, el valor podría ser development.settings
, production.settings
, etc.
Para obtener más información, consulte Propiedades del entorno y otras opciones del software.
Espacios de nombres de configuración de Python
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.
La plataforma Python define opciones en los espacios de nombres aws:elasticbeanstalk:environment:proxy
, aws:elasticbeanstalk:environment:proxy:staticfiles
y aws:elasticbeanstalk:container:python
.
El siguiente archivo de configuración de ejemplo especifica los valores de las opciones de configuración para crear una propiedad de entorno denominada DJANGO_SETTINGS_MODULE
, elija el servidor proxy Apache, especifique dos opciones de archivos estáticos que asignan un directorio denominado statichtml
a la ruta /html
y un directorio denominado staticimages
a la ruta /images
, así como opciones de configuración adicionales del espacio de nombres aws:elasticbeanstalk:container:python
. Este espacio de nombres contiene opciones que permiten especificar la ubicación del WSGI script en el código fuente y el número de subprocesos y procesos en los que se ejecutarán. WSGI
option_settings: aws:elasticbeanstalk:application:environment: DJANGO_SETTINGS_MODULE: production.settings aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /html: statichtml /images: staticimages aws:elasticbeanstalk:container:python: WSGIPath: ebdjango.wsgi:application NumProcesses: 3 NumThreads: 20
Notas
-
Si utiliza una versión de la plataforma AMI Python de Amazon Linux (anterior a Amazon Linux 2), sustituya el valor por
WSGIPath
ebdjango/wsgi.py
. El valor del ejemplo funciona con el WSGI servidor Gunicorn, que no es compatible con las versiones de la AMI plataforma Amazon Linux. -
Además, estas versiones antiguas de la plataforma utilizan un espacio de nombres diferente para configurar archivos estáticos:
aws:elasticbeanstalk:container:python:staticfiles
. Tiene los mismos nombres de opción y semántica que el espacio de nombres de archivo estático estándar.
Los archivos de configuración también admiten varias claves para modificar aún más el software en las instancias del entorno. En este ejemplo, se utiliza la clave packages para instalar Memcached con yum
y container commands para ejecutar comandos que configuren el servidor durante la implementación:
packages: yum: libmemcached-devel: '0.31' container_commands: collectstatic: command: "django-admin.py collectstatic --noinput" 01syncdb: command: "django-admin.py syncdb --noinput" leader_only: true 02migrate: command: "django-admin.py migrate" leader_only: true 03wsgipass: command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf' 99customize: command: "scripts/customize.sh"
Elastic Beanstalk cuenta con numerosas opciones de configuración para personalizar el entorno. Además de los archivos de configuración, también puede configurar las opciones de configuración mediante la consola, las configuraciones guardadas, el EB CLI o el AWS CLI. Consulte Opciones de configuración para obtener más información.