

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.

# Administración de aplicaciones de Elastic Beanstalk
<a name="applications"></a>

En este capítulo se describe cómo administrar y configurar aplicaciones de Elastic Beanstalk. El primer paso para usarlo AWS Elastic Beanstalk es crear una aplicación, que represente su aplicación web en AWS. En Elastic Beanstalk, una aplicación actúa como si fuera un contenedor para el entorno que ejecuta la aplicación web, así como las versiones del código fuente, las configuraciones guardadas, los registros y otros artefactos de la aplicación web que se crean con Elastic Beanstalk.

**Cómo crear una aplicación de**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications** (Aplicaciones), y, a continuación, seleccione **Create a new application** (Creación de una aplicación).

1. Utilice el formulario en pantalla para proporcionar un nombre de aplicación.

1. (Opcional) Proporcione una descripción y añada las claves y los valores de las etiquetas.

1. Seleccione **Creación de**.

Después de crear la aplicación, la consola le pedirá que cree un entorno para ella. Para obtener información detallada sobre todas las opciones disponibles, consulte [Creación de un entorno de Elastic Beanstalk](using-features.environments.md).

Si ya no necesita una aplicación, puede eliminarla.

**aviso**  
Cuando se elimina una aplicación, se terminan todos los entornos asociados, así como todas las versiones y las configuraciones guardadas que pertenecen a la aplicación.

**Para eliminar una aplicación de**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)**, y, a continuación, seleccione la aplicación en la lista.

1. Elija **Acciones** y, a continuación, elija **Eliminar aplicación**.

**Topics**
+ [Consola de administración de aplicaciones Elastic Beanstalk](applications-console.md)
+ [Administración de versiones de la aplicación](applications-versions.md)
+ [Creación de una agrupación de orígenes de aplicación en Elastic Beanstalk.](applications-sourcebundle.md)
+ [Uso de la CLI de EB con AWS CodeBuild](eb-cli-codebuild.md)
+ [Etiquetado de aplicaciones](applications-tagging.md)
+ [Etiquetar recursos de la aplicación Elastic Beanstalk](applications-tagging-resources.md)

# Consola de administración de aplicaciones Elastic Beanstalk
<a name="applications-console"></a>

En este tema se explica cómo puede usar la AWS Elastic Beanstalk consola para administrar aplicaciones, versiones de aplicaciones y configuraciones guardadas.

**Para obtener acceso a la consola de administración de aplicaciones**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)** y, a continuación, elija el nombre de la aplicación de la lista.

   La página de descripción general de la aplicación muestra una lista con una descripción general de todos los entornos asociados a la aplicación.

1. Tienes varias maneras de continuar:

   1. En el menú desplegable **Acciones**, puede elegir una de las siguientes acciones de administración de aplicaciones: **Creación de entorno**, **Eliminar aplicación**, **Ver versiones de aplicaciones**, **Ver configuraciones guardadas** y **Restaurar entorno terminado**.

      Para iniciar un entorno en esta aplicación, puede elegir directamente **Creación de entorno**. Para obtener más información, consulte [Creación de un entorno de Elastic Beanstalk](using-features.environments.md).

   1. La página muestra el nombre del entorno junto a las aplicaciones que se implementan en un entorno. Elija un nombre de entorno para ir a la [consola de administración del entorno](environments-console.md) de dicho entorno, en la que puede desea configurar, supervisar o administrar el entorno.

   1. Al seleccionar una aplicación de la lista, el panel de navegación izquierdo muestra la aplicación.
      +  Seleccione **Application versions (Versiones de la aplicación)** siguiendo el nombre de la aplicación en el panel de navegación para ver y administrar las versiones de la aplicación. 

        Una versión de aplicación es una versión cargada del código de aplicación. Puede cargar nuevas versiones, implementar una versión existente en cualquiera de los entornos de la aplicación o eliminar versiones antiguas. Para obtener más información, consulte [Administración de versiones de la aplicación](applications-versions.md). 
      +  Seleccione **Saved configurations (Configuraciones guardadas)** siguiendo el nombre de la aplicación en el panel de navegación para ver y administrar las configuraciones guardadas en entornos en ejecución. 

        Una configuración guardada es una colección de ajustes que se puede utilizar para restaurar la configuración de un entorno a un estado anterior o crear un entorno con la misma configuración. Para obtener más información, consulte [Uso de configuraciones guardadas de Elastic Beanstalk](environment-configuration-savedconfig.md). 

# Administración de versiones de la aplicación
<a name="applications-versions"></a>

En este tema se explican las versiones de la aplicación y cómo crearlas o administrarlas.

