Cree el paquete de código fuente de la aplicación. - AWS Elastic Beanstalk

Cree el paquete de código fuente de la aplicación.

Cuando utilice la consola de AWS Elastic Beanstalk para implementar una nueva aplicación o una versión de la aplicación, necesitará cargar un paquete de código fuente. El paquete de código fuente debe cumplir los siguientes requisitos:

  • Debe constar de un único archivo ZIP o WAR (puede incluir varios archivos WAR dentro del archivo ZIP).

  • No puede superar los 512 MB.

  • No puede incluir una carpeta principal o un directorio de nivel superior (sí puede incluir subdirectorios).

Si desea implementar una aplicación de trabajo que procese tareas periódicas en segundo plano, el paquete de código fuente de la aplicación también debe incluir un archivo cron.yaml. Para obtener más información, consulte Tareas periódicas.

Si va a implementar la aplicación con la interfaz de línea de comando de Elastic Beanstalk (CLI de EB), AWS Toolkit for Eclipse o AWS Toolkit for Visual Studio, el archivo ZIP o WAR se estructurará correctamente de manera automática. Para obtener más información, consulte Uso de la interfaz de línea de comandos de Elastic Beanstalk (CLI de EB), Creación e implementación de aplicaciones Java en Elastic Beanstalk y AWS Toolkit for Visual Studio.

Creación de un paquete de código fuente desde la línea de comandos

Cree un paquete de código fuente con el comando zip. Para incluir archivos y carpetas ocultos, utilice un patrón como el siguiente.

~/myapp$ zip ../myapp.zip -r * .[^.]* adding: app.js (deflated 63%) adding: index.js (deflated 44%) adding: manual.js (deflated 64%) adding: package.json (deflated 40%) adding: restify.js (deflated 85%) adding: .ebextensions/ (stored 0%) adding: .ebextensions/xray.config (stored 0%)

De este modo se garantiza que los archivos de configuración de Elastic Beanstalk y otros archivos y carpetas que comiencen con un punto se incluyan en el archivo.

Para aplicaciones web de Tomcat, utilice jar para crear un archivo web.

~/myapp$ jar -cvf myapp.war .

Los comandos anteriores incluyen archivos ocultos que pueden aumentar el tamaño del paquete de código fuente innecesariamente. Si desea más control, use un patrón de archivos más detallado o cree su paquete de código fuente con Git.

Creación de un paquete de código fuente con Git

Si va a utilizar Git para administrar el código fuente de la aplicación, use el comando git archive para crear el paquete de código fuente.

$ git archive -v -o myapp.zip --format=zip HEAD

git archive solo incluye los archivos que se almacenan en git y excluye los archivos ignorados y los archivos de git. Esto ayuda a mantener el tamaño más pequeño posible del paquete de código fuente. Para obtener más información, vaya a la página del manual de git-archive.

Comprimir archivos en Mac OS X Finder o en el Explorador de Windows

Cuando cree un archivo ZIP en Mac OS X Finder o el Explorador de Windows, asegúrese de comprimir los archivos y subcarpetas, y no la carpeta principal donde están incluidos.

nota

La interfaz gráfica de usuario (GUI) de Mac OS X y los sistemas operativos basados en Linux no muestran los archivos y carpetas cuyos nombres empiezan por punto (.). Utilice la línea de comando en lugar de la GUI para comprimir la aplicación si el archivo ZIP debe incluir una carpeta oculta; por ejemplo, .ebextensions. Si desea obtener información sobre los procedimientos de línea de comando para crear un archivo ZIP en Mac OS X o un sistema operativo basado en Linux, consulte Creación de un paquete de código fuente desde la línea de comandos.

ejemplo

Supongamos que tiene una carpeta de proyectos de Python llamada myapp que contiene los siguientes archivos y subcarpetas:

myapplication.py README.md static/ static/css static/css/styles.css static/img static/img/favicon.ico static/img/logo.png templates/ templates/base.html templates/index.html

Tal y como se indicó anteriormente en la lista de requisitos, el paquete de código fuente no puede comprimirse sin una carpeta principal, ya que su estructura al descomprimirse no incluye un directorio de nivel superior adicional. En este ejemplo, no debería crearse ninguna carpeta myapp al descomprimir los archivos (o, en la línea de comando, no debería agregarse ningún segmento myapp en las rutas de archivo).

La estructura de este archivo de ejemplo se va a utilizar en todo el tema para ilustrar la compresión de archivos.

