Categorías
Python

Una página de ventas efectiva con Bootstrap 3

 

Tabla de Contenidos

  • Elastic Beanstalk vs EC2
  • Primeros pasos
  • CLI para AWS Elastic Beanstalk
  • Configurar EB – inicializar su AppWhat nos llevamos a cabo?
  • ¿Qué hemos de lograr?
  • Configurar EB – Crear una EnvironmentWhat pasa ahora?
  • ¿Qué pasa ahora?
  • Personalización de la implementación de ProcessInstalling packagesConfiguring nuestra Python ambiente
  • Instalación de paquetes
  • Configuración nuestra Python ambiente
  • Configuración de una base de datos DatabaseDatabase setupHandling migrationsCreate el Usuario administrador de configuración de base de datos
  • migraciones de bases de datos Manejo
  • Crear el usuario Admin
  • archivos estáticos
  • Usando S3 para almacenamiento de medios
  • Apache Config
  • Solución de problemas
  • Conclusión
  • ¿Qué hemos de lograr?
  • ¿Qué pasa ahora?
  • la instalación de paquetes ambiente
  • Configuración nuestra Python configuración de base de datos
  • migraciones de bases de datos Manejo
  • Crear el usuario Admin

La siguiente es una sopa de tutorial tuercas de cómo configurar y desplegar una Django aplicación a Amazon web Services (AWS) todo sin dejar de ser cuerdo.

Herramientas / tecnologías utilizadas:

Ahora con Python 3! Confirmar la versión actualizada de este artículo aquí.

Este artículo ha sido actualizado a la tapa de despliegue con Python 3 porque AWS ahora tiene toneladas de amor a Python 3.

Elastic Beanstalk vs EC2

Elastic Beanstalk es una plataforma como servicio (PaaS) que simplifica la instalación, despliegue, y el mantenimiento de su aplicación en Amazon AWS. Es un servicio gestionado, que acopla el servidor (EC2), base de datos (RDS), y sus archivos estáticos (S3). Puede desplegar rápidamente y gestionar su aplicación, lo que reduce o amplía automáticamente a tu sitio. Echa un vistazo a la documentación oficial para más información.

Introducción

Vamos a utilizar un simple “Imagen del día” de la aplicación, que se puede agarrar de este repositorio:

$ git clone https://github.com/realpython/image-of-the-day.git
$ cd image-of-the-day/
$ git checkout tags/start_here

Después de descargar el código, crear un virtualenv e instalar los requisitos a través de pepita :

$ pip install -r requirements.txt

a continuación, con PostgreSQL que se ejecutan localmente, configurar una nueva base de datos llamada iotd. También, dependiendo de su configuración local Postgres, es posible que tenga que actualizar la configuración de las bases de datos settings.py .

Por ejemplo, he actualizado la configuración para:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'iotd',
'USER': '',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '5432',
}
}

Ahora puede configurar el esquema de base de datos, crear un superusuario y ejecutar la aplicación:

$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py runserver

Vaya a la página de administración en su navegador en http: // localhost: 8000 / admin y añadir una nueva imagen, que luego se mostrará en la página principal.

La aplicación no está destinado a ser muy emocionante; sólo estamos utilizando para fines de demostración. Todo lo que hace es dejar que subir una imagen a través de la interfaz de administración y mostrar que la imagen a pantalla completa en la página principal. Dicho esto, aunque esta es una aplicación relativamente básico, todavía se nos permite explorar una serie de “trampas” que existen cuando se despliega a Amazon RDS y habichuelas mágicas.

Ahora que tenemos el sitio en funcionamiento en nuestra máquina local, vamos a empezar el proceso de implementación del Amazonas.

CLI para AWS Elastic Beanstalk

trabajo

A con un Amazon Elastic Beanstalk, podemos utilizar un paquete llamado awsebcli. Al escribir estas líneas la última versión de es 3.0.10 y la forma recomendada de instalar es con pip:

$ pip install awsebcli

no utilice cerveza para instalar este paquete. Al escribir estas líneas, se instala V2.6.3 que se rompen de manera sutil que conduzcan a la frustración grave.