Elastic Beanstalk crea una versión de la aplicación cada vez que se carga el código fuente. Esto suele ocurrir cuando se crea un entorno o se carga e implementa código utilizando la [consola de administración del entorno](environments-console.md) o la [CLI de EB](eb-cli3.md). Elastic Beanstalk elimina estas versiones de la aplicación según la política del ciclo de vida de la aplicación y cuándo elimine la aplicación. Para obtener información acerca de la política de ciclo de vida de la aplicación, consulte [Configuración del ciclo de vida de la versión de la aplicación](applications-lifecycle.md).

Para cargar un paquete fuente sin implementarlo puede hacerlo en la[consola de administración de aplicaciones](applications-console.md) o con el comando de la CLI de EB**[**eb appversion**](eb3-appversion.md)**. Elastic Beanstalk almacena paquetes de origen en Amazon Simple Storage Service (Amazon S3) y no los elimina automáticamente.

Puede aplicar etiquetas a una versión de la aplicación cuando la cree y editar etiquetas de las versiones de la aplicación existentes. Para obtener más información, consulte [Etiquetado de versiones de la aplicación](applications-versions-tagging.md).

## Creación de versiones de la aplicación
<a name="applications-versions.creating"></a>

También puede crear una nueva versión de la aplicación mediante la CLI de EB. Para obtener más información, consulte[**eb appversion**](eb3-appversion.md) en el capítulo*Comandos de la CLI de EB*.

**nota**  
Con el paso del tiempo, la aplicación puede acumular muchas versiones de la aplicación. Para ahorrar espacio de almacenamiento y evitar que se alcance la [cuota de versiones de la aplicación](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elastic_beanstalk), es recomendable eliminar las versiones de la aplicación que ya no necesite. 

El archivo especificado en el procedimiento siguiente está vinculado con la aplicación. Puede implementar la versión de la aplicación en un entorno nuevo o existente.

**Para crear una nueva versión de la aplicación**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)** y, a continuación, elija el nombre de la aplicación de la lista.

1. En el panel de navegación, busque el nombre de la aplicación y elija **Application versions (Versiones de la aplicación)**.

1. Seleccione **Cargar**. Utilice el formulario en pantalla para cargar el [paquete de código fuente](applications-sourcebundle.md) de la aplicación.
**nota**  
El límite de tamaño de archivo del paquete de código fuente es 500 MB.

1. Si lo desea, proporcione una breve descripción y añada las claves y los valores de etiqueta.

1. Seleccione **Cargar**.

## Eliminación de versiones de la aplicación
<a name="applications-versions.deleting"></a>

También puede eliminar una versión de la aplicación con la CLI de EB. Para obtener más información, consulte[**eb appversion**](eb3-appversion.md) en el capítulo*Comandos de la CLI de EB*.

**nota**  
La eliminación de una versión de la aplicación no afecta a los entornos que ejecutan actualmente esa versión.

También puede configurar Elastic Beanstalk para eliminar versiones antiguas automáticamente mediante la configuración del ciclo de vida de la versión de la aplicación. Si configura estas opciones del ciclo de vida, estas se aplican cuando se crean nuevas versiones de la aplicación. Por ejemplo, si establece un máximo de 25 versiones de la aplicación, Elastic Beanstalk elimina la versión más antigua cuando se carga la versión número 26. Si configura una antigüedad máxima de 90 días, las versiones con más de 90 días se eliminarán cuando se cargue una nueva versión. Para obtener más información, consulte [Configuración del ciclo de vida de la versión de la aplicación](applications-lifecycle.md).

**Para eliminar una versión de la aplicación**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)** y, a continuación, elija el nombre de la aplicación de la lista.

1. En el panel de navegación, busque el nombre de la aplicación y elija **Application versions (Versiones de la aplicación)**.

1. Seleccione una o varias versiones de la aplicación que desee eliminar.

1. Seleccione **Actions (Acciones)** y, a continuación, seleccione **Delete (Eliminar)**.

1. (Opcional) Para dejar el paquete de origen de la aplicación para estas versiones de aplicación en el bucket de Amazon Simple Storage Service (Amazon S3), desactive la casilla **Eliminar versiones de Amazon S3**.

1. Elija **Eliminar**.

Si no elige eliminar el paquete de origen de Amazon S3, Elastic Beanstalk seguirá eliminando la versión de sus registros. Sin embargo, el paquete de origen se deja en el [bucket de almacenamiento de Elastic Beanstalk](AWSHowTo.S3.md). La cuota de versión de la aplicación sólo se aplica a las versiones de las pistas de Elastic Beanstalk. Por lo tanto, puede eliminar versiones para no sobrepasar la cuota, pero mantener todos los paquetes de código fuente de Amazon S3.

