

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.

# Integraciones de productos y servicios con CodeDeploy
<a name="integrations"></a>

De forma predeterminada, CodeDeploy se integra con varios AWS servicios y productos y servicios de socios. La siguiente información puede ayudarle a CodeDeploy configurarse para integrarse con los productos y servicios que utiliza. 
+ [Integración con otros AWS servicios](integrations-aws.md)
+  [Integración con productos y servicios de socios](integrations-partners.md)
+ [Ejemplos de integración de la comunidad](integrations-community.md)

# Integración con otros AWS servicios
<a name="integrations-aws"></a>

CodeDeploy está integrado con los siguientes AWS servicios:


|  |  | 
| --- |--- |
| Amazon CloudWatch |  [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/) es un servicio de supervisión de los recursos de la AWS nube y las aplicaciones en las que se ejecuta AWS. Puedes usar Amazon CloudWatch para recopilar y rastrear métricas, recopilar y monitorear archivos de registro y configurar alarmas. CodeDeploy es compatible con las siguientes CloudWatch herramientas:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html)  | 
| Amazon EC2 Auto Scaling |  CodeDeploy es compatible con [Amazon EC2 Auto Scaling](https://aws.amazon.com/autoscaling). Este AWS servicio puede lanzar automáticamente instancias de Amazon EC2 en función de los criterios que especifique, por ejemplo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html) Puede escalar un grupo de instancias de Amazon EC2 siempre que las necesite y, a continuación, utilizarlas CodeDeploy para implementar revisiones de aplicaciones en ellas automáticamente. Amazon EC2 Auto Scaling termina las instancias de Amazon EC2 cuando dejan de ser necesarias. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html)  | 
| Amazon Elastic Container Service |   Puede utilizarla CodeDeploy para implementar una aplicación contenerizada de Amazon ECS como un conjunto de tareas. CodeDeploy realiza una blue/green implementación instalando una versión actualizada de la aplicación como un nuevo conjunto de tareas de reemplazo. CodeDeploy redirige el tráfico de producción del conjunto de tareas de la aplicación original al conjunto de tareas de reemplazo. Cuando la implementación se realiza correctamente, se termina el conjunto de tareas original. Para obtener más información acerca de Amazon ECS, consulte [Amazon Elastic Container Service](https://aws.amazon.com/ecs/).  Puede administrar la forma en que el tráfico se desplaza al conjunto de tareas actualizado durante una implementación eligiendo una configuración canaria, lineal o all-at-once lineal. Para obtener más información acerca de las implementaciones de Amazon ECS, consulte [Implementaciones en una plataforma de informática de Amazon ECS](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/deployment-steps-ecs.html).   | 
| AWS CloudTrail |  CodeDeploy está integrado con [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/). Este servicio captura las llamadas a la API realizadas por o en su nombre CodeDeploy en su AWS cuenta y entrega los archivos de registro a un bucket de Amazon S3 que especifique. CloudTrailcaptura las llamadas a la API desde la CodeDeploy consola, desde CodeDeploy los comandos a través de ella o CodeDeploy APIs directamente desde ella. AWS CLI Mediante la información recopilada por CloudTrail, puede determinar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html) Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html)  | 
| AWS Cloud9 |  [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/)es un entorno de desarrollo integrado (IDE) en línea y basado en la nube que puede utilizar para escribir, ejecutar, depurar e implementar código con solo un navegador desde una máquina conectada a Internet. AWS Cloud9 incluye un editor de código, un depurador, un terminal y herramientas esenciales, como Git. AWS CLI  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html) Para obtener más información AWS Cloud9, consulte [Qué es AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcom.html) y [Cómo empezar AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/get-started.html).  | 
| AWS CodePipeline |  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/) es un servicio de entrega continua que permite modelar, visualizar y automatizar los pasos necesarios para lanzar software en un proceso de entrega continua. AWS CodePipeline le permite definir su propio proceso de lanzamiento para que el servicio compile, pruebe e implemente el código cada vez que cambie. Por ejemplo, puede tener tres grupos de implementaciones para una aplicación: Beta, Gamma y Prod. Puede configurar una canalización para que, cada vez que ocurra un cambio en el código fuente, las actualizaciones se implementen en cada uno de los grupos. Puede configurarlo AWS CodePipeline para usar CodeDeploy para implementar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html)  Puede crear la CodeDeploy aplicación, el despliegue y el grupo de despliegues para usarlos en una acción de despliegue en una fase, ya sea antes de crear la canalización o en el asistente de **creación de canalización**. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html)  | 
| AWS Modelo de aplicación sin servidor |  AWS El modelo de aplicaciones sin servidor (AWS SAM) es un modelo para definir las aplicaciones sin servidor. Se amplía CloudFormation para proporcionar una forma simplificada de definir AWS Lambda las funciones, las tablas de Amazon API Gateway APIs y Amazon DynamoDB requeridas por una aplicación sin servidor. Si ya utiliza AWS SAM, puede añadir preferencias de implementación para empezar CodeDeploy a utilizarlas y administrar la forma en que se desplaza el tráfico durante la implementación de una aplicación AWS Lambda. Para obtener más información, consulte [AWS Serverless Application Model](https://github.com/awslabs/serverless-application-model).  | 
| Elastic Load Balancing |  CodeDeploy es compatible con [Elastic Load Balancing](https://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elastic-load-balancing.html), un servicio que distribuye el tráfico de aplicaciones entrante entre varias instancias de Amazon EC2.  En el caso de CodeDeploy las implementaciones, los balanceadores de carga también evitan que el tráfico se dirija a las instancias cuando no están listas, se están implementando actualmente o ya no se necesitan como parte de un entorno. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-aws.html)  | 

**Topics**
+ [Amazon EC2 Auto Scaling](integrations-aws-auto-scaling.md)
+ [Integrating CodeDeploy with Elastic Load Balancing](integrations-aws-elastic-load-balancing.md)

# Integración CodeDeploy con Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling"></a>

CodeDeploy es compatible con Amazon EC2 Auto Scaling, AWS un servicio que lanza instancias de Amazon EC2 automáticamente según las condiciones que defina. Estas condiciones pueden incluir que se supere un límite de tiempo específico para el uso de la CPU, que se lea o escriba el disco, o el tráfico de red entrante y saliente. Amazon EC2 Auto Scaling termina las instancias cuando dejan de ser necesarias. Para obtener más información, consulte [Grupo de Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/latest/userguide/WhatIsAutoScaling.html) en la *Guía del usuario de Amazon EC2 Auto Scaling*.

Cuando se lanzan nuevas instancias de Amazon EC2 como parte de un grupo de Amazon EC2 Auto Scaling, CodeDeploy puede implementar sus revisiones en las nuevas instancias automáticamente. También puede coordinar las implementaciones CodeDeploy con instancias de Amazon EC2 Auto Scaling registradas en los balanceadores de carga de Elastic Load Balancing. Para obtener más información, consulte [Integración CodeDeploy con Elastic Load Balancing](integrations-aws-elastic-load-balancing.md) y [Configurar un balanceador de carga en Elastic Load Balancing para las implementaciones de CodeDeploy Amazon EC2](deployment-groups-create-load-balancer.md).

**nota**  
Tenga en cuenta que es posible que surjan problemas si asocia varios grupos de implementación con un único grupo de Amazon EC2 Auto Scaling. Por ejemplo, si falla una implementación, la instancia comenzará a cerrarse, pero el resto de las implementaciones en ejecución puede que tarden una hora en agotar el tiempo de espera. Para obtener más información, consulte [Under [Evite asociar varios grupos de implementación a un único grupo de Amazon EC2 Auto Scaling](troubleshooting-auto-scaling.md#troubleshooting-multiple-depgroups) the Hood: CodeDeploy y la integración de Amazon EC2 Auto Scaling](https://aws.amazon.com/blogs/devops/under-the-hood-aws-codedeploy-and-auto-scaling-integration/).

**Topics**
+ [Implementación de CodeDeploy aplicaciones en grupos de Amazon EC2 Auto Scaling](#integrations-aws-auto-scaling-deploy)
+ [Habilitación de implementaciones de terminación durante los eventos de reducción horizontal de Auto Scaling](#integrations-aws-auto-scaling-behaviors-hook-enable)
+ [Cómo funciona Amazon EC2 Auto Scaling con CodeDeploy](#integrations-aws-auto-scaling-behaviors)
+ [Uso de una AMI personalizada con CodeDeploy Amazon EC2 Auto Scaling](#integrations-aws-auto-scaling-custom-ami)

## Implementación de CodeDeploy aplicaciones en grupos de Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling-deploy"></a>

Para implementar una revisión de CodeDeploy la aplicación en un grupo de Amazon EC2 Auto Scaling:

1. Cree o localice un perfil de instancia de IAM que permita al grupo de Amazon EC2 Auto Scaling trabajar con Amazon S3. Para obtener más información, consulte [Paso 4: Crear un perfil de instancia de IAM para las instancias de Amazon EC2](getting-started-create-iam-instance-profile.md).
**nota**  
También puede utilizarlas CodeDeploy para implementar revisiones de los GitHub repositorios en los grupos de Amazon EC2 Auto Scaling. Si bien las instancias de Amazon EC2 siguen necesitando un perfil de instancia de IAM, el perfil no necesita permisos adicionales para implementarse desde un repositorio. GitHub 

1. Cree o utilice un grupo de Amazon EC2 Auto Scaling, especificando el perfil de instancia de IAM en su configuración o plantilla de lanzamiento. Para obtener más información, consulte [Rol de IAM para aplicaciones que se ejecutan en instancias de Amazon EC2](https://docs.aws.amazon.com/autoscaling/ec2/userguide/us-iam-role.html).

1. Cree o localice un rol de servicio que permita CodeDeploy crear un grupo de implementación que contenga el grupo Amazon EC2 Auto Scaling.

1. Cree un grupo de implementación especificando el nombre del grupo de Amazon EC2 Auto Scaling, la función de servicio y algunas opciones más. CodeDeploy Para obtener más información, consulte [Creación de un grupo de implementación para una implementación local (consola)](deployment-groups-create-in-place.md) o [Creación de un grupo de implementación para una implementación local (consola)](deployment-groups-create-in-place.md).

1.  CodeDeploy Utilícela para implementar la revisión en el grupo de implementación que contiene el grupo Amazon EC2 Auto Scaling.

Para obtener más información, consulte [Tutorial: Se usa CodeDeploy para implementar una aplicación en un grupo de Auto Scaling](tutorials-auto-scaling-group.md).

## Habilitación de implementaciones de terminación durante los eventos de reducción horizontal de Auto Scaling
<a name="integrations-aws-auto-scaling-behaviors-hook-enable"></a>

Un *despliegue de terminación* es un tipo de CodeDeploy despliegue que se activa automáticamente cuando se produce un [evento de escalado](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in) interno de Auto Scaling. CodeDeploy realiza el despliegue de terminación justo antes de que el servicio Auto Scaling finalice la instancia. Durante un despliegue de terminación, CodeDeploy no despliega nada. En su lugar, genera eventos de ciclo de vida, que puede enlazar a sus propios scripts para habilitar una funcionalidad de apagado personalizada. Por ejemplo, puede enlazar el evento del ciclo de vida de `ApplicationStop` a un script que apague la aplicación sin problemas antes de que finalice la instancia. 

Para obtener una lista de los eventos del ciclo de vida que se CodeDeploy generan durante un despliegue de terminación, consulte[Disponibilidad de los enlaces de eventos del ciclo de vida](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-availability). 

Si la implementación de la terminación falla por algún motivo, CodeDeploy permitirá que la finalización de la instancia continúe. Esto significa que la instancia se cerrará aunque CodeDeploy no se haya ejecutado todo el conjunto (o ninguno) de los eventos del ciclo de vida hasta completarse.

Si no habilita las implementaciones de terminación, el servicio Auto Scaling seguirá cancelando las instancias de Amazon EC2 cuando se produzca un evento de escalado interno, CodeDeploy pero no generará eventos de ciclo de vida.

**nota**  
Independientemente de si habilita las implementaciones de terminación o no, si el servicio Auto Scaling finaliza una instancia de Amazon EC2 mientras la implementación está en marcha, puede producirse CodeDeploy una situación de carrera entre los eventos del ciclo de vida generados por Auto Scaling y los servicios. CodeDeploy Por ejemplo, el evento `Terminating` del ciclo de vida (generado por el servicio Auto Scaling) podría anular el `ApplicationStart` evento (generado por la CodeDeploy implementación). En este escenario, es posible que se produzca un error al finalizar la instancia de Amazon EC2 o al CodeDeploy implementarse.

**Para permitir la realización CodeDeploy de despliegues de terminación**
+ Seleccione la casilla **Agregar un enlace de terminación a los grupos de Auto Scaling** al crear o actualizar su grupo de implementación. Para obtener instrucciones, consulte [Creación de un grupo de implementación para una implementación local (consola)](deployment-groups-create-in-place.md) o [Cree un grupo de despliegues para un despliegue de EC2/local (consola) blue/green](deployment-groups-create-blue-green.md).

  Al activar esta casilla de verificación, CodeDeploy se instala un [enlace de ciclo](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) de vida de Auto Scaling en los grupos de Auto Scaling que especifique al crear o actualizar el grupo de CodeDeploy implementación. Este enlace se denomina *enlace de terminación* y permite las implementaciones de terminación.

**Una vez instalado el enlace de terminación, se produce un evento de reducción horizontal (terminación) de la siguiente manera:**

1. El servicio de Auto Scaling (o simplemente Auto Scaling) determina que debe producirse un evento de reducción horizontal y se pone en contacto con el servicio de EC2 para terminar una instancia de EC2.

1. El servicio de EC2 comienza la terminación de la instancia EC2. La instancia pasa al estado `Terminating` y, después, al estado `Terminating:Wait`. 

1. Durante este proceso`Terminating:Wait`, Auto Scaling ejecuta todos los ganchos del ciclo de vida adjuntos al grupo Auto Scaling, incluido el gancho de terminación instalado por CodeDeploy.

1. El enlace de terminación envía una notificación a la [cola de Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) que está siendo sondeada. CodeDeploy

1. [Al recibir la notificación, CodeDeploy analiza el mensaje, realiza algunas validaciones y realiza un despliegue de terminación.](#integrations-aws-auto-scaling-behaviors-hook-enable)

1. Mientras se ejecuta la implementación de terminación, CodeDeploy envía latidos cada cinco minutos a Auto Scaling para avisarle de que la instancia aún se está trabajando en la instancia.

1. Hasta ahora, la instancia de EC2 sigue en el estado `Terminating:Wait` (o posiblemente en el estado `Warmed:Pending:Wait`, si ha activado los [grupos de calentamiento de grupos de Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/warm-pool-instance-lifecycle.html)).

1. Cuando se complete el despliegue, CodeDeploy indica a Auto Scaling `CONTINUE` el proceso de terminación de EC2, independientemente de si el despliegue de terminación se realizó correctamente o no.

## Cómo funciona Amazon EC2 Auto Scaling con CodeDeploy
<a name="integrations-aws-auto-scaling-behaviors"></a>

Al crear o actualizar un grupo de CodeDeploy implementación para incluir un grupo de Auto Scaling, CodeDeploy accede al grupo de Auto Scaling mediante el rol de CodeDeploy servicio y, a continuación, instala los [enlaces del ciclo de vida de Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) en sus grupos de Auto Scaling.

**nota**  
Los *ganchos del ciclo de vida de Auto Scaling* son diferentes de los *eventos* *del ciclo de vida (también denominados ganchos* de eventos del ciclo [AppSpec sección de «ganchos»](reference-appspec-file-structure-hooks.md) de vida) generados CodeDeploy y descritos en esta guía.

Los ganchos del ciclo de vida de Auto Scaling que CodeDeploy instala son:
+ **Un enlace de lanzamiento**: este enlace notifica CodeDeploy que hay un [evento de escalado horizontal de](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-out) Auto Scaling en curso y que es CodeDeploy necesario iniciar una implementación de lanzamiento.

  Durante una implementación de *lanzamiento*,: CodeDeploy
  + Implementa una revisión de la aplicación en la instancia escalada horizontalmente.
  + Genera eventos de ciclo de vida para indicar el progreso de la implementación. Puede enlazar estos eventos de ciclo de vida a sus propios scripts para habilitar una funcionalidad de inicio personalizada. Para obtener más información, consulte la tabla en [Disponibilidad de los enlaces de eventos del ciclo de vida](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-availability).

  El enlace de lanzamiento y la implementación de lanzamiento asociada siempre están habilitados y no se pueden desactivar.
+ **Un enlace de terminación**: este enlace opcional notifica CodeDeploy que se está produciendo un [evento de escalado](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in) automático de Auto Scaling y que CodeDeploy debe iniciar un despliegue de terminación.

  Durante una *implementación de terminación*, CodeDeploy genera eventos del ciclo de vida para indicar el progreso del cierre de la instancia. Para obtener más información, consulte [Habilitación de implementaciones de terminación durante los eventos de reducción horizontal de Auto Scaling](#integrations-aws-auto-scaling-behaviors-hook-enable).

**Topics**
+ [Una vez CodeDeploy instalados los enlaces del ciclo de vida, ¿cómo se utilizan?](#integrations-aws-auto-scaling-behaviors-hook-usage)
+ [Cómo se CodeDeploy nombran los grupos de Amazon EC2 Auto Scaling](#integrations-aws-auto-scaling-behaviors-naming)
+ [Orden de ejecución de eventos de enlace de ciclo de vida personalizados](#integrations-aws-auto-scaling-behaviors-hook-order)
+ [Eventos de escalado horizontal durante una implementación](#integrations-aws-auto-scaling-behaviors-mixed-environment)
+ [Eventos de reducción horizontal durante una implementación](#integrations-aws-auto-scaling-behaviors-scale-in)
+ [Orden de los eventos en los scripts AWS CloudFormation cfn-init](#integrations-aws-auto-scaling-behaviors-event-order)

### Una vez CodeDeploy instalados los enlaces del ciclo de vida, ¿cómo se utilizan?
<a name="integrations-aws-auto-scaling-behaviors-hook-usage"></a>

Una vez instalados los ganchos del ciclo de vida de lanzamiento y finalización, los utilizan CodeDeploy durante los eventos de escalado horizontal y horizontal de grupo de Auto Scaling, respectivamente.

**Un evento de escalado horizontal (lanzamiento) se desarrolla de la siguiente manera:**

1. El servicio de escalado automático (o simplemente Auto Scaling) determina que debe producirse un evento de escalado horizontal y se pone en contacto con el servicio de EC2 para lanzar una nueva instancia de EC2.

1. El servicio de EC2 lanza una nueva instancia de EC2. La instancia pasa al estado `Pending` y, después, al estado `Pending:Wait`. 

1. Durante este proceso`Pending:Wait`, Auto Scaling ejecuta todos los ganchos del ciclo de vida adjuntos al grupo Auto Scaling, incluido el gancho de lanzamiento instalado por CodeDeploy.

1. El enlace de lanzamiento envía una notificación a la [cola de Amazon SQS consultada](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) por. CodeDeploy

1. [Al recibir la notificación, CodeDeploy analiza el mensaje, realiza algunas validaciones e inicia una implementación de lanzamiento.](#launch-deployment)

1. Mientras se ejecuta la implementación de lanzamiento, CodeDeploy envía latidos cada cinco minutos a Auto Scaling para avisarle de que la instancia aún se está trabajando en la instancia.

1. Hasta el momento, la instancia EC2 sigue en el estado `Pending:Wait`.

1. Cuando se complete la implementación, CodeDeploy indica a Auto Scaling el proceso de lanzamiento `CONTINUE` o `ABANDON` el de EC2, dependiendo de si la implementación se realizó correctamente o no.
   + Si así CodeDeploy lo indica`CONTINUE`, Auto Scaling continúa con el proceso de lanzamiento, ya sea esperando a que se completen otros enlaces o poniendo la instancia en el estado `Pending:Proceed` y luego en el `InService` estado.
   + Si así CodeDeploy lo indica`ABANDON`, Auto Scaling finaliza la instancia EC2 y reinicia el procedimiento de lanzamiento si es necesario para cumplir con el número deseado de instancias, tal como se define en la configuración de Capacidad **deseada** de Auto Scaling.

**Un evento de reducción horizontal (terminación) se desarrolla de la siguiente manera:**

Consulte [Habilitación de implementaciones de terminación durante los eventos de reducción horizontal de Auto Scaling](#integrations-aws-auto-scaling-behaviors-hook-enable).

### Cómo se CodeDeploy nombran los grupos de Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling-behaviors-naming"></a>

 

Durante blue/green las implementaciones en una plataforma informática local o de EC2, tiene dos opciones para añadir instancias al entorno de reemplazo (verde):
+  Utilice instancias que ya existan o que cree manualmente. 
+  Utilizar la configuración de un grupo de Amazon EC2 Auto Scaling especificado para definir y crear instancias en un nuevo grupo de Amazon EC2 Auto Scaling. 

 Si elige la segunda opción, le CodeDeploy aprovisiona un nuevo grupo de Amazon EC2 Auto Scaling. Utiliza la siguiente convención para el nombre del grupo: 

```
CodeDeploy_deployment_group_name_deployment_id
```

Por ejemplo, si una implementación con ID `10` implementa un grupo de implementación llamado `alpha-deployments`, el grupo de Amazon EC2 Auto Scaling aprovisionado se llama `CodeDeploy_alpha-deployments_10`. Para obtener más información, consulte [Cree un grupo de despliegues para un despliegue de EC2/local (consola) blue/green](deployment-groups-create-blue-green.md) y [GreenFleetProvisioningOption](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_GreenFleetProvisioningOption.html).

### Orden de ejecución de eventos de enlace de ciclo de vida personalizados
<a name="integrations-aws-auto-scaling-behaviors-hook-order"></a>

Puede añadir sus propios enlaces de ciclo de vida a los grupos de Amazon EC2 Auto Scaling en los CodeDeploy que se realiza la implementación. Sin embargo, el orden en que se ejecutan esos eventos de enlace del ciclo de vida personalizados no se puede predeterminar en relación con los eventos del ciclo de vida de la implementación CodeDeploy predeterminados. Por ejemplo, si agrega un enlace de ciclo de vida personalizado denominado `ReadyForSoftwareInstall` a un grupo de Amazon EC2 Auto Scaling, no podrá saber de antemano si se ejecutará antes del primer evento del ciclo de vida de la implementación predeterminado o después del último CodeDeploy.

Para obtener información sobre cómo añadir enlaces de ciclo de vida personalizados a un grupo de Amazon EC2 Auto Scaling, consulte [Añadir enlaces de ciclo de vida](https://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html#adding-lifecycle-hooks) en la *Guía del usuario de Amazon EC2 Auto Scaling*.

### Eventos de escalado horizontal durante una implementación
<a name="integrations-aws-auto-scaling-behaviors-mixed-environment"></a>

Si se produce un evento de escalado horizontal de Auto Scaling mientras está en curso una implementación, las nuevas instancias se actualizarán con la revisión de la aplicación que se implementó antes, no con la última revisión de la aplicación. Si la implementación se realiza correctamente, las instancias antiguas y las instancias recién escaladas horizontalmente hospedarán revisiones de la aplicación diferentes. Para actualizar las instancias con la revisión anterior, inicia CodeDeploy automáticamente una implementación posterior (inmediatamente después de la primera) para actualizar las instancias desactualizadas. Si desea cambiar este comportamiento predeterminado para que las instancias de EC2 desactualizadas permanezcan en la revisión anterior, consulte [Automatic updates to outdated instances](deployment-groups-configure-advanced-options.md#auto-updates-outdated-instances).

Si desea suspender los procesos de escalado horizontal de Amazon EC2 Auto Scaling mientras se llevan a cabo las implementaciones, puede hacerlo mediante una configuración en `common_functions.sh` el script que se utiliza para equilibrar la carga con. CodeDeploy Si `HANDLE_PROCS=true`, los siguientes eventos de escalado automático se suspenden automáticamente durante el proceso de implementación: 
+ AZRebalance
+ AlarmNotification
+ ScheduledActions
+ ReplaceUnhealthy

**importante**  
Solo el. CodeDeployDefault OneAtATime la configuración de despliegue admite esta funcionalidad.

Para obtener más información sobre cómo `HANDLE_PROCS=true` utilizar Amazon EC2 Auto Scaling para evitar problemas de implementación, [consulte el Aviso importante sobre la AutoScaling gestión](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb#important-notice-about-handling-autoscaling-processes) de procesos [aws-codedeploy-samples](https://github.com/awslabs/aws-codedeploy-samples)en GitHub on.

### Eventos de reducción horizontal durante una implementación
<a name="integrations-aws-auto-scaling-behaviors-scale-in"></a>

Si un grupo de Auto Scaling comienza a ampliarse mientras se está realizando una CodeDeploy implementación en ese grupo de Auto Scaling, podría producirse una condición de carrera entre el proceso de finalización (incluidos los eventos del ciclo de vida del despliegue de CodeDeploy terminación) y otros eventos CodeDeploy del ciclo de vida en la instancia de terminación. La implementación en esa instancia específica puede fallar si la instancia se termina antes de que se completen todos los eventos CodeDeploy del ciclo de vida. Además, la CodeDeploy implementación general puede fallar o no, en función de cómo haya establecido el valor **mínimo de hosts en buen** estado en la configuración de la implementación.

### Orden de los eventos en los scripts AWS CloudFormation cfn-init
<a name="integrations-aws-auto-scaling-behaviors-event-order"></a>

Si utiliza `cfn-init` (o `cloud-init`) para ejecutar scripts en instancias basadas en Linux recién aprovisionadas, las implementaciones podrían fallar a menos que controle estrictamente el orden de los eventos que se producen después que se inicia la instancia.

Ese orden debe ser:

1. Se inicia la instancia recién aprovisionada.

1. Se ejecutan todos los scripts de proceso de arranque `cfn-init` hasta su finalización.

1. El CodeDeploy agente comienza.

1. Se implementa la última revisión de la aplicación en la instancia.

Si el orden de los eventos no se controla cuidadosamente, el CodeDeploy agente podría iniciar una implementación antes de que todos los scripts hayan terminado de ejecutarse. 

Para controlar el orden de los eventos, utilice una de estas prácticas recomendadas: 
+ Instale el CodeDeploy agente mediante un `cfn-init` script y colóquelo después de todos los demás scripts.
+ Incluya el CodeDeploy agente en una AMI personalizada y utilice un `cfn-init` script para iniciarlo, colocándolo después de todos los demás scripts.

Para obtener información acerca de cómo usar `cfn-init`, consulte [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html) en la *Guía del usuario de AWS CloudFormation *.

## Uso de una AMI personalizada con CodeDeploy Amazon EC2 Auto Scaling
<a name="integrations-aws-auto-scaling-custom-ami"></a>

Dispone de dos opciones para especificar la AMI base que se debe usar cuando se lancen nuevas instancias de Amazon EC2 en un grupo de Amazon EC2 Auto Scaling:
+ Puede especificar una AMI base personalizada que ya tenga el CodeDeploy agente instalado. Dado que el agente ya está instalado, esta opción lanza las nuevas instancias de Amazon EC2 con mayor rapidez que la otra opción. Sin embargo, esta opción ofrece una mayor probabilidad de que las implementaciones iniciales de las instancias de Amazon EC2 fallen, especialmente si CodeDeploy el agente está desactualizado. Si elige esta opción, le recomendamos que actualice periódicamente el CodeDeploy agente en su AMI personalizada base.
+ Puede especificar una AMI base que no tenga el CodeDeploy agente instalado y tenerlo instalado cada vez que se lance una nueva instancia en un grupo de Amazon EC2 Auto Scaling. Aunque esta opción lanza las nuevas instancias de Amazon EC2 más lentamente que la otra opción, tiene mayor probabilidad de que las implementaciones iniciales de las instancias sean correctas. Esta opción utiliza la versión más reciente del CodeDeploy de agente.

# Integración CodeDeploy con Elastic Load Balancing
<a name="integrations-aws-elastic-load-balancing"></a>

Durante CodeDeploy las implementaciones, un balanceador de carga evita que el tráfico de Internet se dirija a las instancias cuando no están listas, se están implementando actualmente o ya no se necesitan como parte de un entorno. Sin embargo, la función exacta que desempeña el balanceador de cargas depende de si se usa en una blue/green implementación o en una implementación local.

**nota**  
El uso de los balanceadores de carga de Elastic Load Balancing es obligatorio en blue/green las implementaciones y opcional en las implementaciones locales.

## Tipos de Elastic Load Balancing
<a name="integrations-aws-elastic-load-balancing-types"></a>

Elastic Load Balancing proporciona tres tipos de balanceadores de carga que se pueden usar en CodeDeploy las implementaciones: balanceadores de carga clásicos, balanceadores de carga de aplicaciones y balanceadores de carga de red.

Equilibrador de carga clásico  
Las rutas y los equilibrios de carga se encuentran en la capa de transporte (). TCP/SSL) or the application layer (HTTP/HTTPS Es compatible con una VPC.  
Los equilibradores de carga clásicos no son compatibles con las implementaciones de Amazon ECS.

Equilibrador de carga de aplicación  
Enruta y equilibra la carga en la capa de la aplicación (HTTP/HTTPS) y admite el enrutamiento basado en rutas. Puede dirigir las solicitudes a puertos de cada instancia EC2 o instancia de contenedor de su nube privada virtual (VPC).  
 Los grupos objetivo del Equilibrador de carga de aplicación deben tener un tipo de destino `instance` para las implementaciones en instancias EC2 y `IP` para las implementaciones de Fargate. Para obtener más información, consulte [Tipo de destino](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-type). 

Equilibrador de carga de red  
Enruta y equilibra la carga en la capa de transporte (capa 4 de TCP/UDP) basándose en la información de las direcciones que extrae del encabezado del paquete TCP y no de su contenido. Los balanceadores de carga de red pueden gestionar ráfagas de tráfico, conservar la IP de origen del cliente y utilizar una IP fija mientras dura la vida útil del balanceador de carga. 

Para obtener más información sobre los equilibradores de carga de Elastic Load Balancing, consulte los temas siguientes:
+ [¿Qué es Elastic Load Balancing?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [¿Qué es un equilibrador de carga clásico?](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html)
+ [¿Qué es un equilibrador de carga de aplicación?](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
+ [¿Qué es un equilibrador de carga de red?](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)

## Implementaciones azul/verde
<a name="integrations-aws-elastic-load-balancing-blue-green"></a>

Redireccionar el tráfico de instancias detrás de un balanceador de cargas de Elastic Load Balancing es fundamental para CodeDeploy blue/green las implementaciones. 

Durante una blue/green implementación, el balanceador de carga permite enrutar el tráfico a las nuevas instancias de un grupo de implementación en el que se implementó la última revisión de la aplicación (el entorno de reemplazo), de acuerdo con las reglas que especifique, y luego bloquea el tráfico de las instancias antiguas en las que se estaba ejecutando la revisión anterior de la aplicación (el entorno original).

Una vez que las instancias de un entorno de sustitución se hayan registrado en uno o varios equilibradores de carga, se cancela el registro de las instancias del entorno original y, si así lo decide, se terminan las instancias.

Para una blue/green implementación, puede especificar uno o más grupos objetivo de Classic Load Balancers, Application Load Balancer o Network Load Balancer en su grupo de implementación. Usa la CodeDeploy consola o AWS CLI para agregar los balanceadores de carga a un grupo de implementación.

Para obtener más información sobre los equilibradores de carga en blue/green las implementaciones, consulta los siguientes temas:
+ [Configurar un balanceador de carga en Elastic Load Balancing para las implementaciones de CodeDeploy Amazon EC2](deployment-groups-create-load-balancer.md)
+ [Cree una aplicación para una blue/green implementación (consola)](applications-create-blue-green.md)
+ [Cree un grupo de despliegues para un despliegue de EC2/local (consola) blue/green](deployment-groups-create-blue-green.md)

## Implementaciones in situ
<a name="integrations-aws-elastic-load-balancing-in-place"></a>

Durante una implementación local, el balanceador de carga impide que el tráfico de Internet se dirija a la instancia en la está ocurriendo, y la vuelve a poner a disposición una vez finalizada dicha implementación.

Si no se utiliza un balanceador de carga durante una implementación local, es posible que el tráfico de Internet aún se dirija a una instancia durante el proceso de implementación. Como resultado, los clientes podrían encontrarse con aplicaciones web dañadas, incompletas o anticuadas. Cuando utilizas un balanceador de cargas de Elastic Load Balancing con una implementación local, las instancias de un grupo de implementación se cancelan del balanceador de cargas, se actualizan con la última revisión de la aplicación y, a continuación, se vuelven a registrar en el balanceador de cargas como parte del mismo grupo de implementación una vez que la implementación se ha realizado correctamente. CodeDeploy esperará hasta 1 hora para que la instancia se recupere correctamente tras el balanceador de carga. Si el balanceador de carga no marca la instancia como en buen estado durante el período de espera, CodeDeploy pasa a la siguiente instancia o no se realiza la implementación, según la configuración de la implementación.

Para una implementación local, puede especificar uno o más equilibradores de carga clásicos, grupos de destino de equilibrador de carga de aplicación o grupos de destino de equilibrador de carga de red. Puedes especificar los balanceadores de carga como parte de la configuración del grupo de implementación, o puedes usar un script proporcionado por él CodeDeploy para implementar los balanceadores de carga.

### Especificación de un equilibrador de carga de una implementación local mediante un grupo de implementación
<a name="integrations-aws-elastic-load-balancing-in-place-deployment-group"></a>

Para añadir balanceadores de carga a un grupo de implementación, usa la CodeDeploy consola o. AWS CLI Para obtener información sobre cómo especificar un balanceador de carga en un grupo de implementaciones para implementaciones in situ, consulte los siguientes temas:
+ [Creación de una aplicación para una implementación local (consola)](applications-create-in-place.md)
+ [Creación de un grupo de implementación para una implementación local (consola)](deployment-groups-create-in-place.md)
+ [Configurar un balanceador de carga en Elastic Load Balancing para las implementaciones de CodeDeploy Amazon EC2](deployment-groups-create-load-balancer.md)

### Especificación de un equilibrador de carga de una implementación local mediante un script
<a name="integrations-aws-elastic-load-balancing-in-place-script"></a>

Utilice los pasos que se indican en el siguiente procedimiento para usar scripts de ciclo de vida para configurar el balanceo de carga para implementaciones locales.
**nota**  
Deberías usar el CodeDeployDefault. OneAtATime la configuración de despliegue solo cuando se utiliza un script para configurar un equilibrador de carga para un despliegue in situ. No se admiten las ejecuciones simultáneas y las. CodeDeployDefault OneAtATime la configuración garantiza la ejecución en serie de los scripts. Para obtener más información acerca de las configuraciones de implementación, consulte [Trabajar con configuraciones de implementación en CodeDeploy](deployment-configurations.md).

En el repositorio de CodeDeploy muestras GitHub, incluimos instrucciones y ejemplos que puede adaptar para usar los balanceadores de carga de CodeDeploy Elastic Load Balancing. En estos repositorios se incluyen tres scripts de ejemplo (`register_with_elb.sh`, `deregister_from_elb.sh` y `common_functions.sh`) que proporcionan todo el código que necesitará para comenzar. Solo tiene que editar los marcadores de posición de estos tres scripts y después hacer referencia a estos scripts en el archivo `appspec.yml`.

Para configurar las implementaciones in situ en CodeDeploy instancias de Amazon EC2 que estén registradas en los balanceadores de carga de Elastic Load Balancing, haga lo siguiente:

1. Descargue los ejemplos del tipo de balanceador de carga que desea utilizar para una implementación in situ:
   + [Equilibrador de carga clásico](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb)
   + [Equilibrador de carga de aplicación[ o Equilibrador de carga de red](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2) (se puede usar el mismo script para ambos tipos)](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2)

1. Asegúrese de que cada una de las instancias de Amazon EC2 de destino la AWS CLI tenga instalada. 

1. Asegúrese de que cada una de sus instancias de Amazon EC2 de destino tenga un perfil de instancia de IAM asociado con los permisos elasticloadbalancing:\$1 y autoscaling:\$1 como mínimo.

1. En el directorio de código fuente de la aplicación, incluya los scripts de evento de ciclo de vida de implementación (`register_with_elb.sh`, `deregister_from_elb.sh` y `common_functions.sh`).

1. En la `appspec.yml` revisión de la aplicación, proporcione instrucciones CodeDeploy para ejecutar el `register_with_elb.sh` script durante el **ApplicationStart**evento y el `deregister_from_elb.sh` script durante el **ApplicationStop**evento.

1. Si la instancia forma parte de un grupo de Amazon EC2 Auto Scaling, puede omitir este paso.

   En el script `common_functions.sh`:
   + Si utiliza el [Equilibrador de carga clásico](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb), especifique los nombres de los equilibradores de carga de Elastic Load Balancing en `ELB_LIST=""` y realice los cambios que necesite en el resto de la configuración de la implementación en el archivo.
   + Si utiliza el [Equilibrador de carga de aplicación[ o el Equilibrador de carga de red](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2)](https://github.com/awslabs/aws-codedeploy-samples/tree/master/load-balancing/elb-v2), especifique los nombres del grupo de destino de Elastic Load Balancing en `TARGET_GROUP_LIST=""` y realice los cambios que necesite en el resto de la configuración de la implementación en el archivo.

1. Empaquete el código fuente de la aplicación, el archivo `appspec.yml` y los scripts de eventos de ciclo de vida de la implementación en una revisión de la aplicación y después cargue la revisión. Implemente la revisión en las instancias de Amazon EC2. Durante la implementación, los scripts de eventos de ciclo de vida de la implementación cancelarán el registro de la instancia de Amazon EC2 con el equilibrador de carga, esperarán a que se vacíe la conexión y volverán a registrar la instancia de Amazon EC2 con el equilibrador de carga una vez que se complete la implementación.

# Integración con productos y servicios de socios
<a name="integrations-partners"></a>

CodeDeploy tiene una integración integrada para los siguientes productos y servicios de los socios:


|  |  | 
| --- |--- |
| Ansible |  Si ya dispone de un conjunto de manuales de [Ansible](http://www.ansible.com), pero solo necesita un lugar donde ejecutarlos, la plantilla de Ansible CodeDeploy demuestra cómo un par de sencillos enlaces de despliegue pueden garantizar que Ansible esté disponible en la instancia de despliegue local y ejecute los manuales de estrategias. Si ya tienes un proceso para crear y mantener tu inventario, también hay un módulo de Ansible que puedes usar para instalar y ejecutar el agente. CodeDeploy  Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| Atlassian: Bamboo y Bitbucket |  La CodeDeploy tarea de [Bamboo](https://www.atlassian.com/software/bamboo/) comprime el directorio que contiene un AppSpec archivo en un archivo.zip, carga el archivo en Amazon S3 y, a continuación, inicia la implementación de acuerdo con la configuración proporcionada en la aplicación. CodeDeploy  La compatibilidad con Bitbucket de Atlassian te CodeDeploy permite enviar código a las instancias de Amazon EC2 directamente desde la interfaz de usuario de Bitbucket, bajo demanda, a cualquiera de tus grupos de implementación. Esto significa que después de actualizar código en el repositorio Bitbucket, no necesita iniciar sesión en la plataforma de integración continua (CI) o en instancias de Amazon EC2 para ejecutar un proceso de implementación manual.  Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| Chef |  AWS [proporciona dos ejemplos de plantillas para integrar Chef y.](https://www.chef.io/) CodeDeploy El primero es un libro de cocina de Chef que instala e inicia el CodeDeploy agente. Esto permite seguir administrando la infraestructura de host con Chef al utilizar CodeDeploy. La segunda plantilla de ejemplo muestra cómo CodeDeploy organizar la publicación de libros de cocina y recetas con el chef solo en cada nodo. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| CircleCI |  [CircleCI](https://circleci.com/) ofrece un conjunto de herramientas de prueba automatizada y de implementación e integración continuas. Tras crear un rol de IAM AWS para usarlo con CircleCI y configurar los parámetros de despliegue en el archivo circle.yml, puede usar CircleCI CodeDeploy with para crear revisiones de aplicaciones, cargarlas en un bucket de Amazon S3 y, a continuación, iniciar y supervisar las implementaciones. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| CloudBees |  Puede utilizar el complemento de CodeDeploy Jenkins, disponible en DEV @cloud, como acción posterior a la creación. [CloudBees](https://www.cloudbees.com/) Por ejemplo, puede utilizarlo al final de una canalización de entrega continua para implementar una revisión de aplicación en la flota de servidores. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| Codeship |  Puedes usar [Codeship](https://codeship.com/) para implementar las revisiones de las aplicaciones a través de él. CodeDeploy También puede utilizar la interfaz de usuario de Codeship para añadir CodeDeploy a una canalización de implementación de una ramificación. Más información:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| GitHub |  Se puede utilizar CodeDeploy para implementar revisiones de aplicaciones desde [GitHub](http://www.github.com)los repositorios. También puede activar un despliegue desde un GitHub repositorio siempre que se modifique el código fuente de ese repositorio. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
|  **HashiCorp Cónsul**  |  Puede utilizar la herramienta HashiCorp Consul de código abierto para garantizar el buen estado y la estabilidad de su entorno de aplicaciones al implementar aplicaciones en él. CodeDeploy Utilice Consul para registrar las aplicaciones a descubrir durante la implementación, cambiar las aplicaciones y los nodos a modo de mantenimiento para que las implementaciones los omitan y detener las implementaciones en caso de que las instancias de destino no funcionen correctamente. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| Jenkins |  El complemento de CodeDeploy [Jenkins](http://jenkins-ci.org/) proporciona un paso posterior a la compilación para su proyecto de Jenkins. Después de finalizar una compilación correctamente, comprime el espacio de trabajo, carga en Amazon S3 y comienza una nueva implementación. Más información:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| Puppet Labs |  AWS proporciona plantillas de muestra para [Puppet](https://puppetlabs.com/) y. CodeDeploy El primero es un módulo de Puppet que instala e inicia el agente. CodeDeploy Esto permite seguir administrando la infraestructura de host con Puppet al utilizar CodeDeploy. La segunda plantilla de ejemplo muestra cómo CodeDeploy organizar la ejecución de módulos y manifiestos con una marioneta sin maestro en cada nodo. Más información:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| SaltStack |  Puede integrar la [SaltStack](https://saltproject.io/index.html)infraestructura con CodeDeploy. Puedes usar el CodeDeploy módulo para instalar y ejecutar el CodeDeploy agente en tus minions o, con un par de sencillos enlaces de despliegue, puedes usarlo CodeDeploy para organizar el funcionamiento de tus Salt States. Más información:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
|  **TeamCity**  |  Puedes usar el plugin CodeDeploy Runner para desplegar aplicaciones directamente desde. TeamCity El complemento añade un paso de TeamCity compilación que prepara y carga una revisión de la aplicación en un bucket de Amazon S3, registra la revisión en una CodeDeploy aplicación, crea una CodeDeploy implementación y, si así lo desea, espera a que se complete la implementación. Más información: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 
| Travis CI |  Puede configurar [Travis CI](https://travis-ci.com/) para que active una implementación CodeDeploy después de una compilación correcta. Más información:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codedeploy/latest/userguide/integrations-partners.html)  | 

**Topics**
+ [GitHub](integrations-partners-github.md)

# Integración CodeDeploy con GitHub
<a name="integrations-partners-github"></a>

CodeDeploy supports [GitHub](https://github.com/about), un servicio de alojamiento e intercambio de código basado en la web. CodeDeploy puede implementar en las instancias revisiones de aplicaciones almacenadas en GitHub repositorios o buckets de Amazon S3. CodeDeploy solo es compatible con GitHub implementaciones locales de EC2.

**Topics**
+ [Implementación de revisiones desde CodeDeploy GitHub](#github-deployment-steps)
+ [GitHub comportamientos con CodeDeploy](#github-behaviors)

## Implementación de revisiones desde CodeDeploy GitHub
<a name="github-deployment-steps"></a>

Para implementar una revisión de una aplicación desde un GitHub repositorio a las instancias:

1. Cree una revisión que sea compatible con CodeDeploy el tipo de instancia de Amazon EC2 en el que realizará la implementación.

   Para crear una revisión compatible, siga las instrucciones indicadas en [Planificación de una revisión de CodeDeploy](application-revisions-plan.md) y [Añadir un archivo de especificaciones de la aplicación a una revisión de CodeDeploy](application-revisions-appspec-file.md). 

1. Utilice una GitHub cuenta para añadir la revisión a un GitHub repositorio.

   Para crear una GitHub cuenta, consulte [Unirse GitHub](https://github.com/join). Para crear un GitHub repositorio, consulta [Crear un repositorio](https://help.github.com/articles/create-a-repo/).

1. Utilice la página **Crear despliegue** de la CodeDeploy consola o el AWS CLI **create-deployment** comando para implementar la revisión desde el GitHub repositorio en las instancias de destino configuradas para su uso en CodeDeploy las implementaciones.

   Si desea **create-deployment** ejecutar el comando, primero debe usar la página **Crear despliegue** de la consola para dar CodeDeploy permiso para interactuar GitHub en nombre de la GitHub cuenta que prefiera para la aplicación especificada. Solamente es necesario hacerlo una vez para cada aplicación.

   Para obtener información sobre cómo utilizar la página **Crear despliegue** para realizar un despliegue desde un GitHub repositorio, consulte[Cree una implementación con CodeDeploy](deployments-create.md).

   Para obtener información sobre cómo **create-deployment** ejecutar el comando para implementar desde un GitHub repositorio, consulte[Creación de una implementación en una plataforma de informática EC2/en las instalaciones (CLI)](deployments-create-cli.md).

   Para obtener información sobre cómo preparar las instancias para su uso en CodeDeploy las implementaciones, consulte[Trabajar con instancias para CodeDeploy](instances.md).

Para obtener más información, consulte [Tutorial: Se utiliza CodeDeploy para implementar una aplicación desde GitHub](tutorials-github.md).

## GitHub comportamientos con CodeDeploy
<a name="github-behaviors"></a>

**Topics**
+ [GitHub autenticación con aplicaciones en CodeDeploy](#behaviors-authentication)
+ [CodeDeploy interacción con repositorios públicos GitHub y privados](#behaviors-interactions-private-and-public)
+ [CodeDeploy interacción con los repositorios gestionados por la organización GitHub](#behaviors-interactions-organization-managed)
+ [Implemente automáticamente desde CodePipeline con CodeDeploy](#behaviors-deploy-automatically)

### GitHub autenticación con aplicaciones en CodeDeploy
<a name="behaviors-authentication"></a>

Tras conceder el CodeDeploy permiso para interactuar con ella GitHub, la asociación entre esa GitHub cuenta y la aplicación se almacena en CodeDeploy. Puede vincular la aplicación a una GitHub cuenta diferente. También puedes revocar el permiso CodeDeploy para interactuar con GitHub ella.

**Para vincular una GitHub cuenta a una aplicación en CodeDeploy**

1. Inicie sesión en Consola de administración de AWS y abra la CodeDeploy consola en [https://console.aws.amazon.com/codedeploy.](https://console.aws.amazon.com/codedeploy)
**nota**  
Inicie sesión con el mismo usuario que configuró en [Empezar con CodeDeploy](getting-started-codedeploy.md).

1. En el panel de navegación, expanda **Implementar** y, después, elija **Aplicaciones**.

1. Elige la aplicación que quieres vincular a una cuenta diferente GitHub.

1. Si la aplicación no tiene un grupo de implementación, elija **Crear grupo de implementación** para crear uno. Para obtener más información, consulte [Cree un grupo de despliegue con CodeDeploy](deployment-groups-create.md). Se requiere un grupo de implementaciones para elegir **Create deployment (Crear implementación)** en el paso siguiente.

1.  En **Deployments (Implementaciones)**, elija **Create deployment (Crear implementación)**. 
**nota**  
No es necesario crear una nueva implementación. Actualmente, esta es la única forma de vincular una GitHub cuenta diferente a una aplicación.

1.  En **Configuración de despliegue**, en **Tipo de revisión**, seleccione **Mi aplicación está almacenada en GitHub**. 

1. Realice una de las siguientes acciones:
   + Para crear una conexión de AWS CodeDeploy aplicaciones a una GitHub cuenta, cierre sesión GitHub en una pestaña independiente del navegador web. En **nombre de GitHub token**, escriba un nombre para identificar esta conexión y, a continuación, elija **Conectar a GitHub**. La página web le pide que autorice CodeDeploy la interacción con GitHub su aplicación. Continúe en el paso 10.
   + Para usar una conexión que ya haya creado, en el **nombre del GitHub token**, seleccione su nombre y, a continuación, elija **Conectar a GitHub**. Continúe en el paso 8.
   + Para crear una conexión a otra GitHub cuenta, cierra sesión GitHub en otra pestaña del navegador web. En **nombre de GitHub token**, escriba un nombre para identificar la conexión y, a continuación, elija **Conectar a GitHub**. La página web le pide que autorice CodeDeploy la interacción con GitHub su aplicación. Continúe en el paso 10.

1. Si aún no ha iniciado sesión GitHub, siga las instrucciones de la página de inicio de **sesión** para iniciar sesión con la GitHub cuenta a la que desee vincular la aplicación.

1. Selecciona **Autorizar la aplicación**. GitHub da CodeDeploy permiso para interactuar GitHub en nombre de la GitHub cuenta en la que se ha iniciado sesión en la aplicación seleccionada. 

1. Si no desea crear una implementación, elija **Cancel**.

**Para revocar el permiso para interactuar con CodeDeploy GitHub**

1. Inicie sesión para [GitHub ](https://github.com/dashboard)usar las credenciales de la GitHub cuenta en la que desea revocar el permiso AWS CodeDeploy .

1. Abra la página de GitHub [solicitudes](https://github.com/settings/applications), busque **CodeDeploy**en la lista de aplicaciones autorizadas y, a continuación, siga el GitHub procedimiento para revocar la autorización de una solicitud.

### CodeDeploy interacción con repositorios públicos GitHub y privados
<a name="behaviors-interactions-private-and-public"></a>

CodeDeploy admite el despliegue de aplicaciones desde GitHub repositorios públicos y privados. Cuando des CodeDeploy permiso para acceder GitHub en tu nombre, CodeDeploy tendrás acceso de lectura y escritura a todos los GitHub repositorios privados a los que tenga acceso tu GitHub cuenta. Sin embargo, CodeDeploy solo lee de los repositorios. GitHub No escribirá en ninguno de tus GitHub repositorios privados.

### CodeDeploy interacción con los repositorios gestionados por la organización GitHub
<a name="behaviors-interactions-organization-managed"></a>

De forma predeterminada, GitHub los repositorios gestionados por una organización (a diferencia de los repositorios privados o públicos de tu cuenta) no permiten el acceso a aplicaciones de terceros, incluidas las siguientes: CodeDeploy La implementación fallará si las restricciones de aplicaciones de terceros de una organización están habilitadas GitHub e intentas implementar código desde su GitHub repositorio. Existen dos maneras de resolver este problema. 
+ Como miembro de la organización, puede solicitar al responsable que apruebe el acceso para CodeDeploy. Los pasos para solicitar este acceso dependen de si ya has autorizado CodeDeploy tu cuenta individual:
  + Si has autorizado el acceso a CodeDeploy tu cuenta, consulta Cómo [solicitar la aprobación de la organización para tus solicitudes autorizadas](https://help.github.com/articles/requesting-organization-approval-for-your-authorized-applications/).
  + Si aún no has autorizado el acceso a CodeDeploy tu cuenta, consulta Cómo [solicitar la aprobación de una organización para aplicaciones de terceros](https://help.github.com/articles/requesting-organization-approval-for-third-party-applications/).
+ El responsable de la organización puede deshabilitar todas las restricciones a las aplicaciones de terceros. Para obtener información al respecto, consulte [Desactivación de las restricciones a las aplicaciones de terceros en una organización](https://help.github.com/articles/disabling-third-party-application-restrictions-for-your-organization/).

Para obtener más información, consulte [Acerca de las restricciones a las aplicaciones de terceros](https://help.github.com/articles/about-third-party-application-restrictions/).

### Implemente automáticamente desde CodePipeline con CodeDeploy
<a name="behaviors-deploy-automatically"></a>

Puede activar un despliegue desde a CodePipeline cada vez que cambie el código fuente. Para obtener más información, consulte [CodePipeline](https://aws.amazon.com/codepipeline/).

# Ejemplos de integración de la comunidad
<a name="integrations-community"></a>

En las siguientes secciones se incluyen enlaces a entradas de blogs, artículos y ejemplos proporcionados en la comunidad.

**nota**  
Estos enlaces se ofrecen solo con fines informativos y no deben considerarse una lista completa o una anotación del contenido de los ejemplos. AWS no se hace responsable del contenido ni de la exactitud del contenido externo. 

## Publicaciones de blog
<a name="integrations-community-blogposts"></a>
+ [Automatizar CodeDeploy el aprovisionamiento en CloudFormation](http://www.stelligent.com/cloud/automating-aws-codedeploy-provisioning-in-cloudformation/)

  Aprenda a aprovisionar el despliegue de una aplicación CodeDeploy mediante el uso de. CloudFormation

  *Fecha de publicación: enero de 2016*
+ [AWS Toolkit for Eclipse Integración con CodeDeploy (parte 1)](https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-integration-with-aws-codedeploy-part-1/)

  [AWS Toolkit for Eclipse Integración con CodeDeploy (parte 2)](https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-integration-with-aws-codedeploy-part-2/)

  [AWS Toolkit for Eclipse Integración con CodeDeploy (parte 3)](https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-integration-with-aws-codedeploy-part-3/)

  Descubra cómo los desarrolladores de Java pueden usar el CodeDeploy complemento de Eclipse para implementar aplicaciones web AWS directamente desde los entornos de desarrollo de Eclipse.

  *Fecha de publicación: febrero de 2015*
+ [Implemente automáticamente a partir del GitHub uso CodeDeploy](https://aws.amazon.com/blogs/devops/automatically-deploy-from-github-using-aws-codedeploy/)

  Descubra cómo se CodeDeploy pueden utilizar las implementaciones automáticas desde GitHub hasta para crear una end-to-end canalización, desde el control de código fuente hasta sus entornos de prueba o producción. 

  *Fecha de publicación: diciembre de 2014*