Ahora prueba de la instalación para asegurarse de que está funcionando:

$ eb --version

Esto debe darle un número de versión 3.x agradable: (¡sorpresa!)

EB CLI 3.0.10 (Python 2.7.8)

para realmente comenzar a utilizar Elastic Beanstalk Usted necesitará una cuenta con AWS. Registrarse (o conectarse).

Configurar EB – inicializar su aplicación

Con el trabajo de AWS Elastic Beanstalk CLI, lo primero que queremos hacer es crear un entorno que Beanstalk anfitrión de la aplicación en. Ejecutar este desde el directorio del proyecto ( “imagen-de-la-día”):

$ eb init

Esto le pedirá una serie de preguntas para ayudarle a configurar su entorno.

región por defecto

La elección de la región más cercana a sus usuarios finales suelen proporcionar el mejor rendimiento. Echa un vistazo a este mapa si no está seguro cuál elegir. Credenciales

A continuación, se va a pedir sus credenciales de AWS.

Aquí, lo más probable es que desee crear un usuario de IAM. Consulte esta guía para saber cómo configurar una. Si configura un nuevo usuario tendrá que asegurarse de que el usuario tiene los permisos adecuados. La forma más sencilla de hacer esto es simplemente añadir “Administrador de acceso” al usuario. (Esto probablemente no es una gran opción por razones de seguridad, sin embargo.) Para las políticas específicas / papeles que necesita un usuario con el fin de crear / administrar una aplicación Elastic Beanstalk, consulte el enlace aquí. Nombre

Aplicación

Esto será por defecto el nombre del directorio. Sólo tiene que ir con eso. Versión

Python

A continuación, el CLI debe detectar automagicamente que está utilizando Python y acaba de pedir confirmación. Decir que sí. Luego hay que seleccionar una versión de la plataforma. Seleccionar Python 2.7. Sí

SSH

decir a configurar SSH para las instancias.

RSA par de claves

Después, usted necesita para generar un par de claves RSA, que se añadirá a la carpeta ~ / .ssh . Este par de claves también será subido a la clave pública EC2 para la región que ha especificado en el paso uno. Esto le permitirá a SSH en su instancia EC2 adelante en este tutorial.

¿Qué hemos de lograr?

Una vez finalizada eb init, verá una nueva carpeta oculta llamada .elasticbeanstalk en el directorio del proyecto:

├── .elasticbeanstalk
│ └── config.yml
├── .gitignore
├── README.md
├── iotd
│ ├── images
│ │ ├── __init__.py
│ │ ├── admin.py
│ │ ├── migrations
│ │ │ ├── 0001_initial.py
│ │ │ └── __init__.py
│ │ ├── models.py
│ │ ├── tests.py
│ │ └── views.py
│ ├── iotd
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── manage.py
│ ├── static
│ │ ├── css
│ │ │ └── bootstrap.min.css
│ │ └── js
│ │ ├── bootstrap.min.js
│ │ └── jquery-1.11.0.min.js
│ └── templates
│ ├── base.html
│ └── images
│ └── home.html
├── requirements.txt
└── www
└── media
└── sitelogo.png

Dentro de ese directorio es un archivo config.yml, que es un archivo de configuración que se utiliza para definir ciertos parámetros para su aplicación Beanstalk de nuevo cuño.

En este punto, si escribe la consola eb se abrirá el navegador predeterminado y vaya a la consola de Elastic Beanstalk. En la página, debería ver una aplicación (llamada imagen-de-la-día si estás siguiendo exactamente), pero no hay entornos. aplicación

Una representa la aplicación de código y es lo eb init creado para nosotros. Con Elastic Beanstalk, una aplicación puede tener múltiples entornos (es decir, desarrollo, prueba, puesta en escena, producción). Es totalmente hasta usted cómo desea configurar / administrar estos entornos. Para aplicaciones sencillas Django me gusta tener el entorno de desarrollo en mi portátil, a continuación, crear una prueba y un entorno de producción de habichuelas mágicas.

Vamos a conseguir un entorno de prueba configurado …