**nota**  
El límite de versiones de la aplicación no se aplica a los paquetes de código fuente, pero podría seguir generando cargos de Amazon S3 y retener información personal más allá el momento en que la necesite. Elastic Beanstalk nunca elimina automáticamente los paquetes de origen. Debe eliminar los paquetes de código fuente cuando ya no los necesite.

# Configuración del ciclo de vida de la versión de la aplicación
<a name="applications-lifecycle"></a>

En este tema se explican las políticas y las cuotas que Elastic Beanstalk aplica a las versiones de la aplicación en un entorno determinado, incluido el tiempo que una versión de la aplicación permanece en un entorno.

Cada vez que carga una nueva versión de su aplicación con la consola de Elastic Beanstalk o la CLI de EB, Elastic Beanstalk crea una [versión de la aplicación](applications-versions.md). Si no elimina las versiones que ya no utiliza, acabará superando la [cuota de versiones de aplicación](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html#limits_elastic_beanstalk) y no podrá crear nuevas versiones de dicha aplicación.

Puede evitar que esto ocurra aplicando una *política de ciclo de vida de versiones de la aplicación* a sus aplicaciones. Una política de ciclo de vida indica a Elastic Beanstalk que elimine las versiones de la aplicación que sean antiguas o cuando el número total de versiones de una aplicación supere un número especificado.

Elastic Beanstalk aplica la política de ciclo de vida de una aplicación cada vez que se crea una nueva versión de la aplicación y elimina hasta 100 versiones cada vez que se aplica la política de ciclo de vida. Elastic Beanstalk elimina las versiones antiguas después de crear la nueva versión. Además, la nueva versión no computa para el número máximo de versiones definido en la política.

Elastic Beanstalk no elimina las versiones de la aplicación que se están usando actualmente en un entorno ni las versiones de la aplicación implementadas en entornos que se terminaron menos de diez semanas antes de que se activara la política.

La cuota de versiones de la aplicación se aplica a todas las aplicaciones de una región. Si tiene varias aplicaciones, configure cada aplicación con la política de ciclo de vida correspondiente para evitar superar la cuota. Por ejemplo, si tiene 10 aplicaciones en una región y la cuota es de 1000 versiones de la aplicación, considere la posibilidad de establecer una política de ciclo de vida con una cuota de 99 versiones de la aplicación para todas las aplicaciones, o establezca otros valores en cada aplicación, siempre y cuando el total sea inferior a 1000 versiones de la aplicación. Elastic Beanstalk solo aplica la política si la versión de la aplicación se crea correctamente, por lo que si ya ha alcanzado el límite, debe eliminar algunas versiones manualmente antes de crear una nueva versión.

De forma predeterminada, Elastic Beanstalk deja el [paquete de origen](applications-sourcebundle.md) de la versión de la aplicación en Amazon S3 para evitar que se pierdan datos. Puede eliminar el paquete de código fuente para ahorrar espacio.

Puede establecer la configuración del ciclo de vida mediante la CLI de Elastic Beanstalk y. APIs Consulte [**eb appversion**](eb3-appversion.md) [CreateApplication](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_CreateApplication.html)(mediante el `ResourceLifecycleConfig` parámetro) y [UpdateApplicationResourceLifecycle](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateApplicationResourceLifecycle.html)para obtener más información.

## Configuración de las opciones del ciclo de vida de la aplicación en la consola
<a name="applications-lifecycle-console"></a>

Puede especificar la configuración del ciclo de vida en la consola de Elastic Beanstalk.

**Para especificar la configuración del ciclo de vida de la aplicación**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)** y, a continuación, elija el nombre de la aplicación de la lista.

1. En el panel de navegación, busque el nombre de la aplicación y elija **Application versions (Versiones de la aplicación)**.

1. Seleccione **Configuración**.

1. Utilice el formulario en pantalla para establecer la configuración del ciclo de vida de la aplicación.

1. Seleccione **Save**.

En la página Settings (Configuración), puede realizar lo siguiente:
+ Establecer la configuración del ciclo de vida en función del recuento total de versiones de la aplicación o de la antigüedad de las versiones de la aplicación.
+ Especificar si desea eliminar el paquete de código fuente de S3 cuando se elimine la versión de la aplicación.
+ Especificar el rol del servicio en el que se elimina la versión de la aplicación. Para incluir todos los permisos necesarios para la eliminación de la versión, elija el rol de servicio de `aws-elasticbeanstalk-service-role` predeterminado, denominada Elastic Beanstalk u otro rol de servicio mediante las políticas de servicios administrados de Elastic Beanstalk. Para obtener más información, consulte [Administración de roles de servicio de Elastic Beanstalk](iam-servicerole.md).