Para comprimir archivos en Mac OS X Finder

  1. Abra la carpeta de proyecto de nivel superior y seleccione todos los archivos y subcarpetas que contiene. No seleccione la carpeta de nivel superior.

    
            Archivos seleccionados en Mac OS X Finder
  2. Haga clic con el botón derecho en los archivos seleccionados y seleccione Compress (Comprimir) X items (elementos), donde X es el número de archivos y subcarpetas que se han seleccionado.

    
            Comprimir archivos en Mac OS X Finder

Para comprimir archivos en el Explorador de Windows

  1. Abra la carpeta de proyecto de nivel superior y seleccione todos los archivos y subcarpetas que contiene. No seleccione la carpeta de nivel superior.

    
            Archivos seleccionados en el Explorador de Windows
  2. Haga clic con el botón derecho en los archivos seleccionados, seleccione Enviar a y haga clic en Carpeta comprimida (en zip).

    
            Comprimir archivos en el Explorador de Windows

Creación de un paquete de código fuente para una aplicación .NET

Si usa Visual Studio, puede utilizar la herramienta de implementación que se incluye en AWS Toolkit for Visual Studio para implementar la aplicación .NET en Elastic Beanstalk. Para obtener más información, consulte Implementación de aplicaciones de Elastic Beanstalk en .NET con la herramienta de implementación.

Si necesita crear manualmente un paquete de código fuente para la aplicación .NET, no basta con crear un archivo ZIP que contenga el directorio del proyecto. Debe crear un paquete de implementación web para el proyecto que sea adecuado para implementarlo en Elastic Beanstalk. Existen varios métodos que puede utilizar para crear un paquete de implementación:

  • Puede crear el paquete de implementación utilizando el asistente de Publicación web de Visual Studio. Para obtener más información, consulte Cómo: Crear un paquete de implementación web en Visual Studio.

    importante

    Al crear el paquete de implementación web, debe iniciar el nombre del sitio con Default Web Site.

  • Se tiene un proyecto .NET, puede crear el paquete de implementación utilizando el comando msbuild, tal y como se muestra en el siguiente ejemplo.

    importante

    El parámetro DeployIisAppPath debe empezar por Default Web Site.

    C:/> msbuild <web_app>.csproj /t:Package /p:DeployIisAppPath="Default Web Site"
  • Si tiene un proyecto de sitio web, puede utilizar la herramienta IIS Web Deploy para crear el paquete de implementación. Para obtener más información, consulte Packaging and Restoring a Web site.

    importante

    El parámetro apphostconfig debe empezar por Default Web Site.

Si va a implementar varias aplicaciones o una aplicación de ASP.NET Core, incluya la carpeta .ebextensions en la raíz del paquete de código fuente, junto con los paquetes y el archivo de manifiesto de la aplicación:

~/workspace/source-bundle/ |-- .ebextensions | |-- environmentvariables.config | `-- healthcheckurl.config |-- AspNetCore101HelloWorld.zip |-- AspNetCoreHelloWorld.zip |-- aws-windows-deployment-manifest.json `-- VS2015AspNetWebApiApp.zip

Comprobación del paquete de código fuente

Tal vez desee probar localmente el paquete de código fuente antes de cargarlo en Elastic Beanstalk. Como Elastic Beanstalk utiliza la línea de comando básicamente para extraer los archivos, es mejor que haga las pruebas desde la línea de comando que con una herramienta de GUI.

Para probar la extracción de archivos en Mac OS X o Linux

  1. Abra una ventana del terminal (Mac OS X) o conéctese al servidor de Linux. Vaya al directorio que contiene el paquete de código fuente.

  2. Utilice el comando unzip o tar xf para descomprimir el archivo.

  3. Asegúrese de que los archivos descomprimidos están en la misma carpeta que el propio archivo y no en una nueva carpeta o directorio de nivel superior.

    nota

    Si utiliza Mac OS X Finder para descomprimir el archivo, se creará una nueva carpeta de nivel superior sin importar cómo esté estructurado el propio archivo. Para obtener mejores resultados, utilice la línea de comandos.

Para probar la extracción de archivos en Windows

  1. Descargue o instale un programa que permita extraer archivos comprimidos a través de la línea de comandos. Por ejemplo, puede descargar el programa gratuito unzip.exe de http://stahlforce.com/dev/index.php?tool=zipunzip.

  2. Si es necesario, copie el archivo ejecutable en el directorio que contiene el paquete de código fuente. Si ha instalado una herramienta para todo el sistema, puede omitir este paso.

  3. Descomprima el archivo utilizando el comando apropiado. Si ha descargado unzip.exe con el enlace del paso 1, el comando será unzip <archive-name>.

  4. Asegúrese de que los archivos descomprimidos están en la misma carpeta que el propio archivo y no en una nueva carpeta o directorio de nivel superior.