Configurar EB – Crear una Volviendo Medio Ambiente

al terminal, en su proyecto tipo de directorio:

$ eb create

Al igual eb init, este comando le pedirá una serie de preguntas .

Medio Ambiente Nombre

Debe utilizar una convención de nomenclatura similar a lo que Amazon sugiere – por ejemplo, application_name-env_name – especialmente cuando / si comienza a alojar múltiples aplicaciones con AWS. Solía ​​- IOD-prueba.

DNS CNAME prefijo

Al implementar una aplicación para Elastic Beanstalk obtendrá automáticamente un nombre de dominio como xxx.elasticbeanstalk.com. DNS CNAME prefijo es lo que quiere ser utilizado en lugar de xxx. Sólo tiene que ir con el valor predeterminado.

¿Qué pasa ahora?

En este punto eb genera realmente su entorno para usted. Ser paciente ya que esto puede llevar algún tiempo.

Si obtiene un error al crear el medio ambiente, al igual que – cheque aws.auth.client.error.ARCInstanceIdentityProfileNotFoundException- que las credenciales que está utilizando tienen permisos apropiados para crear el entorno de habichuelas mágicas, como se explicó anteriormente en este post.

Inmediatamente después de crear el medio ambiente, eb intentará desplegar su aplicación, copiando todo el código en el directorio del proyecto a la nueva instancia EC2, corriendo pip instalar requirements.txt -r en el proceso.

Debería ver un montón de información sobre el medio ambiente se estableció que aparece en su pantalla, así como información sobre eb tratando de implementar. También verá algunos errores. En particular, debería ver estas líneas enterradas en algún lugar de la salida:

ERROR: Your requirements.txt is invalid. Snapshot your logs for details.

no se preocupe – En realidad no es válido. Compruebe los registros de detalles:

$ eb logs

Esto agarrar todos los últimos archivos de registro de la instancia EC2 y almacenarlas en su terminal. Es una gran cantidad de información por lo que puede redirigir la salida a un archivo (EB registros -z). Mirando a través de los registros, verá un archivo de registro denominado eb-activity.log :

Error: pg_config executable not found.

El problema es que tratamos de instalar psycopy2 (Postgres los enlaces Python), pero necesitamos los controladores de cliente de Postgres que se instalarán también. Puesto que no se instalan por defecto hay que instalarlos en primer lugar. Vamos a arreglar eso …

personalizar el proceso de implementación de

eb leerá archivos personalizados .config desde una carpeta llamada “.ebextensions” en el nivel raíz de su proyecto (directorio “imagen-de-la-día”). Estos archivos .config le permiten instalar paquetes, ejecutar comandos arbitrarios y / o variables de entorno establecidas. Los archivos en el directorio “.ebextensions” deben ajustarse a cualquiera de sintaxis JSON o YAML y se ejecutan en orden alfabético.

paquetes Instalación

Lo primero que tenemos que hacer es instalar algunos paquetes para que nuestra pip mandato de instalación se completa con éxito. Para ello, primero vamos a crear un archivo llamado .ebextensions / 01_packages.config : casos

packages:
yum:
git: []
postgresql93-devel: []

EC2 de Amazon ejecutan Linux, que es un sabor RedHat, así que podemos usar yum para instalar los paquetes que necesitamos. Por ahora, sólo se va a instalar dos paquetes – GIT y el cliente Postgres.

Después de crear el archivo a implementar la aplicación, tenemos que hacer lo siguiente:

$ git add .ebextensions/
$ git commit -m "added eb package configuration"

Tenemos para confirmar los cambios porque el comando de despliegue eb de desplegar funciona con la última cometen, y por lo tanto sólo ser conscientes de nuestros cambios en los archivos después de que los comprometen a Git. (Ten en cuenta sin embargo que no tenemos que empujar; estamos trabajando desde nuestra copia local …)

Como habrá adivinado, el siguiente comando es:

$ eb deploy

Ahora debería ver sólo un error: el hallazgo de

INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
ERROR: Your WSGIPath refers to a file that does not exist.
INFO: New application version was deployed to running EC2 instances.
INFO: Environment update completed successfully.