# Etiquetado de versiones de la aplicación
<a name="applications-versions-tagging"></a>

En este tema se explican las ventajas de etiquetar las versiones de aplicaciones de Elastic Beanstalk y cómo administrar las etiquetas.

Puede aplicar etiquetas a las versiones de AWS Elastic Beanstalk la aplicación. Las etiquetas son pares clave-valor asociados AWS a los recursos. Para obtener información sobre el etiquetado de recursos de Elastic Beanstalk, los casos de uso, las restricciones de las claves y los valores de las etiquetas y los tipos de recursos admitidos, consulte [Etiquetar recursos de la aplicación Elastic Beanstalk](applications-tagging-resources.md).

Puede especificar etiquetas al crear una versión de la aplicación. En una versión de la aplicación, puede añadir o eliminar etiquetas, y actualizar los valores de etiquetas existentes. Puede añadir hasta 50 etiquetas a cada versión de la versión de la aplicación.

## Adición de etiquetas durante la creación de la versión de la aplicación
<a name="applications-versions-tagging.create"></a>

Cuando se utiliza la consola de Elastic Beanstalk para [crear un entorno](environments-create-wizard.md), y elige cargar una versión de su código de la aplicación, puede especificar las claves y los valores de las etiquetas que se asociarán a la nueva versión de la aplicación.

También puede utilizar la consola de Elastic Beanstalk para [cargar una versión de la aplicación](applications-versions.md) sin usarla inmediatamente en un entorno. Puede especificar claves y valores de las etiquetas al cargar una versión de la aplicación.

Con este AWS CLI u otros clientes basados en API, añada etiquetas mediante el `--tags` parámetro del comando. **[create-application-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-application-version.html)**

```
$ aws elasticbeanstalk create-application-version \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --version-label v1
```

Cuando se utiliza la CLI de EB para crear o actualizar un entorno, se crea una versión de la aplicación a partir del código que implemente. No hay un modo directo de etiquetar una versión de la aplicación durante su creación a través de la CLI de EB. Consulte la siguiente sección para obtener más información acerca de la adición de etiquetas a una versión de la aplicación existente.

## Administración de etiquetas de una versión de la aplicación existente
<a name="applications-versions-tagging.manage"></a>

Puede agregar, actualizar y eliminar etiquetas en una versión de aplicación de Elastic Beanstalk existente.

**Para administrar las etiquetas de una versión de una aplicación mediante la consola de Elastic Beanstalk**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)** y, a continuación, elija el nombre de la aplicación de la lista.

1. En el panel de navegación, busque el nombre de la aplicación y elija **Application versions (Versiones de la aplicación)**.

1. Seleccione la versión de la aplicación que desea administrar.

1. Elija **Actions (Acciones)** y, a continuación, elija **Manage Tags (Administrar etiquetas)**.

1. Utilice el formulario en pantalla para añadir, actualizar o eliminar etiquetas.

1. Para guardar los cambios, elija **Aplicar** en la parte inferior de la página.

Si utiliza la CLI de EB para actualizar su versión de la aplicación, utilice **[eb tags](eb3-tags.md)** para añadir, actualizar, eliminar o enumerar etiquetas.

Por ejemplo, el siguiente comando muestra las etiquetas en una versión de la aplicación.

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

El siguiente comando actualiza la etiqueta `mytag1` y elimina la etiqueta `mytag2`.

```
~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \
      --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

Para obtener una lista de las opciones y más ejemplos, consulte `eb tags`.

Con este AWS CLI u otros clientes basados en API, utilice el **[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)** comando para enumerar las etiquetas de una versión de la aplicación.

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

Utilice el comando **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** para añadir, actualizar o eliminar etiquetas en una versión de la aplicación.

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:applicationversion/my-app/my-version"
```

Especifique las etiquetas que desea añadir y las que desea actualizar en el parámetro `--tags-to-add` de **update-tags-for-resource**. Se añade una etiqueta no existente y se actualiza el valor de una etiqueta existente.

**nota**  
Para utilizar algunos de los AWS CLI comandos y la CLI de EB con una versión de la aplicación Elastic Beanstalk, necesita el ARN de la versión de la aplicación. Puede recuperar el ARN mediante el siguiente comando.  

```
$ aws elasticbeanstalk describe-application-versions --application-name my-app --version-label my-version
```

# Creación de una agrupación de orígenes de aplicación en Elastic Beanstalk.
<a name="applications-sourcebundle"></a>