Let lo que está sucediendo … casos

Configuración nuestro entorno Python

EC2 en Beanstalk ejecutar Apache y Apache encontrará nuestra aplicación Python según la WSGIPATH que nos hemos fijado. Por defecto eb asume nuestro archivo wsgi se llama application.py . Hay dos formas de corregir esto: Opción

1: Uso de configuración del entorno específico de la configuración

$ eb config

Este comando se abrirá el editor predeterminado, editar un archivo de configuración llamado .elasticbeanstalk / IOD-test.env.yml . Este archivo no existe en realidad a nivel local; eb tiró de él hacia abajo desde los servidores de AWS y lo presentó a usted para que usted puede cambiar la configuración en el mismo. Si realiza algún cambio en esta pseudo-archivo y luego guardar y salir, eb actualizará los ajustes correspondientes en el entorno de Beanstalk.

Si la búsqueda de los términos ‘WSGI’ en el archivo, y usted debe encontrar una sección de configuración que se ve así:

aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: application.py

Actualizar la WSGIPath:

aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: iotd/iotd/wsgi.py

y luego tendrá que WSGIPath configura correctamente. Si a continuación, guarda el archivo y salga, eb actualizará automáticamente la configuración del entorno:

Printing Status:
INFO: Environment update is starting.
INFO: Updating environment iod-test's configuration settings.
INFO: Successfully deployed new configuration to environment.
INFO: Environment update completed successfully.

La ventaja de utilizar el método de configuración eb para cambiar la configuración es que se pueden especificar diferentes configuraciones por medio ambiente. Pero también se puede actualizar la configuración utilizando los mismos archivos .config que estábamos usando antes. Esto utilizará la misma configuración para cada entorno, como los archivos .config se aplicarán en el despliegue (después de aplicar los ajustes de configuración eb). Opción

2: Uso de los ajustes de configuración global

Para utilizar la opción de archivo .config, vamos a crear un nuevo archivo llamado /.ebextensions/02_python.config : de

option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "iotd.settings"
"PYTHONPATH": "/opt/python/current/app/iotd:$PYTHONPATH"
"aws:elasticbeanstalk:container:python":
WSGIPath: iotd/iotd/wsgi.py
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "www/static/"

Lo que ocurra?

  • DJANGO_SETTINGS_MODULE: «iotd.settings» – añade la ruta de acceso al módulo de configuración.
  • «PYTHONPATH»: «/ opt / Python / corriente / app / iotd: $ PYTHONPATH» – actualiza nuestra PYTHONPATH lo que Python se puede encontrar en los módulos de nuestra aplicación. (Tenga en cuenta que el uso de la ruta completa es necesario.)
  • WSGIPath: iotd / iotd / wsgi.py establece nuestro Camino WSGI. NumProcesses
  • : 3 y 20: NumThreads – actualiza el número de procesos e hilos utilizados para ejecutar nuestra aplicación WSGI.
  • «/ static /»: «www / estática /» establece nuestro camino archivos estáticos.

Una vez más, podemos hacer un git commit a continuación, un despliegue eb para actualizar estos valores.

A continuación vamos a añadir una base de datos.

Configuración de una base

intenta ver la página web desplegado:

$ eb open

Este comando mostrará la aplicación desplegada en el navegador predeterminado. Debería ver un error de conexión rechazada:

OperationalError at /
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?

Esto se debe a que no hemos creado una base de datos todavía. En este punto eb será configurar el entorno de habichuelas mágicas, pero no configurar RDS (el nivel de base de datos). Tenemos que poner esto en marcha manualmente. Base de datos de configuración

Una vez más, el uso eb consola para abrir la página de configuración Beanstalk.

A partir de ahí, haga lo siguiente:

Beanstalk creará la RDS para usted. Ahora tenemos que conseguir nuestra aplicación Django para conectarse a la RDS. Beanstalk nos ayudará a cabo aquí mediante la exposición de una serie de variables de entorno en las instancias de EC2 para nosotros que detallan cómo conectarse al servidor de Postgres. Así que todo lo que tenemos que hacer es actualizar el archivo nuestra settings.py para aprovecharse de esas variables de entorno. Confirmar que el parámetro de configuración BASES DE DATOS refleja el siguiente en settings.py :