En este tema se explica cómo cargar los archivos de origen de la aplicación en Elastic Beanstalk en una agrupación de origen. Se explican los requisitos de una agrupación de origen, la estructura y los enfoques para crearlo.

Cuando utilice la AWS Elastic Beanstalk consola para implementar una nueva aplicación o una versión de la aplicación, tendrá que cargar los archivos de la aplicación en 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 500 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](using-features-managing-env-tiers.md#worker-periodictasks).

Si implementa la aplicación con la interfaz de línea de comandos de Elastic Beanstalk (EB CLI), el Toolkit AWS for Eclipse o el kit de herramientas para AWS Visual Studio, el archivo ZIP o WAR se estructurará automáticamente de forma correcta. Para obtener más información, consulte [Configuración de la interfaz de la línea de comandos de EB (CLI de EB) para administrar Elastic Beanstalk](eb-cli3.md), [Implementación de aplicaciones Java con Elastic Beanstalk](create_deploy_Java.md) y [El AWS Toolkit for Visual Studio](dotnet-toolkit.md).

**Topics**
+ [Creación de un paquete de código fuente desde la línea de comandos](#using-features.deployment.source.commandline)
+ [Creación de un paquete de código fuente con Git](#using-features.deployment.source.git)
+ [Comprimir archivos en Mac OS X Finder o en el Explorador de Windows](#using-features.deployment.source.gui)
+ [Creación de un paquete de código fuente para una aplicación .NET](#using-features.deployment.source.dotnet)
+ [Comprobación del paquete de código fuente](#using-features.deployment.source.test)

## Creación de un paquete de código fuente desde la línea de comandos
<a name="using-features.deployment.source.commandline"></a>

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](ebextensions.md) 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](#using-features.deployment.source.git).

## Creación de un paquete de código fuente con Git
<a name="using-features.deployment.source.git"></a>

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](http://git-scm.com/docs/git-archive).

## Comprimir archivos en Mac OS X Finder o en el Explorador de Windows
<a name="using-features.deployment.source.gui"></a>

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](#using-features.deployment.source.commandline).

**Example**  
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.

## Creación de un paquete de código fuente para una aplicación .NET
<a name="using-features.deployment.source.dotnet"></a>

Si usa Visual Studio, puede usar la herramienta de implementación incluida 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 mediante herramientas de implementación AWS](deploy_NET_standalone_tool.md).

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: Creación de un paquete de implementación web en Visual Studio](http://msdn.microsoft.com/en-us/library/dd465323.aspx).
**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](http://www.iis.net/learn/publish/using-web-deploy/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
<a name="using-features.deployment.source.test"></a>

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. 

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.

# Uso de la CLI de EB con AWS CodeBuild
<a name="eb-cli-codebuild"></a>

[AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/)compila el código fuente, ejecuta pruebas unitarias y produce artefactos listos para implementarse. Puede utilizar CodeBuild junto con la CLI de EB para automatizar la creación de la aplicación a partir del código fuente. La creación del entorno y cada implementación posterior comienzan por un paso de creación y la posterior implementación de la aplicación resultante.

**nota**  
Algunas regiones no ofrecen CodeBuild. La integración entre Elastic CodeBuild Beanstalk y Elastic no funciona en estas regiones.  
[Para obtener información sobre los AWS servicios que se ofrecen en cada región, consulte la tabla de regiones.](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)

## Creación de una aplicación de
<a name="eb-cli-codebuild-using"></a>

**Para crear una aplicación de Elastic Beanstalk que utilice CodeBuild**

1. Incluya un archivo de especificaciones de CodeBuild compilación en la [https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html)carpeta de la aplicación.

1. Añada una entrada `eb_codebuild_settings` con opciones específicas de Elastic Beanstalk al archivo.

1. Ejecute [**eb init**](eb3-init.md) en la carpeta.
**nota**  
No utilice puntos (`.`) ni espacios (` `) en el *nombre de la aplicación* cuando utilice la CLI de EB con CodeBuild. 

Elastic Beanstalk [CodeBuild amplía el formato del archivo de especificaciones de compilación para incluir las](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html) siguientes configuraciones adicionales:

```
eb_codebuild_settings:
  CodeBuildServiceRole: role-name
  ComputeType: size
  Image: image
  Timeout: minutes
```

`CodeBuildServiceRole`  
El ARN o el nombre del rol de servicio AWS Identity and Access Management (IAM) que CodeBuild puede utilizar para interactuar con los AWS servicios dependientes en su nombre. Este valor es obligatorio. Si lo omite, cualquier comando **eb create** o **eb deploy** posterior produce un error.  
Para obtener más información sobre cómo crear un rol de servicio CodeBuild, consulte [Crear un rol de CodeBuild servicio](https://docs.aws.amazon.com/codebuild/latest/userguide/setting-up.html#setting-up-service-role) en la Guía del *AWS CodeBuild usuario*.  
También necesita permisos para realizar acciones por CodeBuild sí mismo. La política de usuarios gestionados de **AdministratorAccessElastic AWSElastic Beanstalk: Beanstalk** incluye todos los permisos de acción necesarios. CodeBuild Si no utiliza la política administrada, asegúrese de conceder los siguientes permisos en su política de usuario.  

```
  "codebuild:CreateProject",
  "codebuild:DeleteProject",
  "codebuild:BatchGetBuilds",
  "codebuild:StartBuild"
```
Para obtener más información, consulte [Administración de políticas de usuario de Elastic Beanstalk](AWSHowTo.iam.managed-policies.md).

`ComputeType`  
La cantidad de recursos que utiliza el contenedor de Docker en el entorno de compilación. CodeBuild Los valores válidos son BUILD\$1 GENERAL1 \$1SMALL, BUILD\$1 \$1MEDIUM y BUILD\$1 GENERAL1 \$1LARGE. GENERAL1

`Image`  
El nombre de la imagen de Docker Hub o Amazon ECR que se CodeBuild utiliza para el entorno de compilación. Esta imagen de Docker debe contener todas las herramientas y bibliotecas de tiempo de ejecución necesarias para compilar el código y debe coincidir con la plataforma de destino de la aplicación. CodeBuild administra y mantiene un conjunto de imágenes diseñadas específicamente para usarse con Elastic Beanstalk. Se recomienda utilizar una de ellas. *Para obtener más información, consulte las [imágenes de Docker proporcionadas por CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html) en la Guía del usuario.AWS CodeBuild *  
El valor `Image` es opcional. Si lo omite, el comando **eb init** intenta elegir la imagen que mejor se adapte a su plataforma de destino. Además, si ejecuta **eb init** en modo interactivo y no puede elegir la imagen automáticamente, le solicita que seleccione una. Al final de una inicialización correcta, **eb init** escribe la imagen elegida en el archivo `buildspec.yml`.

`Timeout`  
El tiempo, en minutos, que dura la CodeBuild compilación antes de que se agote el tiempo de espera. Este valor es opcional. Para obtener más información sobre los valores válidos y predeterminados, consulte [Crear un proyecto de compilación en CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/create-project.html).  
Este tiempo de espera controla la duración máxima de una CodeBuild ejecución y la CLI de EB también lo respeta como parte del primer paso para crear una versión de la aplicación. Es distinto del valor que puede especificar con la opción de `--timeout` de los comandos [**eb create**](eb3-create.md) o [**eb deploy**](eb3-deploy.md). El último valor controla la duración máxima que la CLI de EB debe esperar para la creación o la actualización del entorno.

## Creación e implementación del código de la aplicación
<a name="eb-cli-codebuild-using"></a>

Siempre que sea necesario implementar el código de la aplicación, la CLI de EB lo utiliza CodeBuild para ejecutar una compilación y, a continuación, implementa los artefactos de compilación resultantes en su entorno. Esto ocurre cuando crea un entorno de Elastic Beanstalk para su aplicación con el comando [**eb create**](eb3-create.md) y cada vez que implemente cambios de código en el entorno posteriormente con el comando [**eb deploy**](eb3-deploy.md).

Si el CodeBuild paso no se realiza correctamente, no se inicia la creación o el despliegue del entorno.

# Etiquetado de aplicaciones
<a name="applications-tagging"></a>

En este tema se explican las ventajas de etiquetar las aplicaciones de Elastic Beanstalk. También se proporcionan instrucciones para crear y administrar etiquetas de aplicaciones. Las etiquetas son pares clave-valor asociados AWS a los recursos. Para obtener información sobre el etiquetado de recursos de Elastic Beanstalk, los casos de uso, las restricciones de las claves y los valores de las etiquetas y los tipos de recursos admitidos, consulte [Etiquetar recursos de la aplicación Elastic Beanstalk](applications-tagging-resources.md).

Puede especificar etiquetas al crear una aplicación. En una aplicación existente, puede añadir o eliminar etiquetas, y actualizar los valores de etiquetas existentes. Puede añadir hasta 50 etiquetas a cada aplicación.

## Adición de etiquetas durante la creación de aplicaciones
<a name="applications-tagging.create"></a>

Cuando se utiliza la consola de Elastic Beanstalk para [crear una aplicación](applications.md), puede especificar las claves y los valores de las etiquetas en el cuadro de diálogo **Create New Application (Creación de nueva aplicación)**.

Si utiliza la CLI de EB para crear una aplicación, use la opción `--tags` con **[eb init](eb3-init.md)** para añadir etiquetas.

```
~/workspace/my-app$ eb init --tags mytag1=value1,mytag2=value2
```

Con este AWS CLI u otros clientes basados en API, añada etiquetas mediante el `--tags` parámetro del comando. **[create-application](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/create-application.html)**

```
$ aws elasticbeanstalk create-application \
      --tags Key=mytag1,Value=value1 Key=mytag2,Value=value2 \
      --application-name my-app --version-label v1
```

## Administración de etiquetas de una aplicación existente
<a name="applications-tagging.manage"></a>

Puede agregar, actualizar y eliminar etiquetas en una aplicación de Elastic Beanstalk existente.

**Para administrar las etiquetas de una aplicación en la consola de Elastic Beanstalk**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Applications (Aplicaciones)** y, a continuación, elija el nombre de la aplicación de la lista.

1. Elija **Actions (Acciones)** y, a continuación, elija **Manage Tags (Administrar etiquetas)**.

1. Utilice el formulario en pantalla para añadir, actualizar o eliminar etiquetas.

1. Para guardar los cambios, elija **Aplicar** en la parte inferior de la página.

Si utiliza la CLI de EB para actualizar su aplicación, utilice **[eb tags](eb3-tags.md)** para añadir, actualizar, eliminar o enumerar etiquetas.

Por ejemplo, el siguiente comando muestra las etiquetas en una aplicación.

```
~/workspace/my-app$ eb tags --list --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

El siguiente comando actualiza la etiqueta `mytag1` y elimina la etiqueta `mytag2`.

```
~/workspace/my-app$ eb tags --update mytag1=newvalue --delete mytag2 \
      --resource "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

Para obtener una lista de las opciones y más ejemplos, consulte `eb tags`.

Con este AWS CLI u otros clientes basados en API, utilice el **[list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-tags-for-resource.html)** comando para enumerar las etiquetas de una aplicación.

```
$ aws elasticbeanstalk list-tags-for-resource --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

Utilice el comando **[update-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-tags-for-resource.html)** para añadir, actualizar o eliminar etiquetas en una aplicación.

```
$ aws elasticbeanstalk update-tags-for-resource \
      --tags-to-add Key=mytag1,Value=newvalue --tags-to-remove mytag2 \
      --resource-arn "arn:aws:elasticbeanstalk:us-east-2:my-account-id:application/my-app"
```

Especifique las etiquetas que desea añadir y las que desea actualizar en el parámetro `--tags-to-add` de **update-tags-for-resource**. Se añade una etiqueta no existente y se actualiza el valor de una etiqueta existente.

**nota**  
Para utilizar algunos de los AWS CLI comandos y la CLI de EB con una aplicación de Elastic Beanstalk, necesita el ARN de la aplicación. Puede recuperar el ARN mediante el siguiente comando.  

```
$ aws elasticbeanstalk describe-applications --application-names my-app
```

# Etiquetar recursos de la aplicación Elastic Beanstalk
<a name="applications-tagging-resources"></a>

En este tema se explican las ventajas de usar etiquetas con los recursos de la aplicación de Elastic Beanstalk, además de las limitaciones que conlleva. También se explica cómo crear y administrar etiquetas para los recursos de la aplicación.

Puede aplicar etiquetas a los recursos de sus AWS Elastic Beanstalk aplicaciones. Las etiquetas son pares clave-valor asociados AWS a los recursos. Las etiquetas pueden ayudarle a clasificar los recursos. Son particularmente útiles si administras muchos recursos como parte de varias AWS aplicaciones.

Estas son algunas formas de usar el etiquetado con recursos de Elastic Beanstalk:
+ *Etapas de implementación*: identifique los recursos asociados con diferentes etapas de su aplicación, como la de desarrollo, beta y producción.
+ *Asignación de costos*: utilice los informes de asignación de costos para realizar un seguimiento del uso de AWS los recursos asociados a varias cuentas de gastos. Los informes incluyen recursos etiquetados y sin etiquetar, y agrupan los costos en función de las etiquetas. Para obtener información sobre el uso de etiquetas en los informes de asignación de costos, consulte [Uso de etiquetas de asignación de costos para informes de facturación personalizados](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation.html) en la *Guía del usuario de AWS Billing and Cost Management*.
+ *Control de acceso*: utilice las etiquetas para administrar los permisos a las solicitudes y los recursos. Por ejemplo, un usuario que solo puede crear y administrar entornos beta solo debe tener acceso a los recursos de la etapa beta. Para obtener más información, consulte [Uso de etiquetas para controlar el acceso a los recursos de Elastic BeanstalkEjemplos de condiciones de etiqueta en las políticas](AWSHowTo.iam.policies.access-tags.md).

Puede agregar hasta 50 etiquetas a cada recurso de . Los entornos son ligeramente diferentes: Elastic Beanstalk añade tres etiquetas del sistema predeterminadas a los entornos, y no puede editar o eliminar esas etiquetas. Además de las etiquetas predeterminadas, puede agregar hasta 47 etiquetas adicionales a cada entorno.

Se aplican las siguientes limitaciones en las claves y valores de las etiquetas:
+ Las claves y los valores pueden contener letras, números, espacios en blanco y los siguientes símbolos: `_ . : / = + - @`
+ Las claves pueden contener un máximo de 127 caracteres. Los valores pueden contener un máximo de 255 caracteres.
**nota**  
Estos límites de longitud son para los caracteres Unicode en UTF-8. Para otras codificaciones multibyte, los límites podrían ser inferiores.
+ Las claves distinguen entre mayúsculas y minúsculas.
+ Las claves no pueden empezar por `aws:` o `elasticbeanstalk:`.

## Recursos que se pueden etiquetar
<a name="applications-tagging-resources.supported"></a>

A continuación, se muestran los tipos de recursos de Elastic Beanstalk que puede etiquetar y los enlaces a temas específicos acerca de la administración de etiquetas para cada uno de ellos:
+ [Aplicaciones](applications-tagging.md)
+ [Entornos](using-features.tagging.md)
+ [Versiones de la aplicación](applications-versions-tagging.md)
+ [Configuraciones guardadas](environment-configuration-savedconfig-tagging.md)

# Propagación de etiquetas para plantillas de lanzamiento
<a name="applications-tagging-resources.launch-templates"></a>

Elastic Beanstalk ofrece una opción para permitir la propagación de etiquetas de entorno en plantillas de lanzamiento. Esta opción proporciona compatibilidad continua para el control de acceso basado en etiquetas (TBAC) con las plantillas de lanzamiento.

**nota**  
Las configuraciones de lanzamiento se están eliminando gradualmente y se están reemplazando por plantillas de lanzamiento. Para obtener más información, consulte [Configuraciones de lanzamiento](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html) en la *Guía del usuario de Amazon EC2 Auto Scaling*.

Para evitar el tiempo de inactividad de las EC2 instancias en ejecución, CloudFormation no propaga las etiquetas a las plantillas de lanzamiento existentes. Si existe un caso de uso que requiera etiquetas para los recursos de su entorno, puede habilitar Elastic Beanstalk para que cree plantillas de lanzamiento con etiquetas para estos recursos. Para ello, establezca la opción `LaunchTemplateTagPropagationEnabled` del espacio de nombres de [aws:autoscaling:launchconfiguration](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) como `true`. El valor predeterminado es `false`.

El siguiente ejemplo de [archivo de configuración](ebextensions.md) permite la propagación de etiquetas en plantillas de lanzamiento.

```
option_settings:
  aws:autoscaling:launchconfiguration:
    LaunchTemplateTagPropagationEnabled: true
```

Elastic Beanstalk solo puede propagar etiquetas en plantillas de lanzamiento para los siguientes recursos:
+ Volúmenes de EBS
+ EC2 instancias 
+ EC2 interfaces de red
+ CloudFormation plantillas de lanzamiento que definan un recurso

Esta restricción existe porque CloudFormation solo se permiten etiquetas en la creación de plantillas para recursos específicos. Para obtener más información, consulte [TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html)la *Guía del AWS CloudFormation usuario*.

**importante**  
Cambiar el valor de esta opción de `false` a `true` para un entorno existente puede suponer un cambio sustancial para las etiquetas que ya existían anteriormente.
Cuando esta función está habilitada, será necesario EC2 reemplazar la propagación de las etiquetas, lo que puede provocar un tiempo de inactividad. Puede habilitar *actualizaciones escalonadas* para aplicar los cambios de configuración por lotes y evitar el tiempo de inactividad durante el proceso de actualización. Para obtener más información, consulte [Cambios de configuración](environments-updating.md).

Para obtener más información sobre las plantillas de lanzamiento, consulte lo siguiente:
+ [Plantillas de lanzamiento](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-templates.html) en la *Guía del usuario EC2 de Amazon Auto Scaling*
+ [Trabajo con plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) en la *Guía del usuario de AWS CloudFormation *
+ [Fragmentos de código de plantillas de Elastic Beanstalk](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-elasticbeanstalk.html) en la *Guía del usuario de AWS CloudFormation *