if 'RDS_DB_NAME' in os.environ:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ['RDS_DB_NAME'],
'USER': os.environ['RDS_USERNAME'],
'PASSWORD': os.environ['RDS_PASSWORD'],
'HOST': os.environ['RDS_HOSTNAME'],
'PORT': os.environ['RDS_PORT'],
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'iotd',
'USER': 'iotd',
'PASSWORD': 'iotd',
'HOST': 'localhost',
'PORT': '5432',
}
}

Esto simplemente dice, “Use los ajustes de variables de entorno si está presente, de lo contrario usar nuestros entornos de desarrollo por defecto”. Sencillo.

migraciones de bases de datos Manejo

Con nuestra puesta a la base de datos, que todavía tienen que asegurarse de que las migraciones son corridos por lo que la estructura de la tabla de base de datos es correcta. Podemos hacer que modificando .ebextensions / 02_python.config y añadiendo las siguientes líneas en la parte superior del archivo: container_commands

container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python iotd/manage.py migrate --noinput"
leader_only: true

le permiten ejecutar comandos de su elección después de la aplicación se ha desplegado en la instancia EC2. Debido a que la instancia de EC2 se configura a través de un entorno virtual, hay que activar primero que entorno virtual antes de ejecutar nuestro comando migrate. También los leader_only: true medios de ajuste, “Sólo ejecuta este comando en un primer momento a la hora de desplegar múltiples instancias”.

no se olvide de que nuestras marcas de aplicaciones utilizan de administración de Django, por lo que vamos a necesitar un superusuario …

crear el usuario de administración

Desafortunadamente createsuperuser no permite especificar una contraseña cuando se utiliza la opción –noinput , por lo que tendremos que escribir nuestro propio comando. Afortunadamente, Django hace que sea muy fácil crear comandos personalizados.

Crear el archivo iotd / images / gestión / comandos / createsu.py :

from django.core.management.base import BaseCommand
from django.contrib.auth.models import User

class Command(BaseCommand):

def handle(self, *args, **options):
if not User.objects.filter(username="admin").exists():
User.objects.create_superuser("admin", "admin@admin.com", "admin")

Asegúrese de agregar los archivos apropiados __init__.py así:

└─ management
├── __init__.py
└── commands
├── __init__.py
└── createsu.py

Este archivo le permitirá ejecutar python manage.py createsu , y se creará un superusuario sin solicitar una contraseña. No dude en ampliar el mandato de las variables de entorno utilización u otro medio para permitir que cambie la contraseña.

Una vez que haya creado el comando, sólo se puede añadir otro comando a nuestra sección container_commands en .ebextensions / 02_python.config :

02_createsu:
command: "source /opt/python/run/venv/bin/activate && python iotd/manage.py createsu"
leader_only: true

Antes de probar esto, vamos a asegurarnos de nuestros archivos estáticos son puesto en la correcta lugar …

archivos estáticos

Añadir un comando más bajo container_commands:

03_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python iotd/manage.py collectstatic --noinput"

lo que toda la apariencia de archivo como este:

container_commands:
01_migrate:
command: "source /opt/python/run/venv/bin/activate && python iotd/manage.py migrate --noinput"
leader_only: true
02_createsu:
command: "source /opt/python/run/venv/bin/activate && python iotd/manage.py createsu"
leader_only: true
03_collectstatic:
command: "source /opt/python/run/venv/bin/activate && python iotd/manage.py collectstatic --noinput"

option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: "iotd.settings"
"PYTHONPATH": "/opt/python/current/app/iotd:$PYTHONPATH"
"ALLOWED_HOSTS": ".elasticbeanstalk.com"
"aws:elasticbeanstalk:container:python":
WSGIPath: iotd/iotd/wsgi.py
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "www/static/"

ahora tenemos que garantizar que el STATIC_ROOT está configurado correctamente en el archivo de la settings.py:

STATIC_ROOT = os.path.join(BASE_DIR, "..", "www", "static")
STATIC_URL = '/static/'

Asegúrese de que confirme el directorio www a git por lo que el dir estática puede ser creado. A continuación, ejecute eb desplegar de nuevo, y ahora debería estar en el negocio:

INFO: Environment update is starting.
INFO: Deploying new version to instance(s).
INFO: New application version was deployed to running EC2 instances.
INFO: Environment update completed successfully.

En este punto, usted debe ser capaz de ir a http: // your_app_url / admin autentificado, añadir una imagen, y luego ver que aparece en la imagen la página principal de su aplicación.

éxito!

Usando S3 para almacenamiento de medios

Con esta configuración, cada vez que desplegar de nuevo, vamos a perder todas nuestras imágenes subidas. ¿Por qué? Así, cuando se ejecuta eb despliegue, un nuevo caso se hace girar para usted. Esto no es lo que queremos desde entonces tendremos entradas en la base de datos de las imágenes, pero sin imágenes asociadas. La solución es almacenar los archivos multimedia en servicio de almacenamiento Amazon simple (Amazon S3) en lugar de en la propia instancia EC2.

Tendrá que:

Puesto que hay buenos comentarios escritos sobre esto ya, yo sólo voy a señalar a mi favorito: El uso de Amazon S3 para almacenar que Django estáticas y archivos multimedia

Apache Config

Ya que estamos usando Apache con habichuelas mágicas, es probable que desea configurar Apache para (entre otras cosas) habilitar la compresión gzip lo que los archivos se descargan más rápido por los clientes. Eso se puede hacer con container_commands. Crear un nuevo archivo .ebextensions / 03_apache.config y añadir la siguiente:

container_commands:
01_setup_apache:
command: "cp .ebextensions/enable_mod_deflate.conf /etc/httpd/conf.d/enable_mod_deflate.conf"

Luego hay que crear el archivo .ebextensions / enable_mod_deflate.conf:

# mod_deflate configuration

# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xml+rss
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9
# Netscape 4.x has some problems.
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary


Hacer esto permitirá a la compresión gzip, que debe ayudar con el tamaño de los archivos que está descargando. También es posible usar la misma estrategia para cercenar de forma automática y combinar su CSS / JS y hacer cualquier otra pre-procesamiento que tiene que hacer.

Solución de problemas

no se olvide el comando ssh eb muy útil, que le permitirá acceder a la instancia EC2 para que pueda hurgar y ver lo que está pasando. Al solucionar problemas, hay algunos directorios que debe tener en cuenta:

  • / opt / pitón – raíz de la aplicación donde se va a terminar.
  • / opt / Python / / aplicación actual – La aplicación actual que está alojada en el medio ambiente.
  • / opt / Python / en cubierta / app – La aplicación se pone inicialmente en la en-cubierta y luego, después de todo el despliegue se ha completado, se trasladó a la corriente. Si usted está recibiendo fracasos en sus container_commands, echa un vistazo a la carpeta en la cubierta y no la carpeta actual.
  • / opt / Python / / env actual – Todas las variables env que eb será preparado para usted. Si usted está tratando de reproducir un error, es posible que necesite primero en la fuente / opt / Python / corriente / env para hacer las cosas configuradas como lo serían cuando eb despliegue se está ejecutando.
  • opt / Python / run / Venv – El env virtual utilizada por su aplicación; También tendrá que ejecutar source / opt / Python / run / Venv / bin / activar si está tratando de reproducir un error

Conclusión

Implementación de Elastic Beanstalk puede ser un poco intimidante al principio, pero una vez que entienda donde todas las partes son y cómo funcionan las cosas, en realidad es bastante fácil y extremadamente flexible. También le da un ambiente que se escala automáticamente a medida que crece su consumo. Esperemos que ahora tiene suficiente como para ser peligroso! Buena suerte en su despliegue Beanstalk siguiente.

nos hemos perdido algo? Para cualquier tipo de consejos o trucos? Por favor, comentar a continuación.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *