505
AWS CodeDeploy Guía del usuario Versión de API 2014-10-06

AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeployGuía del usuario

Versión de API 2014-10-06

Page 2: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

AWS CodeDeploy: Guía del usuarioCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Table of Contents¿Qué es CodeDeploy? ........................................................................................................................ 1

Vídeo de introducción a AWS CodeDeploy ..................................................................................... 2Ventajas de AWS CodeDeploy ..................................................................................................... 2Información general sobre las plataformas de computación de CodeDeploy ......................................... 2Información general de los tipos de implementación de CodeDeploy ................................................... 7

Información general de la implementación in situ ..................................................................... 8Información general de la implementación blue/green ............................................................... 9

Esperamos tener noticias suyas .................................................................................................. 13Componentes principales ........................................................................................................... 13Implementaciones ..................................................................................................................... 17

Implementaciones en una AWS Lambda Plataforma de computación ........................................ 17Implementaciones en una Amazon ECS Plataforma de computación ........................................ 20Implementaciones en una EC2/On-Premises Plataforma de computación ................................... 29

Archivos de especificación de la aplicación ................................................................................... 34Archivos AppSpec en una Amazon ECS Plataforma de computación ....................................... 35Archivos AppSpec en una plataforma de computación AWS Lambda ........................................ 35Archivos AppSpec en una plataforma de computación EC2/On-Premises ................................... 35Cómo el agente de CodeDeploy utiliza el archivo AppSpec .................................................... 36

Introducción ..................................................................................................................................... 37Paso 1: Aprovisionar un usuario de IAM ....................................................................................... 37Paso 2: Instalar o actualizar y, a continuación, configurar la AWS CLI ............................................... 38Paso 3: Crear un rol de servicio ................................................................................................. 39

Creación de un rol de servicio (consola) ............................................................................... 40Creación de un rol de servicio (CLI) .................................................................................... 42Obtención del ARN del rol de servicio (consola) .................................................................... 43Obtención del ARN del rol de servicio (CLI) .......................................................................... 44

Paso 4: Crear un perfil de instancia de IAM .................................................................................. 44Creación de un perfil de instancia de IAM para las instancias Amazon EC2 (CLI) ........................ 44Creación de un perfil de instancia de IAM para las instancias Amazon EC2 (consola) ................... 47

Integraciones de productos y servicios ................................................................................................. 49Integración con otros servicios de AWS ....................................................................................... 49

Amazon EC2 Auto Scaling ................................................................................................. 54Elastic Load Balancing ...................................................................................................... 57

Integración con productos y servicios de socios ............................................................................ 60GitHub ............................................................................................................................. 64

Ejemplos de integración de la comunidad ..................................................................................... 67Entradas de blogs ............................................................................................................. 67Vídeos ............................................................................................................................. 68

Tutoriales ......................................................................................................................................... 69Tutorial: Implementación de WordPress en una instancia sin Windows .............................................. 69

Paso 1: Lanzar una instancia Amazon EC2 .......................................................................... 70Paso 2: Configurar su contenido de origen ........................................................................... 72Paso 3: Cargar la aplicación en Amazon S3 ......................................................................... 75Paso 4: Implementar la aplicación ....................................................................................... 79Paso 5: Actualizar y volver a implementar la aplicación .......................................................... 83Paso 6: Limpeza ............................................................................................................... 86

Tutorial: Implementación de una aplicación Hello World en una instancia de Windows Server ................ 88Paso 1: Lanzar una instancia Amazon EC2 .......................................................................... 89Paso 2: Configurar su contenido de origen ........................................................................... 91Paso 3: Cargar la aplicación en Amazon S3 ......................................................................... 93Paso 4: Implementar la aplicación ....................................................................................... 96Paso 5: Actualizar y volver a implementar la aplicación ......................................................... 100Paso 6: Limpieza ............................................................................................................ 102

Tutorial: Implementación de una aplicación en una instancia on-premises ........................................ 104

Versión de API 2014-10-06iii

Page 4: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Requisitos previos ........................................................................................................... 105Paso 1: Configurar la instancia on-premises ........................................................................ 105Paso 2: Crear una revisión de aplicación de ejemplo ............................................................ 105Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3 .................................. 109Paso 4: Implementar la revisión de la aplicación .................................................................. 109Paso 5: Comprobar la implementación ............................................................................... 109Paso 6: Limpiar los recursos ............................................................................................. 110

Tutorial: Implementación en un grupo de Amazon EC2 Auto Scaling ............................................... 111Requisitos previos ........................................................................................................... 112Paso 1: Crear y configurar el grupo de Amazon EC2 Auto Scaling .......................................... 112Paso 2: Implementar la aplicación en el grupo Amazon EC2 Auto Scaling ................................ 116Paso 3: Comprobar los resultados ..................................................................................... 122Paso 4: Aumentar el número de instancias Amazon EC2 en el grupo de Amazon EC2 AutoScaling .......................................................................................................................... 123Paso 5: Comprobar los resultados de nuevo ....................................................................... 124Paso 6: Eliminación ......................................................................................................... 126

Tutorial: Implementación de una aplicación desde GitHub ............................................................. 128Requisitos previos ........................................................................................................... 128Paso 1: Configurar una cuenta de GitHub ........................................................................... 128Paso 2: Crear un repositorio de GitHub .............................................................................. 129Paso 3: Cargar una aplicación de ejemplo en el repositorio de GitHub ..................................... 130Paso 4: Aprovisionar una instancia .................................................................................... 133Paso 5: Crear una aplicación y un grupo de implementaciones ............................................... 134Paso 6: Implementar la aplicación en la instancia ................................................................ 135Paso 7: Monitorizar y comprobar la implementación ............................................................. 138Paso 8: Limpieza ............................................................................................................ 139

Tutorial: Implementación de un servicio de Amazon ECS .............................................................. 140Requisitos previos ........................................................................................................... 142Paso 1: Actualización de la aplicación de Amazon ECS ....................................................... 142Paso 2: Creación del archivo AppSpec .............................................................................. 143Paso 3: Uso de la consola de CodeDeploy para implementar el servicio de Amazon ECS ........... 144Paso 4: Eliminación ......................................................................................................... 147

Tutorial: Implementación de un servicio de Amazon ECS con una prueba de validación ...................... 148Requisitos previos ........................................................................................................... 150Paso 1: Creación de un agente de escucha de prueba ........................................................ 150Paso 2: Actualización de la aplicación de Amazon ECS ....................................................... 150Paso 3: Creación de una función de Lambda de enlace de ciclo de vida .................................. 151Paso 4: Actualización del archivo AppSpec ........................................................................ 153Paso 5: Uso de la consola de CodeDeploy para implementar el servicio de Amazon ECS ........... 154Paso 6: Visualización de la salida de la función de enlace de Lambda en CloudWatch Logs ......... 155Paso 7: Eliminación ......................................................................................................... 156

Tutorial: Implementación de una función de Lambda mediante AWS SAM ........................................ 157Requisitos previos ........................................................................................................... 157Paso 1: Configuración de la infraestructura ......................................................................... 157Paso 2: Actualización de la función de Lambda ................................................................... 168Paso 3: Implementación de la función Lambda actualizada .................................................... 169Paso 4: Visualización de los resultados de la implementación ................................................ 172Paso 5: Eliminación ......................................................................................................... 174

Trabajar con el agente de CodeDeploy .............................................................................................. 176Sistemas operativos admitidos por el agente de CodeDeploy ......................................................... 176

Sistemas operativos de AMI de Amazon EC2 compatibles ..................................................... 176Sistemas operativos on-premises compatibles ..................................................................... 177

Protocolo y puerto de comunicación para el agente de CodeDeploy ................................................ 177Historial de versiones del agente de CodeDeploy ......................................................................... 177Limpieza de revisiones de aplicación y archivos log ..................................................................... 181Archivos instalados por el agente de CodeDeploy ........................................................................ 182Gestión de las operaciones del agente de CodeDeploy ................................................................. 184

Versión de API 2014-10-06iv

Page 5: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Comprobación de que el agente de CodeDeploy se está ejecutando ....................................... 184Determinación de la versión del agente de CodeDeploy ........................................................ 186Instalación del agente de CodeDeploy ................................................................................ 187Actualización del agente de CodeDeploy ............................................................................ 195Desinstalación del agente de CodeDeploy .......................................................................... 201

Trabajar con instancias .................................................................................................................... 202Comparación de las instancias Amazon EC2 y las instancias on-premise ......................................... 202Tareas de instancias para CodeDeploy ...................................................................................... 203Instancias de etiquetado para implementaciones en CodeDeploy .................................................... 204

Ejemplo 1: un único grupo de etiquetas, una única etiqueta ................................................... 205Ejemplo 2: un único grupo de etiquetas, varias etiquetas ....................................................... 206Ejemplo 3: varios grupos de etiquetas, etiquetas únicas ........................................................ 207Ejemplo 4: varios grupos de etiquetas, varias etiquetas ......................................................... 209

Trabajar con instancias Amazon EC2 ......................................................................................... 211Creación de una instancia Amazon EC2 para CodeDeploy .................................................... 212Creación de una instancia Amazon EC2 (plantilla de AWS CloudFormation) ............................. 216Configuración de una instancia Amazon EC2 ...................................................................... 223

Trabajar con instancias on-premise ............................................................................................ 226Requisitos previos para configurar una instancia on-premise .................................................. 226Registrar una instancia on-premise .................................................................................... 227Cómo administrar operaciones de instancias on-premises ..................................................... 249

Visualización de los detalles de la instancia ................................................................................ 254Ver detalles de la instancia (consola) ................................................................................. 254Ver los detalles de la instancia (CLI) .................................................................................. 255

Estado de las instancias .......................................................................................................... 255Estado de mantenimiento ................................................................................................. 256Instancias e implementaciones mínimas en buen estado ....................................................... 257

Uso de configuraciones de implementación ......................................................................................... 260Configuraciones de implementación en una plataforma de computación EC2/On-Premises ................. 260

Configuraciones de implementación predefinidas ................................................................. 260Configuraciones de implementación en una plataforma de computación de Amazon ECS ................... 263

Configuraciones de implementación predefinidas de Amazon ECS ......................................... 263Configuraciones de implementación para implementaciones blue/green (azul/verde) de AWSCloudFormation (Amazon ECS) ................................................................................................. 264Configuraciones de implementación en una plataforma de computación AWS Lambda ...................... 264

Configuraciones de implementación predefinidas de Lambda ................................................ 265............................................................................................................................................ 265

Creación de una configuración de implementación ....................................................................... 265Consulta de los detalles de las configuraciones de implementación ................................................. 266

Consulta de los detalles de las configuraciones de implementación (consola) ............................ 267Consulta de la configuración de implementación (CLI) .......................................................... 267

Eliminación de una configuración de implementación .................................................................... 267Trabajar con aplicaciones ................................................................................................................. 269

Creación de una aplicación ...................................................................................................... 270Creación de una aplicación para una implementación in situ (consola) ..................................... 271Creación de una aplicación para una implementación blue/green (consola) ............................... 273Creación de una aplicación para la implementación de una servicio de Amazon ECS (consola) .... 276Creación de una aplicación para la implementación de una función de AWS Lambda (consola) .... 278Creación de una aplicación (CLI) ....................................................................................... 279

Visualización de los detalles de la aplicación ............................................................................... 280Ver los detalles de la aplicación (Consola) .......................................................................... 280Ver los detalles de la aplicación (CLI) ................................................................................ 280

Creación de una regla de notificación ........................................................................................ 280Cambiar el nombre de una aplicación ........................................................................................ 282Eliminación de una aplicación ................................................................................................... 283

Eliminar una aplicación (consola) ....................................................................................... 283Eliminar una aplicación (AWS CLI) .................................................................................... 283

Versión de API 2014-10-06v

Page 6: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Trabajar con grupos de implementación ............................................................................................. 284Grupos de implementaciones en las implementaciones en la plataforma de computación Amazon ECS . 284Grupos de implementaciones en las implementaciones en la plataforma de computación AWS Lambda . 284Grupos de implementaciones en implementaciones EC2/On-Premises Plataforma de computación ....... 284............................................................................................................................................ 285

Creación de un grupo de implementaciones ................................................................................ 285Creación de un grupo de implementaciones para una implementación in situ (consola) ............... 286Creación de un grupo de implementaciones para una implementación blue/green de EC2/On-Premises (Consola) ......................................................................................................... 288Creación de un grupo de implementaciones para una implementación de Amazon ECS(Consola) ....................................................................................................................... 291Configuración de un balanceador de carga en Elastic Load Balancing para implementaciones deAmazon EC2 de CodeDeploy ........................................................................................... 293Configuración de un balanceador de carga, grupos de destino y agentes de escucha para laimplementación de Amazon ECS de CodeDeploy ................................................................ 293Creación de un grupo de implementaciones (CLI) ................................................................ 297

Visualización de los detalles de un grupo de implementaciones ...................................................... 298Ver los detalles del grupo de implementaciones (consola) ..................................................... 298Ver los detalles del grupo de implementaciones (CLI) ........................................................... 299

Cambio de la configuración de un grupo de implementaciones ....................................................... 299Cambie la configuración del grupo de implementaciones (consola) .......................................... 299Cambie la configuración del grupo de implementaciones (CLI) ............................................... 300

Configuración de las opciones avanzadas de un grupo de implementaciones .................................... 301Eliminación de un grupo de implementaciones ............................................................................. 303

Eliminar un grupo de implementaciones (consola) ................................................................ 303Eliminar un grupo de implementaciones (CLI) ...................................................................... 303

Gestión de revisiones de aplicaciones ................................................................................................ 304Planear una revisión ................................................................................................................ 304Adición de un AppSpec File ..................................................................................................... 305

Adición de un archivo AppSpec para una implementación de Amazon ECS ............................. 305Adición de un archivo AppSpec para una implementación de AWS Lambda .............................. 307Adición de un archivo AppSpec para una implementación de EC2/On-Premises ........................ 309

Elección de un tipo de repositorio .............................................................................................. 311Envío de una revisión .............................................................................................................. 313

Envío de una revisión usando la AWS CLI .......................................................................... 315Visualización de los detalles de una revisión de aplicación ............................................................ 316

Visualización de los detalles de una revisión de aplicación (consola) ....................................... 316Visualización de los detalles de una revisión de aplicación (CLI) ............................................. 317

Registro de una revisión de una aplicación ................................................................................. 317Registro de una revisión en Amazon S3 con CodeDeploy (CLI) .............................................. 318Registro de una revisión en GitHub con CodeDeploy (CLI) .................................................... 319

Uso de las implementaciones ........................................................................................................... 320Crear una implementación ........................................................................................................ 321

Requisitos previos para una implementación ....................................................................... 321Creación de una implementación Amazon ECS Plataforma de computación (consola) ............... 324Creación de una implementación AWS Lambda Plataforma de computación (consola) ................ 325Creación de una implementación EC2/On-Premises Plataforma de computación (consola) .......... 327Creación de una implementación Amazon ECS Plataforma de computación (CLI) ..................... 330Creación de una implementación AWS Lambda Plataforma de computación (CLI) ..................... 331Creación de una implementación EC2/On-Premises Plataforma de computación (CLI) ................ 332Crear una implementación blue/green (azul/verde) de Amazon ECS a través de AWSCloudFormation ............................................................................................................... 335

Visualización de los detalles de las implementaciones .................................................................. 337Ver los detalles de las implementaciones (consola) .............................................................. 338Ver los detalles de las implementaciones (CLI) .................................................................... 338

Visualización de los datos de registro de una implementación ........................................................ 339Visualización de los datos del archivo de log en la consola de Amazon CloudWatch ................... 339

Versión de API 2014-10-06vi

Page 7: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Visualización de los archivos de log de una instancia ........................................................... 339Detener una implementación ..................................................................................................... 341

Detener una implementación (consola) ............................................................................... 342Detener una implementación (CLI) ..................................................................................... 342

Volver a implementar y restaurar una implementación .................................................................. 342Restauraciones automáticas ............................................................................................. 343Restauraciones manuales ................................................................................................. 343Flujo de trabajo de la restauración y reimplementación ......................................................... 343Comportamiento de la restauración con contenido existente .................................................. 344

Implementar una aplicación en otra cuenta de AWS ..................................................................... 346Paso 1: Crear un bucket de S3 en cualquiera de las cuentas ................................................. 347Paso 2: Conceder permisos de bucket de Amazon S3 al perfil de instancia de IAM de la cuentade producción ................................................................................................................. 347Paso 3: Crear recursos y un rol entre cuentas en la cuenta de producción ................................ 348Paso 4: Cargar la revisión de la aplicación al bucket de Amazon S3 ........................................ 349Paso 5: Asumir el rol entre cuentas e implementar las aplicaciones ......................................... 349

Validación de un paquete de implementación en una máquina local ................................................ 349Requisitos previos ........................................................................................................... 350Creación de una implementación local ............................................................................... 352Ejemplos ........................................................................................................................ 353

Monitorizar implementaciones ........................................................................................................... 355Herramientas automatizadas ..................................................................................................... 355Herramientas manuales ............................................................................................................ 356Monitorizar implementaciones con herramientas de Amazon CloudWatch ......................................... 357

Monitorizar implementaciones con alarmas de CloudWatch ................................................... 357Monitorización de implementaciones con Amazon CloudWatch Events .................................... 359

Monitorización de implementaciones con AWS CloudTrail ............................................................. 361Información de CodeDeploy en CloudTrail .......................................................................... 361Descripción de las entradas de los archivos de registro de CodeDeploy ................................... 362

Monitorización de implementaciones con notificaciones de eventos de Amazon SNS .......................... 363Concesión de permisos de Amazon SNS a un rol de servicio ................................................. 364Creación de un desencadenador para un evento de CodeDeploy ............................................ 365Edición de un desencadenador en un grupo de implementaciones .......................................... 370Eliminación de un desencadenador de un grupo de implementaciones ..................................... 371Formatos de datos JSON de los disparadores ..................................................................... 372

Seguridad ...................................................................................................................................... 374Protección de los datos ............................................................................................................ 374

Privacidad del tráfico entre redes ...................................................................................... 375Cifrado en reposo ........................................................................................................... 375Cifrado en tránsito ........................................................................................................... 375Administración de claves de cifrado ................................................................................... 376

Identity and Access Management .............................................................................................. 376Público .......................................................................................................................... 376Autenticación con identidades ........................................................................................... 376Administración de acceso mediante políticas ....................................................................... 378Funcionamiento de AWS CodeDeploy con IAM .................................................................... 380Ejemplos de políticas basadas en identidad ........................................................................ 383Solución de problemas ..................................................................................................... 391Referencia de permisos de CodeDeploy ............................................................................. 392

Respuesta frente a incidencias .................................................................................................. 399Auditoría de todas las interacciones con CodeDeploy ........................................................... 399Administración de incidentes y alertas ................................................................................ 399

Validación de la conformidad .................................................................................................... 400Resiliencia .............................................................................................................................. 400Seguridad de la infraestructura .................................................................................................. 400

Referencia del archivo AppSpec ........................................................................................................ 402Archivos AppSpec en una plataforma de computación Amazon ECS .............................................. 402

Versión de API 2014-10-06vii

Page 8: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Archivos AppSpec en una plataforma de computación AWS Lambda .............................................. 402Archivos AppSpec en una plataforma de computación EC2/On-Premises ......................................... 403Estructura de AppSpec File ...................................................................................................... 403

Estructura de un archivo AppSpec para las implementaciones de Amazon ECS ....................... 403Estructura de un archivo AppSpec para las implementaciones de AWS Lambda ........................ 404Estructura de un archivo AppSpec para las implementaciones de EC2/On-Premises .................. 405Sección "files" de AppSpec (solo para implementaciones de EC2/On-Premises) ........................ 406Sección "resources" de AppSpec (solo para implementaciones de Amazon ECS y AWSLambda) ........................................................................................................................ 409Sección "permissions" de AppSpec (solo para implementaciones de EC2/On-Premises) ............. 411Sección "hooks" de AppSpec ............................................................................................ 416

Ejemplo de AppSpec File ......................................................................................................... 429AppSpec File Ejemplo de una implementación de Amazon ECS ............................................ 429AppSpec File Ejemplo de una implementación de AWS Lambda ............................................ 431AppSpec File Ejemplo de una implementación de EC2/On-Premises ...................................... 432

Espaciado de AppSpec File ...................................................................................................... 432Validar el objeto AppSpec File y la ubicación del archivo ............................................................... 434

Referencia de configuración del agente .............................................................................................. 435Temas relacionados ................................................................................................................ 437

Referencia de plantillas de AWS CloudFormation ................................................................................. 438Referencia del kit de recursos ........................................................................................................... 441

Nombres de bucket del kit de recursos por región ........................................................................ 441Contenido del kit de recursos ................................................................................................... 442Mostrar una lista de los archivos del kit de recursos ..................................................................... 443Descargar los archivos del kit de recursos .................................................................................. 444

Límites ........................................................................................................................................... 447Aplicaciones ........................................................................................................................... 447Revisiones de aplicaciones ....................................................................................................... 447Implementaciones .................................................................................................................... 448Configuraciones de implementación ........................................................................................... 449Grupos de implementaciones .................................................................................................... 450Instancias ............................................................................................................................... 450

Solución de problemas ..................................................................................................................... 451Solución de problemas generales .............................................................................................. 451

Lista de comprobación de solución de problemas generales .................................................. 451Los recursos de implementación de CodeDeploy solo se admiten en algunas regiones de AWS ... 453Los procedimientos de esta guía no sirven para la consola de CodeDeploy .............................. 453Los roles de IAM necesarios no están disponibles ............................................................... 453El uso de algunos editores de texto para crear archivos AppSpec y scripts del shell produce unerror en las implementaciones .......................................................................................... 453El uso de Finder en macOS para empaquetar una revisión de la aplicación puede producir unerror en la implementación ............................................................................................... 454

Solución de problemas de las implementaciones de EC2/On-Premises ............................................ 454La implementación produce un error con el mensaje “Validation of PKCS7 signed messagefailed” ............................................................................................................................ 455La implementación o la reimplementación de los mismos archivos en la misma instanciaproducen el error "The deployment failed because a specified file already exists at this location" ... 455Solución de problemas con un evento de ciclo de vida AllowTraffic que ha producido un error noregistrado en los registros de implementación ..................................................................... 457Solución de problemas con los eventos de ciclo de vida de la implementación ApplicationStop,BeforeBlockTraffic y AfterBlockTraffic que han producido un error ........................................... 458Solución de problemas con un evento de ciclo de vida de la implementación DownloadBundleque ha producido el error "UnknownError: not opened for reading" .......................................... 459El script de Windows PowerShell no puede usar la versión de 64 bits de Windows PowerShell deforma predeterminada ...................................................................................................... 459Los procesos de larga duración pueden producir un error en la implementación ........................ 460Solución de problemas cuando se omiten todos los eventos del ciclo de vida ............................ 461

Versión de API 2014-10-06viii

Page 9: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Error de falta de credenciales en el complemento de CodeDeploy CommandPoller .................... 463Solución de problemas de las implementaciones de AWS Lambda ................................................. 463

Las implementaciones de AWS Lambda no se realizan correctamente si se detienemanualmente una implementación de Lambda que no tiene configuradas las restauraciones ....... 463

Solución de problemas de grupos de implementaciones ................................................................ 464Cuando se etiqueta una instancia como parte de un grupo de implementaciones, no seimplementa automáticamente la aplicación en la nueva instancia ............................................ 464

Solución de problemas de instancias ......................................................................................... 464Las etiquetas deben estar configuradas correctamente ......................................................... 464El agente de AWS CodeDeploy debe estar instalado y ejecutándose en las instancias ................ 464Las implementaciones no producen error hasta una hora después cuando se termina unainstancia durante una implementación ................................................................................ 465Análisis de archivos de registro para investigar los errores de implementación en instancias ........ 465Cree un nuevo archivo log de CodeDeploy si se ha eliminado por error ................................... 465Solución de errores de implementación “InvalidSignatureException – Signature expired: [hora] isnow earlier than [hora]” .................................................................................................... 466

Solución de problemas de token de GitHub ................................................................................ 466Token OAuth de GitHub no válido ..................................................................................... 466Se ha superado el número máximo de tokens de OAuth de GitHub ......................................... 466

Solución de problemas de Amazon EC2 Auto Scaling ................................................................... 466Solución de problemas generales de Amazon EC2 Auto Scaling ............................................. 467Error "CodeDeployRole does not give you permission to perform operations in the followingAWS service: AmazonAutoScaling" .................................................................................... 468Las instancias de un grupo de Amazon EC2 Auto Scaling se aprovisionan y se terminanconstantemente antes de que pueda implementarse una revisión ........................................... 468La terminación o el reinicio de una instancia de Amazon EC2 Auto Scaling puede producir unerror en las implementaciones .......................................................................................... 469Evite asociar varios grupos de implementaciones a un único grupo de Amazon EC2 Auto Scaling . 469Las instancias Amazon EC2 de un grupo de Amazon EC2 Auto Scaling no se pueden lanzar yaparece el error "Heartbeat Timeout" ................................................................................. 470Los enlaces de ciclo de vida de Amazon EC2 Auto Scaling no coincidentes podrían provocardetenciones o errores de las implementaciones automáticas en grupos de Amazon EC2 AutoScaling .......................................................................................................................... 471

Códigos de error ..................................................................................................................... 472Temas relacionados ........................................................................................................ 475

Recursos ....................................................................................................................................... 476Guías de referencia y recursos de soporte .................................................................................. 476Ejemplos ................................................................................................................................ 476Blogs ..................................................................................................................................... 476Kits de desarrollo de software y herramientas de AWS ................................................................. 476

Historial de revisión ......................................................................................................................... 478Actualizaciones anteriores ........................................................................................................ 480

AWS glossary ................................................................................................................................. 496

Versión de API 2014-10-06ix

Page 10: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

¿Qué es CodeDeploy?CodeDeploy es un servicio que automatiza las implementaciones de las aplicaciones en instanciasAmazon EC2, en instancias en las instalaciones o en funciones Lambda sin servidor o servicios AmazonECS.

Puede implementar una variedad de contenidos de aplicación prácticamente ilimitada, entre las que seincluyen:

• Code• Funciones AWS Lambda sin servidor• Archivos de configuración y web• Ejecutables• Paquetes• Scripts• Archivos multimedia

CodeDeploy puede implementar contenido de aplicaciones que se ejecuta en un servidor y se almacenaen buckets de Amazon S3, repositorios de GitHub o repositorios de Bitbucket. CodeDeploy también puedeimplementar una función Lambda sin servidor. No es necesario hacer cambios en el código existente parapoder utilizar CodeDeploy.

CodeDeploy le ayuda a:

• Lanzar rápidamente nuevas características.• Actualizar las versiones de las funciones de AWS Lambda.• Evitar tiempos de inactividad durante la implementación de las aplicaciones.• Gestionar el complejo proceso de actualización de las aplicaciones, evitando muchos de los riesgos

asociados a las implementaciones manuales, que son susceptibles a errores.

El servicio se adapta a su infraestructura, por lo que puede implementar fácilmente en una sola instancia oen miles de ellas.

CodeDeploy funciona con diversos sistemas de administración de configuración, control de código fuente,integración continua, entrega continua e implementación continua. Para obtener más información, consulteIntegraciones de productos.

La consola de CodeDeploy proporciona también una manera rápida de buscar sus recursos, comorepositorios, proyectos de compilación, aplicaciones de implementación y canalizaciones. Elija Go toresource (Ir a recurso) o pulse la tecla / y, a continuación, escriba el nombre del recurso. Se muestrantodas las coincidencias en la lista. En las búsquedas, no se distingue entre mayúsculas y minúsculas. Solopuede ver los recursos para los que tiene permiso. Para obtener más información, consulte Administraciónde identidades y accesos en AWS CodeDeploy (p. 376).

Temas• Vídeo de introducción a AWS CodeDeploy (p. 2)• Ventajas de AWS CodeDeploy (p. 2)• Información general sobre las plataformas de computación de CodeDeploy (p. 2)• Información general de los tipos de implementación de CodeDeploy (p. 7)• Esperamos tener noticias suyas (p. 13)• Componentes principales de CodeDeploy (p. 13)

Versión de API 2014-10-061

Page 11: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVídeo de introducción a AWS CodeDeploy

• Implementaciones de CodeDeploy (p. 17)• Archivos de especificación de la aplicación de CodeDeploy (p. 34)

Vídeo de introducción a AWS CodeDeployEste breve vídeo (2:10) describe cómo CodeDeploy automatiza las implementaciones de código eninstancias Amazon EC2.

Tutorial de vídeo de una implementación de CodeDeploy.

Ventajas de AWS CodeDeployCodeDeploy ofrece las ventajas siguientes:

• Aplicaciones con servidor, sin servidor y de contenedor. CodeDeploy le permite implementar tantoaplicaciones tradicionales basadas en servidores, como aplicaciones que implementan una versión deuna función de AWS Lambda sin servidor o una aplicación de Amazon ECS.

• Implementaciones automatizadas. CodeDeploy automatiza totalmente sus implementaciones de lasaplicaciones en los entornos de desarrollo, pruebas y producción, y se adapta a la infraestructuradisponible, lo que permite implementar en una instancia o en miles de ellas.

• Minimizar el tiempo de inactividad. Si la aplicación utiliza la EC2/On-Premises plataformade computación, CodeDeploy ayuda a maximizar la disponibilidad de la aplicación. En lasimplementaciones in situ, CodeDeploy actualiza de forma continua en las instancias Amazon EC2. Esposible especificar el número de instancias que se desactivan a la vez para efectuar las actualizaciones.Durante una implementación blue/green, la última revisión de la aplicación se instala en las instanciasde sustitución. El tráfico se desvía a estas instancias en el momento que desee, bien inmediatamenteo cuando haya terminado de probar el nuevo entorno. En ambos tipos de implementación, CodeDeploysupervisa el estado de la aplicación de acuerdo con las reglas que configure.

• Detención y reversión. En caso de que haya errores, puede detener y revertir la implementación deforma automática o manual.

• Control centralizado. Puede iniciar y controlar el estado de las implementaciones fácilmente a travésde la consola de CodeDeploy o la AWS CLI. Recibirá un informe que indica el momento en que seimplementó cada revisión de la aplicación en cada instancia Amazon EC2.

• Facilidad de adopción. CodeDeploy no depende de ninguna plataforma y funciona con cualquieraplicación. Permite reutilizar fácilmente el código de configuración. CodeDeploy también puedeintegrarse en procesos de publicación de software o cadenas de herramientas de entrega continua yaexistentes.

• Implementaciones simultáneas. Si tiene más de una aplicación que utiliza la EC2/On-Premisesplataforma de computación, CodeDeploy puede implementarlas simultáneamente en el mismo conjuntode instancias.

Información general sobre las plataformas decomputación de CodeDeploy

CodeDeploy puede implementar aplicaciones en tres plataformas de computación:

• EC2/On-Premises: describe las instancias de servidores físicos que pueden ser instancias AmazonEC2 en la nube, servidores on-premises o ambas cosas. Las aplicaciones creadas mediante la EC2/On-Premises plataforma de computación pueden estar formadas por archivos ejecutables, archivos deconfiguración, imágenes, etc.

Versión de API 2014-10-062

Page 12: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general sobre las plataformas

de computación de CodeDeploy

Las implementaciones que usan la EC2/On-Premises plataforma de computación administran la formaen que el tráfico se envía a las instancias mediante un tipo de implementación "in-place" o "blue/green". Para obtener más información, consulte Información general de los tipos de implementación deCodeDeploy (p. 7).

• AWS Lambda: se utiliza para implementar aplicaciones que constan de una versión actualizada de unafunción Lambda. AWS Lambda administra la función Lambda en un entorno de informática sin servidorcompuesto de una estructura de computación de alta disponibilidad. AWS Lambda se encarga derealizar toda la administración de los recursos de computación. Para obtener más información, consulteInformática sin servidores y aplicaciones. Para obtener más información sobre AWS Lambda y lasfunciones Lambda, consulte AWS Lambda.

Puede administrar la forma en que el tráfico se dirige a las versiones actualizadas de las funciones deLambda durante una implementación eligiendo una configuración controlada, lineal o todo a la vez.

• Amazon ECS: se utiliza para implementar una versión en contenedor de Amazon ECS como un conjuntode tareas. CodeDeploy realiza una implementación blue/green instalando una versión actualizadade la aplicación como un nuevo conjunto de tareas de sustitución. CodeDeploy redirige el tráfico deproducción del conjunto de tareas de la aplicación original al conjunto de tareas de sustitución. Cuandola implementación se realiza correctamente, se termina el conjunto de tareas original. Para obtener másinformación sobre Amazon ECS, consulte Amazon Elastic Container Service.

Puede administrar la forma en que el tráfico se desplaza al conjunto de tareas actualizado durante unaimplementación eligiendo una configuración controlada, lineal o todo a la vez.

Note

Las implementaciones blue/green (azul/verde) de Amazon ECS son compatibles conCodeDeploy y AWS CloudFormation. Los detalles de estas implementaciones se describen ensecciones posteriores.

En la tabla siguiente se describe cómo se utilizan los componentes de CodeDeploy con cada plataforma decomputación. Para obtener más información, consulte:

• Trabajar con grupos de implementaciones en CodeDeploy (p. 284)• Trabajo con implementaciones en CodeDeploy (p. 320)• Uso de configuraciones de implementación en CodeDeploy (p. 260)• Gestión de revisiones de aplicaciones en CodeDeploy (p. 304)• Trabajar con aplicaciones en CodeDeploy (p. 269)

Componente deCodeDeploy

EC2/On-Premises AWS Lambda AmazonECS

Grupo de implementaciones Implementa una revisión enun conjunto de instancias.

Implementa una nuevaversión de una funciónLambda sin servidor en unainfraestructura informáticade alta disponibilidad.

Especificael servicioAmazonECS con laaplicación encontenedorparaimplementarcomo unconjunto detareas, unagente deescucha de

Versión de API 2014-10-063

Page 13: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general sobre las plataformas

de computación de CodeDeploy

Componente deCodeDeploy

EC2/On-Premises AWS Lambda AmazonECSproduccióny de pruebaopcional quese utilizapara enviartráfico a laaplicaciónimplementada,cuándoredirigir eltráfico yterminar elconjuntode tareasoriginal dela aplicaciónimplementadayconfiguraciónopcional dedesencadenador,alarma yrestauración.

Versión de API 2014-10-064

Page 14: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general sobre las plataformas

de computación de CodeDeploy

Componente deCodeDeploy

EC2/On-Premises AWS Lambda AmazonECS

Implementación Implementa una nuevarevisión que consta de unaaplicación y un archivoAppSpec. El archivoAppSpec especifica cómose implementa la aplicaciónen las instancias de ungrupo de implementaciones.

Desvía el tráfico deproducción desde unaversión de una funciónLambda a una nuevaversión de la misma función.El AppSpec file especificala versión de la funciónLambda que se debeimplementar.

Implementauna versiónactualizadade unaaplicaciónde AmazonECS encontenedorcomo unnuevoconjunto detareas desustitución.CodeDeployredirige eltráfico deproduccióndesde elconjunto detareas conla versiónoriginalal nuevoconjunto detareas desustitucióncon laversiónactualizada.Cuando secompleta laimplementación,se terminael conjuntode tareasoriginal.

Configuración deimplementación

Configuración quedetermina la velocidadde implementación yel número mínimo deinstancias que deben estaren buen estado en cualquiermomento durante unaimplementación.

Configuración quedetermina cómo se desvíael tráfico a las versionesde la función de Lambdaactualizadas.

Configuraciónquedeterminacómo sedesvía eltráfico alconjuntode tareasactualizadode AmazonECS.

Versión de API 2014-10-065

Page 15: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general sobre las plataformas

de computación de CodeDeploy

Componente deCodeDeploy

EC2/On-Premises AWS Lambda AmazonECS

Revisión Combinación de un archivoAppSpec y de archivosde aplicación, comoejecutables, archivos deconfiguración, etc.

Un archivo AppSpecque especifica la funciónLambda que implementary las funciones Lambdaque ejecutan pruebas devalidación durante enlacesde eventos de ciclo de vidade implementación.

Un AppSpecfile queespecifica:

• Ladefinicióndetareas deAmazonECSpara elservicio deAmazonECScon laaplicaciónencontenedoresque seva aimplementar.

• Elcontenedoren elque seimplementalaaplicaciónactualizada.

• Un puertopara elcontenedordonde seredirige eltráfico deproducción.

• Ajustes deconfiguraciónde redopcionalesyfuncionesLambdaquepuedenejecutarpruebasdevalidaciónduranteenlaces deeventosde ciclo

Versión de API 2014-10-066

Page 16: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general de los tipos de

implementación de CodeDeploy

Componente deCodeDeploy

EC2/On-Premises AWS Lambda AmazonECS

de vida deimplementación.

Aplicación Colección de gruposde implementaciones yrevisiones. Una aplicaciónde EC2/On-Premisesutiliza la EC2/On-Premisesplataforma de computación.

Colección de gruposde implementaciones yrevisiones. Una aplicaciónque se utiliza para unaimplementación de AWSLambda utiliza la AWSLambda plataforma decomputación sin servidor.

Colección degrupos deimplementacionesy revisiones.Unaaplicaciónque se utilizapara unaimplementaciónde AmazonECS utilizala AmazonECSplataformadecomputación.

Información general de los tipos de implementaciónde CodeDeploy

CodeDeploy ofrece dos opciones en cuanto al tipo de implementación:

• In-place deployment (Implementación in situ): la aplicación de cada instancia del grupo deimplementación se para, se instala la última revisión de la aplicación, y se inicia y valida la nuevaversión de la aplicación. Puede utilizar un balanceador de carga de modo que se cancele el registrode cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vezcompletada la implementación. Solo las implementaciones que usan la EC2/On-Premises plataforma decomputación pueden utilizar implementaciones "in-place". Para obtener más información acerca de lasimplementaciones in-place, consulte Información general de la implementación in situ (p. 8).

Note

Las implementaciones AWS Lambda y Amazon ECS no pueden usar un tipo de implementaciónin situ.

• Implementación Blue/green: el funcionamiento de la implementación depende de la plataforma decomputación que utilice:• Blue/green en unaEC2/On-Premises plataforma de computación: las instancias de un grupo de

implementación (el entorno original) se sustituyen por otro conjunto de instancias (el entorno desustitución) siguiendo estos pasos:• Las instancias se aprovisionan para el entorno de sustitución.• En las instancias de sustitución se instala la revisión de la aplicación más reciente.• Hay un tiempo de espera opcional para actividades como probar la aplicación y verificar el sistema.• Las instancias del entorno de sustitución se registran con un balanceador de carga de Elastic Load

Balancing, lo que hace que el tráfico comience a redirigirse hacia ellas. Se anula el registro de lasinstancias del entorno original, y se puede optar por terminaras o mantenerlas en ejecución paraotros usuarios.

Versión de API 2014-10-067

Page 17: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general de la implementación in situ

Note

Si utiliza una EC2/On-Premises plataforma de computación, tenga en cuenta que lasimplementaciones blue/green solo funcionan con instancias Amazon EC2.

• Blue/green en una AWS Lambda plataforma de computación: el tráfico se desvía desde el entornosin servidor actual a uno con las versiones de funciones Lambda actualizadas. Puede especificarlas funciones Lambda que realizan las pruebas de validación y elegir el modo en que se realiza eldesvío de tráfico. Todas las implementaciones de AWS Lambda plataforma de computación sonimplementaciones blue/green. Por este motivo, no es necesario que especifique ningún tipo deimplementación.

• Blue/green en Amazon ECS plataforma de computación: el tráfico se desvía desde el conjunto detareas con la versión original de una aplicación de un servicio de Amazon ECS a un conjunto detareas de sustitución del mismo servicio. Puede establecer el desplazamiento de tráfico como linealo controlado a través de la configuración de implementación. Se usan el protocolo y el puerto de unagente de escucha de balanceo de carga especificado para redirigir el tráfico de producción. Duranteuna implementación, se puede usar un agente de escucha de prueba para servir el tráfico al conjuntode tareas de sustitución mientras se ejecutan las pruebas de validación.

• Implementaciones blue/green (azul/verde) a través de AWS CloudFormation: el tráfico se desplazade los recursos actuales a los recursos actualizados como parte de una actualización de pila de AWSCloudFormation. Actualmente, solo se admiten implementaciones de ECS blue/green (azul/verde).

Para obtener más información acerca de las implementaciones blue/green, consulte Información generalde la implementación blue/green (p. 9).

Note

Con el agente de CodeDeploy, puede realizar una implementación en una instancia en la quehaya iniciado sesión sin necesidad de una aplicación, un grupo de implementaciones o ni siquierauna cuenta de AWS. Para obtener información, consulte Uso del agente de CodeDeploy paravalidar un paquete de implementación en una máquina local (p. 349).

Temas• Información general de la implementación in situ (p. 8)• Información general de la implementación blue/green (p. 9)

Información general de la implementación in situEl diagrama siguiente muestra el flujo de una implementación in situ típica de CodeDeploy.

Note

Las implementaciones AWS Lambda y Amazon ECS no pueden usar un tipo de implementación insitu.

Versión de API 2014-10-068

Page 18: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general de la implementación blue/green

Así es como funciona:

1. En primer lugar, debe crear contenido implementable en su equipo de desarrollo local o un entornosimilar y, a continuación, debe añadir un application specification file (AppSpec file). El AppSpec file esespecífico de CodeDeploy. Define las acciones de implementación que CodeDeploy debe ejecutar. Elcontenido implementable y el AppSpec file se agrupan en un archivo de almacenamiento que entoncesse carga en un bucket de Amazon S3 o un repositorio GitHub. Este archivo de almacenamiento sedenomina revisión de la aplicación (o simplemente revisión).

2. A continuación debe proporcionar a CodeDeploy información acerca de la implementación, comoel bucket de Amazon S3 o el repositorio de GitHub del que debe tomar la revisión y el conjunto deinstancias Amazon EC2 en que debe implementar el contenido. En CodeDeploy un conjunto deinstancias Amazon EC2 se denomina grupo de implementaciones. Un grupo de implementacióncontiene instancias Amazon EC2 etiquetadas individualmente, instancias Amazon EC2 en grupos deAmazon EC2 Auto Scaling o ambas.

Cada vez que cargue correctamente una nueva revisión de una aplicación que desee implementaren el grupo de implementaciones, el paquete correspondiente se marca como revisión de destinopara ese grupo de implementaciones. En otras palabras, la revisión de la aplicación que debeimplementarse en cada momento es la revisión de destino. También es la revisión que se extrae paralas implementaciones automáticas.

3. A continuación, el agente de CodeDeploy de cada instancia sondea a CodeDeploy para determinar quéextraer del bucket de Amazon S3 o repositorio GitHub especificado y cuándo hacerlo.

4. Por último, el agente de CodeDeploy de cada instancia extrae la revisión de destino del bucket deAmazon S3 o repositorio GitHub y sigue las instrucciones del AppSpec file, para implementar elcontenido en la instancia.

CodeDeploy mantiene un registro de las implementaciones para ofrecerle información tal como su estado ysus parámetros de configuración de la implementación, el estado de las instancias, etc.

Información general de la implementación blue/greenSe utiliza una implementación blue/green para actualizar las aplicaciones al tiempo que se minimizan lasinterrupciones causadas por los cambios de una nueva versión de la aplicación. CodeDeploy aprovisionala nueva versión de la aplicación junto con la versión anterior antes de redirigir el tráfico de producción.

Versión de API 2014-10-069

Page 19: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general de la implementación blue/green

• AWS Lambda: se desvía el tráfico de una versión de una función Lambda a una nueva versión de lamisma función Lambda.

• Amazon ECS: el tráfico se desvía desde un conjunto de tareas de su servicio de Amazon ECS a unconjunto de tareas de sustitución actualizado en el mismo servicio de Amazon ECS.

• EC2/On-Premises: el tráfico se desvía desde un conjunto de instancias en el entorno original a unconjunto de instancias de sustitución.

Todas las implementaciones AWS Lambda y Amazon ECS son blue/green. Una implementación de EC2/On-Premises puede ser in situ o blue/green. Una implementación blue/green ofrece diversas ventajas conrespecto a la implementación in situ:

• Puede instalar y probar una aplicación en el nuevo entorno de sustitución e implementarla en produccióncon solo redirigir el tráfico.

• Si utiliza la EC2/On-Premises plataforma de computación, es más rápido y seguro volver a cambiar ala versión más reciente de una aplicación. Esto se debe a que el tráfico puede volver a dirigirse a lasinstancias originales, siempre que no se hayan terminado. Con una implementación in situ, las versionesdeben revertirse a la versión anterior de la aplicación.

• Si está utilizando la EC2/On-Premises plataforma de computación, las instancias nuevas se aprovisionanpara una implementación blue/green y reflejan las configuraciones más actuales de los servidores. Estoayuda a evitar la clase de problemas que a veces aparecen en las instancias que llevan mucho tiempoen ejecución.

• Si está utilizando la AWS Lambda plataforma de computación, puede controlar cómo se desvía el tráficode la versión original de la función de AWS Lambda a la nueva versión de la función de AWS Lambda.

• Si utiliza la Amazon ECS plataforma de computación, puede controlar cómo se desvía el tráfico delconjunto de tareas original al nuevo conjunto de tareas.

Una implementación blue/green (azul/verde) con AWS CloudFormation puede utilizar uno de los siguientesmétodos:

• plantillas de AWS CloudFormation para implementaciones: cuando configura implementaciones conplantillas de AWS CloudFormation, las implementaciones se activan mediante actualizaciones de AWSCloudFormation. Cuando cambia un recurso y carga un cambio de plantilla, una actualización de pilaen AWS CloudFormation inicia la nueva implementación. Para obtener una lista de los recursos quepuede utilizar en las plantillas de AWS CloudFormation, consulte Referencia de plantillas de AWSCloudFormation para CodeDeploy (p. 438).

• Implementaciones blue/green (azul/verde) a través de AWS CloudFormation: Puede utilizar AWSCloudFormation para administrar sus implementaciones blue/green (azul/verde) a través deactualizaciones de pila. Defina los recursos blue y green (azules y verdes), además de especificar laconfiguración de enrutamiento y estabilización del tráfico dentro de la plantilla de pila. A continuación,si actualiza los recursos seleccionados durante una actualización de pila, AWS CloudFormationgenera todos los recursos green (verdes) necesarios, desvía el tráfico en función de los parámetrosde direccionamiento del tráfico especificados y elimina los recursos blue (azules). Para obtener másinformación, consulte Automatizar implementaciones blue/green (azul/verde) de Amazon ECS através de CodeDeploy mediante el uso de AWS CloudFormation en la Guía del usuario de AWSCloudFormation.

Note

Solo se admite para implementaciones blue/green (azul/verde) deAmazon ECS.

La forma de configurar una implementación blue/green depende la plataforma de computación que utilicela implementación.

Versión de API 2014-10-0610

Page 20: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general de la implementación blue/green

Implementación blue/green en una plataforma de computaciónAWS LambdaSi está utilizando la AWS Lambda plataforma de computación, debe elegir uno de los siguientes tipos deconfiguración de implementación para especificar cómo se desvía el tráfico de la versión original de lafunción de AWS Lambda a la versión nueva de la función de AWS Lambda:

• Canary: el tráfico se desvía en dos incrementos. Puede elegir opciones "canary" predefinidas queespecifiquen el porcentaje de tráfico desviado a la versión actualizada de la función Lambda en elprimer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundoincremento.

• Linear: El tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cadaincremento y el número de minutos entre cada incremento.

• All-at-once: todo el tráfico se desvía a la vez desde la función Lambda original a la función Lambdaactualizada.

Para obtener más información acerca de las configuraciones de implementación de AWS Lambda,consulte Configuraciones de implementación predefinidas para una plataforma de computación AWSLambda (p. 265).

Implementación blue/green en una plataforma de computaciónAmazon ECSSi utiliza la Amazon ECS plataforma de computación, debe elegir uno de los siguientes tipos deconfiguración de implementación para especificar cómo se desvía el tráfico del conjunto de tareas originalde Amazon ECS al nuevo conjunto de tareas de Amazon ECS:

• Canary: el tráfico se desvía en dos incrementos. Puede elegir opciones "canary" predefinidas queespecifiquen el porcentaje de tráfico desviado al conjunto de tareas actualizado de Amazon ECS en elprimer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundoincremento.

• Linear: El tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cadaincremento y el número de minutos entre cada incremento.

• All-at-once: todo el tráfico se desvía del conjunto de tareas original de Amazon ECS al conjunto detareas actualizado de Amazon ECS a la vez.

Para obtener más información acerca de la configuración de implementación de Amazon ECS, consulte Configuraciones de implementación en una plataforma de computación de Amazon ECS (p. 263).

Implementación blue/green en una plataforma de computaciónEC2/On-Premises

Note

Debe usar instancias Amazon EC2 para las implementaciones blue/green en la EC2/On-Premisesplataforma de computación. No se admiten instancias on-premises para el tipo de implementaciónblue/green.

Si utiliza la EC2/On-Premises plataforma de computación, tenga en cuenta lo siguiente:

Versión de API 2014-10-0611

Page 21: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInformación general de la implementación blue/green

Debe disponer de una o varias instancias Amazon EC2 con etiquetas identificativas de Amazon EC2 o deun grupo de Amazon EC2 Auto Scaling. Las instancias también deben cumplir los requisitos siguientes:

• Cada instancia Amazon EC2 debe tener asociado el perfil de instancia de IAM correcto.• El agente de CodeDeploy debe estar instalado y en ejecución en cada instancia.

Note

Normalmente también hay una revisión de la aplicación ejecutándose en las instancias delentorno original, pero esto no es un requisito para una implementación blue/green.

Al crear un grupo de implementaciones para utilizarlo en implementaciones blue/green, puede elegir elmodo de especificar el entorno de sustitución:

Copiar un grupo de Amazon EC2 Auto Scaling existente: durante la implementación blue/green,CodeDeploy crea las instancias del entorno de sustitución. Con esta opción, CodeDeploy utiliza el grupo deAmazon EC2 Auto Scaling especificado como plantilla para el entorno de sustitución, incluyendo el mismonúmero de instancias en ejecución y muchas otras opciones de configuración.

Elegir las instancias manualmente: puede especificar las instancias consideradas de sustitución medianteetiquetas de instancia Amazon EC2, nombres de grupo de Amazon EC2 Auto Scaling o ambos. Si eligeesta opción, no tendrá que especificar las instancias del entorno de sustitución hasta el momento de crearuna implementación.

Así es como funciona:

1. Ya cuenta con instancias o un grupo de Amazon EC2 Auto Scaling que sirven como entorno original.La primera vez que ejecute una implementación blue/green, normalmente usará instancias que ya sehabrán utilizado en una implementación in situ.

2. Para una aplicación de CodeDeploy ya existente, debe crear un grupo de implementaciones blue/greenen el que, además de las opciones necesarias para una implementación in situ, debe especificar losiguiente:• El balanceador de carga que dirige el tráfico del entorno original al entorno de sustitución durante el

proceso de implementación blue/green.• Si el tráfico debe dirigirse al entorno de sustitución de inmediato o esperar a que lo redirija

manualmente.• La velocidad con la que se dirige el tráfico a las instancias de sustitución.• Si las instancias sustituidas deben terminarse o mantenerse en ejecución.

3. Ahora creará una implementación para este grupo de implementaciones en la que ocurrirá lo siguiente:a. Si decide copiar un grupo de Amazon EC2 Auto Scaling, se preparan instancias para el entorno de

sustitución.b. La revisión de aplicación especificada para la implementación se instala en las instancias de

sustitución.c. Si ha especificado un tiempo de espera en la configuración del grupo de implementaciones, la

implementación se pausa. Este es el momento en el que puede realizar pruebas y verificaciones enel entorno de sustitución. Si no redirige manualmente el tráfico antes de que finalice el periodo deespera, la implementación se detiene.

d. Las instancias del entorno de sustitución se registran con un balanceador de carga de Elastic LoadBalancing y el tráfico comienza a dirigirse a ellas.

e. Las instancias del entorno original se borran del registro y se terminan o se mantienen en ejecución,según lo que haya especificado para el grupo de implementaciones.

Versión de API 2014-10-0612

Page 22: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEsperamos tener noticias suyas

Implementación blue/green (azul/verde) a través de AWSCloudFormationPuede administrar implementaciones blue/green (azul/verde) de CodeDeploy modelando sus recursos conuna plantilla de AWS CloudFormation.

Cuando modela los recursos blue/green (azul/verde) utilizando una plantilla de AWS CloudFormation,crea una actualización de pila en AWS CloudFormation que actualiza el conjunto de tareas. El tráfico deproducción pasa del conjunto de tareas original del servicio a un conjunto de tareas de sustitución o bientodo a la vez, con implementaciones lineales y tiempos de procesamiento, o bien con implementacionesde valores controlados. La actualización de la pila inicia una implementación en CodeDeploy. Puedever el estado y el historial de la implementación en CodeDeploy, pero no crea ni administra recursos deCodeDeploy fuera de la plantilla de AWS CloudFormation.

Note

Para implementaciones blue/green (azul/verde) a través de AWS CloudFormation, no se crea unaaplicación o grupo de implementación de CodeDeploy.

Este método solo admite implementaciones blue/green (azul/verde) de Amazon ECS. Para obtener másinformación acerca de las implementaciones blue/green (azul/verde) a través de AWS CloudFormation,consulte Crear una implementación blue/green (azul/verde) de Amazon ECS a través de AWSCloudFormation (p. 335).

Esperamos tener noticias suyasAgradecemos sus comentarios. Para ponerse en contacto con nosotros, visite el foro de CodeDeploy.

Temas

• Componentes principales (p. 13)• Implementaciones (p. 17)• Archivos de especificación de la aplicación (p. 34)

Componentes principales de CodeDeployAntes de empezar a trabajar con el servicio, debe familiarizarse con los componentes principales delproceso de implementación de CodeDeploy.

Application (Aplicación): un nombre que identifica la aplicación que quiere implementar. CodeDeploy utilizaeste nombre, que actúa como contenedor, para asegurar que se hace referencia a la combinación correctade revisión, configuración de implementación y grupo de implementación durante una implementación.

Plataforma de computación: la plataforma en la que CodeDeploy implementa una aplicación.

• EC2/On-Premises: describe las instancias de servidores físicos que pueden ser instancias AmazonEC2 en la nube, servidores on-premises o ambas cosas. Las aplicaciones creadas mediante la EC2/On-Premises plataforma de computación pueden estar formadas por archivos ejecutables, archivos deconfiguración, imágenes, etc.

Las implementaciones que usan la EC2/On-Premises plataforma de computación administran la formaen que el tráfico se envía a las instancias mediante un tipo de implementación "in-place" o "blue/

Versión de API 2014-10-0613

Page 23: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComponentes principales

green". Para obtener más información, consulte Información general de los tipos de implementación deCodeDeploy (p. 7).

• AWS Lambda: se utiliza para implementar aplicaciones que constan de una versión actualizada de unafunción Lambda. AWS Lambda administra la función Lambda en un entorno de informática sin servidorcompuesto de una estructura de computación de alta disponibilidad. AWS Lambda se encarga derealizar toda la administración de los recursos de computación. Para obtener más información, consulteInformática sin servidores y aplicaciones. Para obtener más información sobre AWS Lambda y lasfunciones Lambda, consulte AWS Lambda.

Puede administrar la forma en que el tráfico se dirige a las versiones actualizadas de las funciones deLambda durante una implementación eligiendo una configuración controlada, lineal o todo a la vez.

• Amazon ECS: se utiliza para implementar una versión en contenedor de Amazon ECS como un conjuntode tareas. CodeDeploy realiza una implementación blue/green instalando una versión actualizadade la aplicación como un nuevo conjunto de tareas de sustitución. CodeDeploy redirige el tráfico deproducción del conjunto de tareas de la aplicación original al conjunto de tareas de sustitución. Cuandola implementación se realiza correctamente, se termina el conjunto de tareas original. Para obtener másinformación sobre Amazon ECS, consulte Amazon Elastic Container Service.

Puede administrar la forma en que el tráfico se desplaza al conjunto de tareas actualizado durante unaimplementación eligiendo una configuración controlada, lineal o todo a la vez.

Note

Las implementaciones blue/green (azul/verde) de Amazon ECS se admiten a través deCodeDeploy y AWS CloudFormation. Los detalles de estas implementaciones se describen ensecciones posteriores.

Deployment configuration (Configuración de implementación): conjunto de reglas y condiciones de éxitoo fracaso que CodeDeploy utiliza durante una implementación. Si su implementación utiliza la EC2/On-Premises plataforma de computación, puede especificar el número mínimo de instancias en buen estadopara la implementación. Si su implementación usa AWS Lambda plataforma de computación o AmazonECS plataforma de computación, puede especificar la forma en que el tráfico se envía a las versionesactualizadas de las funciones Lambda.

Para obtener más información sobre cómo especificar el número mínimo de hosts en buen estado parauna implementación que usa la EC2/On-Premises plataforma de computación, consulte Instancias eimplementaciones mínimas en buen estado (p. 257).

Estas son las configuraciones de implementación que especifican cómo se dirige el tráfico durante unaimplementación que usa la AWS Lambda plataforma de computación:

• Canary: el tráfico se desvía en dos incrementos. Puede elegir opciones "canary" predefinidas queespecifiquen el porcentaje de tráfico desviado a la versión actualizada de la función Lambda en elprimer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundoincremento.

• Linear: El tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cadaincremento y el número de minutos entre cada incremento.

• All-at-once: todo el tráfico se desvía a la vez desde la función Lambda original a la función Lambdaactualizada.

Estas son las configuraciones de implementación que especifican cómo se dirige el tráfico durante unaimplementación que usa la Amazon ECS plataforma de computación:

• Canary: el tráfico se desvía en dos incrementos. Puede elegir opciones "canary" predefinidas queespecifiquen el porcentaje de tráfico desviado al conjunto de tareas actualizado de Amazon ECS en el

Versión de API 2014-10-0614

Page 24: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComponentes principales

primer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundoincremento.

• Linear: El tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cadaincremento y el número de minutos entre cada incremento.

• All-at-once: todo el tráfico se desvía del conjunto de tareas original de Amazon ECS al conjunto detareas actualizado de Amazon ECS a la vez.

Grupo de implementación: un conjunto de instancias individuales. Un grupo de implementación contieneinstancias etiquetadas individualmente, instancias Amazon EC2 en grupos de Amazon EC2 Auto Scalingo ambas. Para obtener información acerca de etiquetas de instancias Amazon EC2, consulte Uso deetiquetas mediante la consola. Para obtener más información acerca de instancias on-premises, consulteTrabajar con instancias on-premise (p. 226). Para obtener más información sobre Amazon EC2 AutoScaling, consulte Integración de CodeDeploy con Amazon EC2 Auto Scaling (p. 54).

Deployment type (Tipo de implementación): método usado para poner la revisión de la aplicación másreciente a disposición de las instancias de un grupo de implementación.

• In-place deployment (Implementación in situ): la aplicación de cada instancia del grupo deimplementación se para, se instala la última revisión de la aplicación, y se inicia y valida la nuevaversión de la aplicación. Puede utilizar un balanceador de carga de modo que se cancele el registrode cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vezcompletada la implementación. Solo las implementaciones que usan la EC2/On-Premises plataforma decomputación pueden utilizar implementaciones "in-place". Para obtener más información acerca de lasimplementaciones in-place, consulte Información general de la implementación in situ (p. 8).

• Implementación Blue/green: el funcionamiento de la implementación depende de la plataforma decomputación que utilice:• Blue/green en unaEC2/On-Premises plataforma de computación: las instancias de un grupo de

implementación (el entorno original) se sustituyen por otro conjunto de instancias (el entorno desustitución) siguiendo estos pasos:• Las instancias se aprovisionan para el entorno de sustitución.• En las instancias de sustitución se instala la revisión de la aplicación más reciente.• Hay un tiempo de espera opcional para actividades como probar la aplicación y verificar el sistema.• Las instancias del entorno de sustitución se registran con un balanceador de carga de Elastic Load

Balancing, lo que hace que el tráfico comience a redirigirse hacia ellas. Se anula el registro de lasinstancias del entorno original, y se puede optar por terminaras o mantenerlas en ejecución paraotros usuarios.

Note

Si utiliza una EC2/On-Premises plataforma de computación, tenga en cuenta que lasimplementaciones blue/green solo funcionan con instancias Amazon EC2.

• Blue/green en una AWS Lambda plataforma de computación: el tráfico se desvía desde el entornosin servidor actual a uno con las versiones de funciones Lambda actualizadas. Puede especificarlas funciones Lambda que realizan las pruebas de validación y elegir el modo en que se realiza eldesvío de tráfico. Todas las implementaciones de AWS Lambda plataforma de computación sonimplementaciones blue/green. Por este motivo, no es necesario que especifique ningún tipo deimplementación.

• Blue/green en Amazon ECS plataforma de computación: el tráfico se desvía desde el conjunto detareas con la versión original de una aplicación de un servicio de Amazon ECS a un conjunto detareas de sustitución del mismo servicio. Puede establecer el desplazamiento de tráfico como linealo controlado a través de la configuración de implementación. Se usan el protocolo y el puerto de unagente de escucha de balanceo de carga especificado para redirigir el tráfico de producción. Duranteuna implementación, se puede usar un agente de escucha de prueba para servir el tráfico al conjuntode tareas de sustitución mientras se ejecutan las pruebas de validación.

Versión de API 2014-10-0615

Page 25: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComponentes principales

• Implementaciones blue/green (azul/verde) a través de AWS CloudFormation: el tráfico se desplazade los recursos actuales a los recursos actualizados como parte de una actualización de pila de AWSCloudFormation. Actualmente, solo se admiten implementaciones de ECS blue/green (azul/verde).

Para obtener más información acerca de las implementaciones blue/green, consulte Información generalde la implementación blue/green (p. 9).

Note

Las implementaciones blue/green (azul/verde) de Amazon ECS son compatibles con CodeDeployy AWS CloudFormation. Los detalles de estas implementaciones se describen en seccionesposteriores.

Perfil de instancia de IAM: un rol de IAM que asocia a sus instancias Amazon EC2. Este perfil incluye lospermisos necesarios para obtener acceso a los buckets de Amazon S3 o a los repositorios de GitHub enlos que se almacenan las aplicaciones. Para obtener más información, consulte Paso 4: Crear un perfil deinstancia de IAM para las instancias Amazon EC2 (p. 44).

Revisión: una revisión de una implementación AWS Lambda es un archivo con formato YAML oJSON que especifica información sobre la función Lambda que se va a implementar. Una revisión deuna implementación EC2/On-Premises es un archivo de almacenamiento que incluye contenido deorigen (código fuente, páginas web, archivos ejecutables y scripts de implementación) y un applicationspecification file (AppSpec file). Las revisiones de AWS Lambda se pueden almacenar en buckets deAmazon S3. Las revisiones de EC2/On-Premises se almacenan en buckets de Amazon S3 o repositoriosde GitHub. En el caso de , una revisión se identifica de forma inequívoca mediante su clave de objeto de ysu etiqueta de objeto, su versión o ambas cosas. Para GitHub, una revisión se identifica de forma exclusivapor su ID de confirmación.

Rol de servicio: un rol de IAM que concede permisos a un servicio de AWS para que tenga acceso a losrecursos de AWS. Las políticas que adjunte al rol de servicio determinarán a qué recursos de AWS tendráacceso el servicio y qué acciones puede efectuar con esos recursos. En CodeDeploy, un rol de servicio seutiliza para lo siguiente:

• Para leer cualquiera de las etiquetas aplicadas a las instancias o los nombres de grupo de Amazon EC2Auto Scaling asociados a las instancias. Esto habilita a CodeDeploy para identificar las instancias en lasque puede implementar las aplicaciones.

• Para llevar a cabo operaciones en las instancias, los grupos de Amazon EC2 Auto Scaling y losbalanceadores de carga de Elastic Load Balancing.

• Para publicar información en los temas de Amazon SNS de manera que se puedan enviar notificacionescuando tenga lugar el evento de instancia o la implementación especificados.

• Para recuperar información sobre las alarmas de CloudWatch con el fin de configurar la monitorizaciónde alarmas para las implementaciones.

Para obtener más información, consulte Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).

Target revision (Revisión de destino): la versión más reciente de la revisión de la aplicación que hacargado en el repositorio y quiere implementar en las instancias de un grupo de implementaciones. Esdecir, la revisión de la aplicación destinada actualmente a la implementación actual. También es la revisiónque se extrae para las implementaciones automáticas.

Para obtener información sobre otros componentes del flujo de trabajo de CodeDeploy, consulte lossiguientes temas:

• Elección de un tipo de repositorio de CodeDeploy (p. 311)• Implementaciones (p. 17)

Versión de API 2014-10-0616

Page 26: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones

• Archivos de especificación de la aplicación (p. 34)• Estado de las instancias (p. 255)• Trabajar con el agente de CodeDeploy (p. 176)• Trabajar con instancias on-premise (p. 226)

Implementaciones de CodeDeployEste tema proporciona información sobre los componentes y el flujo de trabajo de las implementacionesen CodeDeploy. El proceso de implementación varía en función del método de implementación o dela plataforma de computación (Lambda, Amazon ECS, EC2/en las instalaciones o a través de AWSCloudFormation) que utilice para las implementaciones.

Note

Las implementaciones en una plataforma de computación Amazon ECS o AWS Lambda no seadmiten en las siguientes regiones de AWS: Asia Pacífico (Osaka-local), AWS GovCloud (EE.UU.Este), AWS GovCloud (US-West), China (Pekín) y China (Ningxia).

Temas• Implementaciones en una AWS Lambda Plataforma de computación (p. 17)• Implementaciones en una Amazon ECS Plataforma de computación (p. 20)• Implementaciones en una EC2/On-Premises Plataforma de computación (p. 29)

Implementaciones en una AWS Lambda Plataformade computaciónEste tema proporciona información sobre los componentes y el flujo de trabajo de las implementaciones deCodeDeploy que utilizan la AWS Lambda plataforma de computación.

Temas• Componentes de la implementación en una plataforma de computación AWS Lambda (p. 17)• Flujo de trabajo de implementación en una plataforma de computación AWS Lambda (p. 18)• Carga de la revisión de la aplicación (p. 19)• Creación de la aplicación y los grupos de implementaciones (p. 19)• Implementación de la revisión de la aplicación (p. 19)• Actualización de la aplicación (p. 19)• Implementaciones detenidas y que producen error (p. 19)• Reimplementaciones y restauración de implementaciones (p. 20)

Componentes de la implementación en una plataforma decomputación AWS LambdaEn el siguiente diagrama se muestran los componentes de una implementación de CodeDeploy en unaAWS Lambda plataforma de computación.

Versión de API 2014-10-0617

Page 27: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AWS

Lambda Plataforma de computación

Flujo de trabajo de implementación en una plataforma decomputación AWS LambdaEn el siguiente diagrama se muestran los principales pasos en la implementación de funciones AWSLambda nuevas y actualizadas.

Estos pasos incluyen:

1. Cree una aplicación y asígnele un nombre que identifique las revisiones de la aplicación que deseaimplementar. Para implementar funciones Lambda, elija la AWS Lambda plataforma de computacióndonde va a crear la aplicación. CodeDeploy utiliza este nombre durante una implementación paraasegurarse de que se haga referencia a los componentes correctos de la implementación, como elgrupo de implementaciones, la configuración de la implementación y la revisión de la aplicación. Paraobtener más información, consulte Creación de una aplicación con CodeDeploy (p. 270).

2. Configure un grupo de implementaciones especificando el nombre del grupo.3. Elija una configuración de implementación para especificar cómo se desvía el tráfico desde la versión

original de la función AWS Lambda a la nueva versión de la función Lambda. Para obtener másinformación, consulte Consulta de los detalles de las configuraciones de implementación (p. 266).

Versión de API 2014-10-0618

Page 28: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AWS

Lambda Plataforma de computación

4. Carga de un application specification file (AppSpec file) en Amazon S3. El AppSpec file especificauna versión de la función de Lambda y las funciones de Lambda que se utilizan para validar laimplementación. Si no desea crear un AppSpec file, puede especificar una versión de la función deLambda y las funciones de validación de la implementación de Lambda directamente en la consolautilizando YAML o JSON. Para obtener más información, consulte Gestión de revisiones de aplicacionesen CodeDeploy (p. 304).

5. Implemente la revisión de la aplicación en el grupo de implementaciones. AWS CodeDeploy implementala revisión de la función Lambda que ha especificado. El tráfico se desvía a la revisión de la funciónLambda utilizando el archivo AppSpec de implementación que seleccionó al crear la aplicación. Paraobtener más información, consulte Crear una implementación con CodeDeploy (p. 321).

6. Compruebe los resultados de la implementación. Para obtener más información, consulte Monitorizarimplementaciones en CodeDeploy (p. 355).

Carga de la revisión de la aplicaciónPonga un AppSpec file en Amazon S3 o introdúzcalo directamente en la consola o en la AWS CLI. Paraobtener más información, consulte Archivos de especificación de la aplicación (p. 34).

Creación de la aplicación y los grupos de implementacionesUn grupo de implementaciones de CodeDeploy en una AWS Lambda plataforma de computación identificauna colección de uno o varios archivos AppSpec. Cada AppSpec file puede implementar una versiónde una función Lambda. Un grupo de implementaciones también define un conjunto de opciones deconfiguración para implementaciones futuras, como alarmas y configuraciones de restauración.

Implementación de la revisión de la aplicaciónAhora puede implementar la revisión de la función especificada en el AppSpec file en el grupo deimplementaciones. Puede utilizar la consola de CodeDeploy o el comando create-deployment. Hayparámetros que puede especificar para controlar la implementación, que incluyen la revisión, el grupo deimplementaciones y la configuración de la implementación.

Actualización de la aplicaciónPuede llevar a cabo actualizaciones de la aplicación y, a continuación, utilizar la consola de CodeDeploy ollamar al comando create-deployment para enviar una revisión.

Implementaciones detenidas y que producen errorPuede utilizar la consola de CodeDeploy o el comando stop-deployment para detener una implementación.Cuando se intenta detener la implementación, sucede una de estas tres cosas:

• La implementación se detiene y la operación devuelve el estado “realizada correctamente”. En estecaso, no se ejecutan más eventos del ciclo de vida de implementación en el grupo de implementacionespara la implementación detenida.

• La implementación no se detiene inmediatamente y la operación devuelve el estado “pendiente”. En estecaso, podrían seguir ejecutándose algunos eventos del ciclo de vida de implementación en el grupo deimplementaciones. Después de finalizada la operación pendiente, las llamadas posteriores para detenerla implementación devuelven el estado “realizada correctamente”.

• La implementación no se puede detener y la operación devuelve un error. Para obtener más información,consulte ErrorInformation y Common Errors en la AWS CodeDeploy API Reference.

Al igual que las implementaciones detenidas, las implementaciones con errores pueden hacer que algunoseventos del ciclo de vida de implementación ya se hayan ejecutado. Para averiguar por qué no se harealizado una implementación, puede utilizar la consola de CodeDeploy o analizar los datos del archivo de

Versión de API 2014-10-0619

Page 29: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

log de esa implementación. Para obtener más información, consulte Limpieza de revisiones de aplicacióny archivos log (p. 181) y Visualización de los datos de log de las implementaciones de EC2/On-Premisesde CodeDeploy (p. 339).

Reimplementaciones y restauración de implementacionesCodeDeploy implementa restauraciones volviendo a implementar una revisión implementada anteriormentecomo una nueva implementación.

Puede configurar un grupo de implementaciones para que se restaure automáticamente si se danciertas condiciones, por ejemplo, si falla una implementación o si se supera el umbral de monitorizaciónde alarmas. Además, puede anular la configuración de restauración especificada para el grupo deimplementaciones en una implementación individual.

También puede optar por restaurar una implementación que produjo error manualmente, volviendo aimplementar una revisión implementada anteriormente.

En todos los casos, a la implementación nueva o restaurada se le asigna su propio ID de implementación.En la lista de implementaciones que puede ver en la consola de CodeDeploy se muestra cuáles son elresultado de una implementación automática.

Para obtener más información, consulte Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Implementaciones en una Amazon ECS Plataforma decomputaciónEste tema proporciona información sobre los componentes y el flujo de trabajo de las implementaciones deCodeDeploy que utilizan la Amazon ECS plataforma de computación.

Temas• Antes de empezar una implementación de Amazon ECS (p. 20)• Componentes de la implementación en una plataforma de computación de Amazon ECS (p. 22)• Flujo de trabajo de implementación (general) en una plataforma de computación Amazon

ECS (p. 23)• ¿Qué sucede durante una implementación de Amazon ECS? (p. 24)• Carga de la revisión de la aplicación (p. 28)• Creación de la aplicación y los grupos de implementaciones (p. 28)• Implementación de la revisión de la aplicación (p. 28)• Actualización de la aplicación (p. 28)• Implementaciones detenidas y que producen error (p. 28)• Reimplementaciones y restauración de implementaciones (p. 29)• Implementaciones blue/green (azul/verde) de Amazon ECS con AWS CloudFormation (p. 29)

Antes de empezar una implementación de Amazon ECSAntes de empezar una implementación de aplicación de Amazon ECS, debe tener listo lo siguiente.Algunos requisitos se especifican al crear su grupo de implementaciones y algunos se especifican en elAppSpec file.

Requisito Donde se especifica

Clúster de Amazon ECS Grupo de implementaciones

Versión de API 2014-10-0620

Page 30: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

Requisito Donde se especifica

Servicio de Amazon ECS Grupo de implementaciones

Balanceador de carga de aplicaciones o bienNetwork Load Balancer

Grupo de implementaciones

Agente de escucha de producción Grupo de implementaciones

Agente de escucha de prueba (opcional) Grupo de implementaciones

Dos grupos de destino Grupo de implementaciones

Definición de tarea de Amazon ECS AppSpec file

Nombre de contenedor AppSpec file

Puerto del contenedor AppSpec file

clúster de Amazon ECS

Un clúster de Amazon ECS es una agrupación lógica de tareas o servicios. Especifique el clúster deAmazon ECS que contiene su servicio de Amazon ECS al crear el grupo de implementaciones de laaplicación de CodeDeploy. Para obtener más información, consulte Clústeres de Amazon ECS en laGuía del usuario de Amazon Elastic Container Service.

servicio de Amazon ECS

Un servicio de Amazon ECS mantiene y ejecuta instancias especificadas de una definición de tareasen un clúster de Amazon ECS. El servicio de Amazon ECS debe estar habilitado para CodeDeploy. Deforma predeterminada, hay un servicio de Amazon ECS habilitado para implementaciones de AmazonECS. Al crear su grupo de implementaciones, puede elegir implementar un servicio de Amazon ECSque se encuentra en su clúster de Amazon ECS. Para obtener más información, consulte Servicios deAmazon ECS en la Guía del usuario de Amazon Elastic Container Service.

Balanceador de carga de aplicaciones o Network Load Balancer

Debe utilizar Elastic Load Balancing con el servicio de Amazon ECS que desea actualizar con unaimplementación de Amazon ECS. Puede utilizar un Balanceador de carga de aplicaciones o unNetwork Load Balancer. Le recomendamos un Balanceador de carga de aplicaciones para que puedaaprovechar características tales como el mapeo de puertos dinámico, el enrutamiento basado en rutasy las reglas de prioridad. Especifique un balanceador de carga al crear el grupo de implementacionesde la aplicación de CodeDeploy. Para obtener más información, consulte Configuración de unbalanceador de carga, grupos de destino y agentes de escucha para la implementación de AmazonECS de CodeDeploy (p. 293) y Creación de un balanceador de carga en la Guía del usuario deAmazon Elastic Container Service.

Uno o dos agentes de escucha

El balanceador de carga utiliza un agente de escucha para dirigir el tráfico hacia los grupos dedestino. Es obligatorio un agente de escucha de producción. Puede especificar un segundo agentede escucha de prueba opcional que dirija el tráfico hacia conjunto de tareas de sustitución mientrasejecuta las pruebas de validación. Especifique uno o ambos agentes de escucha al crear su grupo deimplementaciones. Si utiliza la consola de Amazon ECS para crear su servicio de Amazon ECS, losagentes de escucha se crean automáticamente. Para obtener más información, consulte Agentes deescucha para Application Load Balancers en la Guía del usuario de Elastic Load Balancing y Creaciónde un servicio en la Guía del usuario de Amazon Elastic Container Service.

Dos grupos de destino de Amazon ECS

Un grupo de destino se utiliza para dirigir el tráfico a un destino registrado. Una implementación deAmazon ECS requiere dos grupos de destino: uno para el conjunto de tareas original de la aplicación

Versión de API 2014-10-0621

Page 31: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

de Amazon ECS y otro para su conjunto de tareas de sustitución. Durante la implementación,CodeDeploy crea un conjunto de tareas de sustitución y redirige el tráfico desde el conjunto de tareasoriginal al nuevo. Especifique los grupos de destino al crear el grupo de implementaciones de laaplicación de CodeDeploy.

Durante una implementación, CodeDeploy determina qué grupo de destino está asociado al conjuntode tareas del servicio de Amazon ECS que tiene el estado PRIMARY (este es el conjunto de tareasoriginal) y le asocia un grupo de destino y, a continuación, asocia el otro grupo de destino al conjuntode tareas de sustitución. Si realiza otra implementación, el grupo de destino asociado al conjunto detareas original de la implementación actual se asocia al siguiente conjunto de tareas de sustitución deimplementación. Para obtener más información, consulte Grupos de destino para sus Application LoadBalancers en la Guía del usuario de Elastic Load Balancing.

Una definición de tarea de Amazon ECS

Se requiere una definición de tarea para ejecutar el contenedor Docker que contiene su aplicaciónde Amazon ECS. Especifique el ARN de su definición de tarea en el AppSpec file de su aplicaciónde CodeDeploy. Para obtener más información, consulte Definiciones de tareas de Amazon ECS enla Guía del usuario de Amazon Elastic Container Service y Sección "resources" de AppSpec paraimplementaciones de Amazon ECS (p. 410).

Un contenedor para su aplicación de Amazon ECS

Un contenedor Docker es una unidad de software que empaqueta código y sus dependencias paraque pueda ejecutarse su aplicación. Un contenedor aísla la aplicación, por lo que se puede ejecutaren distintos entornos informáticos. El balanceador de carga dirige el tráfico hacia un contenedor enel conjunto de tareas de la aplicación de Amazon ECS. Especifique el nombre del contenedor en elAppSpec file de su aplicación de CodeDeploy. El contenedor especificado en su AppSpec file debe seruno de los contenedores especificados en la definición de tarea de Amazon ECS. Para obtener másinformación, consulte ¿Qué es Amazon Elastic Container Service? en la Guía del usuario de AmazonElastic Container Service y Sección "resources" de AppSpec para implementaciones de Amazon ECS (p. 410).

Un puerto para el conjunto de tareas de sustitución

Durante la implementación de Amazon ECS, el balanceador de carga dirige tráfico a este puerto enel contenedor especificado en el AppSpec file de la aplicación de CodeDeploy. Se debe especificar elpuerto en el AppSpec file de la aplicación de CodeDeploy. Para obtener más información, consulte Sección "resources" de AppSpec para implementaciones de Amazon ECS (p. 410).

Componentes de la implementación en una plataforma decomputación de Amazon ECSEn el siguiente diagrama se muestran los componentes de una implementación de CodeDeploy en unaAmazon ECS plataforma de computación.

Versión de API 2014-10-0622

Page 32: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

Flujo de trabajo de implementación (general) en una plataformade computación Amazon ECSEn el diagrama siguiente se muestran los principales pasos en la implementación de servicios de AmazonECS actualizados.

Estos pasos incluyen:

1. Cree una aplicación de AWS CodeDeploy especificando un nombre que represente de forma exclusivalo que desea implementar. Para implementar una aplicación de Amazon ECS, en su aplicación deAWS CodeDeploy, elija la Amazon ECS plataforma de computación. CodeDeploy utiliza una aplicacióndurante una implementación para hacer referencia a los componentes de implementación correctos,tales como el grupo de implementaciones, grupos de destino, agentes de escucha y comportamientode redirección de tráfico, así como revisión de la aplicación. Para obtener más información, consulteCreación de una aplicación con CodeDeploy (p. 270).

2. Configure un grupo de implementaciones especificando:• El nombre del grupo de implementaciones.

Versión de API 2014-10-0623

Page 33: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

• El nombre del clúster de Amazon ECS y del servicio. El controlador de implementación del servicio deAmazon ECS se debe establecer en CodeDeploy.

• El agente de escucha de producción, un agente de escucha de prueba opcional y los grupos dedestino utilizados durante una implementación.

• La configuración de implementación como, por ejemplo, cuándo redirigir el tráfico de producción alconjunto de tareas de Amazon ECS de sustitución en el servicio de Amazon ECS y cuándo terminar elconjunto de tareas de Amazon ECS original en el servicio de Amazon ECS.

• Las configuraciones opcionales, como los desencadenadores, alarmas y comportamiento derestauración.

3. Especifique un application specification file (AppSpec file). Puede cargarlo en Amazon S3, introducirloen la consola en formato YAML o JSON, o especificarlo con la AWS CLI o el SDK. El AppSpec fileespecifica una definición de tareas Amazon ECS para la implementación, un nombre de contenedory el mapeo de puertos utilizado para dirigir el tráfico y funciones Lambda ejecutadas después de losenlaces de ciclo de vida de implementación. El nombre del contenedor debe ser un contenedor de sudefinición de tareas de Amazon ECS. Para obtener más información, consulte Gestión de revisiones deaplicaciones en CodeDeploy (p. 304).

4. Implemente la revisión de la aplicación. AWS CodeDeploy redirige el tráfico desde la versión originalde un conjunto de tareas de su servicio de Amazon ECS a un nuevo conjunto de tareas de sustitución.Los grupos de destino especificados en el grupo de implementaciones se utilizan para enviar tráfico alos conjuntos de tareas original y de sustitución. Cuando se completa la implementación, se termina elconjunto de tareas original. Puede especificar un agente de escucha de prueba opcional para enviartráfico de prueba a la versión de sustitución antes de redirigir el tráfico a la misma. Para obtener másinformación, consulte Crear una implementación con CodeDeploy (p. 321).

5. Compruebe los resultados de la implementación. Para obtener más información, consulte Monitorizarimplementaciones en CodeDeploy (p. 355).

¿Qué sucede durante una implementación de Amazon ECS?Antes de iniciar una implementación Amazon ECS con un agente de escucha de prueba, debe configurarsus componentes. Para obtener más información, consulte Antes de empezar una implementación deAmazon ECS (p. 20).

En el siguiente diagrama se muestra la relación entre estos componentes cuando una implementación deAmazon ECS está lista para comenzar.

Versión de API 2014-10-0624

Page 34: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

Cuando comienza la implementación, los eventos del ciclo de vida de la implementación empiezan aejecutarse uno tras otro. Algunos eventos del ciclo de vida son enlaces que solo ejecutan las funcionesLambda especificadas en el AppSpec file. Los eventos de ciclo de vida de la implementación de lasiguiente tabla se indican en el orden en el que se ejecutan. Para obtener más información, consulteSección "hooks" de AppSpec para una implementación de Amazon ECS (p. 416).

Evento del ciclo de vida Acción del evento del ciclo de vida

BeforeInstall (un enlace para funcionesLambda)

Ejecutar funciones Lambda.

Instalar Configurar el conjunto de tareas de sustitución.

AfterInstall (un enlace para funcionesLambda)

Ejecutar funciones Lambda.

AllowTestTraffic Dirigir el tráfico del agente de prueba al grupo dedestino 2.

AfterAllowTestTraffic (un enlace parafunciones Lambda)

Ejecutar funciones Lambda.

BeforeAllowTraffic (un enlace para funcionesLambda)

Ejecutar funciones Lambda.

AllowTraffic Dirigir el tráfico desde el agente de escucha deproducción al grupo de destino 2.

AfterAllowTraffic Ejecutar funciones Lambda.

Note

Las funciones Lambda de un enlace son opcionales.

1.Ejecute todas las funciones Lambda especificadas en el enlace BeforeInstall del AppSpec file.

2.Durante el evento de ciclo de vida Install:

a. Se crea un conjunto de tareas de sustitución en el servicio de Amazon ECS.b. La aplicación en contenedor actualizada se instala en el conjunto de tareas de sustitución.c. El segundo grupo de destino se asocia al conjunto de tareas de sustitución.

En el siguiente diagrama se muestran los componentes de implementación con el nuevo conjuntode tareas de sustitución. La aplicación en contenedor está dentro del conjunto de tareas. El conjuntode tareas se compone de tres tareas. (Una aplicación puede tener cualquier número de tareas). Elsegundo grupo de destino se asocia ahora al conjunto de tareas de sustitución.

Versión de API 2014-10-0625

Page 35: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

3.Ejecute todas las funciones Lambda especificadas en el enlace AfterInstall del AppSpec file.

4.Se invoca el evento AllowTestTraffic. Durante este evento del ciclo de vida, el agente de escuchade prueba dirige el tráfico a la aplicación en contenedor actualizada.

5.Ejecute toda las funciones Lambda especificadas en el enlace AfterAllowTestTraffic delAppSpec file. Las funciones Lambda pueden validar la implementación con tráfico de prueba. Porejemplo, una función Lambda puede servir tráfico al agente de escucha de prueba y realizar unseguimiento de las métricas del conjunto de tareas de sustitución. Si se configuran restauraciones,puede configurar una alarma de CloudWatch que active una restauración cuando no se supere laprueba de validación de la función Lambda.

Una vez realizadas las pruebas de validación, se produce una de las situaciones siguientes:

• Si no se supera la validación y se han configurado las restauraciones, el estado de laimplementación se marca como Failed y los componentes vuelven al estado que tenían cuando seinició la implementación.

Versión de API 2014-10-0626

Page 36: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

• Si no se supera la validación y no se han configurado las restauraciones, el estado de laimplementación se marca como Failed y los componentes permanecen en su estado actual.

• Si se supera la validación, la implementación continúa hasta el enlace BeforeAllowTraffic .

Para obtener más información, consulte Monitorizar implementaciones con alarmas de CloudWatchen CodeDeploy (p. 357), Restauraciones automáticas (p. 343) y Configuración de las opcionesavanzadas de un grupo de implementaciones (p. 301).

6.Ejecute todas las funciones Lambda especificadas en el enlace BeforeAllowTraffic del AppSpecfile.

7.Se invoca el evento AllowTraffic. El tráfico se desvía del conjunto de tareas original al conjuntode tareas de sustitución. En el siguiente diagrama se muestra el conjunto de tareas de sustituciónrecibiendo tráfico de producción.

8.Ejecute todas las funciones Lambda especificadas en el enlace AfterAllowTraffic del AppSpecfile.

9.Después de que todos los eventos se ejecuten correctamente, el estado de la implementación seestablece en Succeeded y el conjunto de tareas original se elimina.

Versión de API 2014-10-0627

Page 37: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una AmazonECS Plataforma de computación

Carga de la revisión de la aplicaciónPonga un AppSpec file en Amazon S3 o introdúzcalo directamente en la consola o en la AWS CLI. Paraobtener más información, consulte Archivos de especificación de la aplicación (p. 34).

Creación de la aplicación y los grupos de implementacionesUn grupo de implementaciones de CodeDeploy en una Amazon ECS plataforma de computación identificaagentes de escucha para enviar tráfico a la aplicación de Amazon ECS actualizada y a dos grupos dedestinos utilizados durante la implementación. Un grupo de implementaciones también define un conjuntode opciones de configuración, como alarmas y configuraciones de restauración.

Implementación de la revisión de la aplicaciónAhora está listo para implementar el servicio de Amazon ECS actualizado especificado en su grupode implementaciones. Puede utilizar la consola de CodeDeploy o el comando create-deployment. Hayparámetros que puede especificar para controlar la implementación, que incluyen el grupo de revisión y deimplementaciones.

Actualización de la aplicaciónPuede llevar a cabo actualizaciones de la aplicación y, a continuación, utilizar la consola de CodeDeploy ollamar al comando create-deployment para enviar una revisión.

Implementaciones detenidas y que producen errorPuede utilizar la consola de CodeDeploy o el comando stop-deployment para detener una implementación.Cuando se intenta detener la implementación, sucede una de estas tres cosas:

• La implementación se detiene y la operación devuelve el estado “realizada correctamente”. En estecaso, no se ejecutan más eventos del ciclo de vida de implementación en el grupo de implementacionespara la implementación detenida.

• La implementación no se detiene inmediatamente y la operación devuelve el estado “pendiente”. En estecaso, podrían seguir ejecutándose algunos eventos del ciclo de vida de implementación en el grupo de

Versión de API 2014-10-0628

Page 38: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una EC2/On-

Premises Plataforma de computación

implementaciones. Después de finalizada la operación pendiente, las llamadas posteriores para detenerla implementación devuelven el estado “realizada correctamente”.

• La implementación no se puede detener y la operación devuelve un error. Para obtener más información,consulte Error Information y Common Errors en la AWS CodeDeploy API Reference.

Reimplementaciones y restauración de implementacionesCodeDeploy implementa restauraciones redirigiendo tráfico desde el conjunto de tareas de sustitución alconjunto de tareas original.

Puede configurar un grupo de implementaciones para que se restaure automáticamente si se danciertas condiciones, por ejemplo, si falla una implementación o si se supera el umbral de monitorizaciónde alarmas. Además, puede anular la configuración de restauración especificada para el grupo deimplementaciones en una implementación individual.

También puede optar por restaurar una implementación que produjo error manualmente, volviendo aimplementar una revisión implementada anteriormente.

En todos los casos, a la implementación nueva o restaurada se le asigna su propio ID de implementación.La consola de CodeDeploy muestra una lista de las implementaciones que son el resultado de unaimplementación automática.

Si vuelve a realizar una implementación, el grupo de destino asociado al conjunto de tareas originalde la implementación actual se asocia al siguiente conjunto de tareas de sustitución de la nuevaimplementación.

Para obtener más información, consulte Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Implementaciones blue/green (azul/verde) de Amazon ECS conAWS CloudFormationPuede usar AWS CloudFormation para administrar implementaciones blue/green (azul/verde) de AmazonECS a través de CodeDeploy. Para obtener más información, consulte Crear una implementación blue/green (azul/verde) de Amazon ECS a través de AWS CloudFormation (p. 335).

Note

La gestión de implementaciones blue/green (azul/verde) de Amazon ECS con AWSCloudFormation no está disponible en las regiones de África (Ciudad del Cabo), Asia Pacífico(Osaka-Local), China (Beijing/Ningxia) ni Europa (Milán).

Implementaciones en una EC2/On-PremisesPlataforma de computaciónEste tema proporciona información sobre los componentes y el flujo de trabajo de las implementaciones deCodeDeploy que utilizan la EC2/On-Premises plataforma de computación. Para obtener información sobrelas implementaciones blue/green, consulte Información general de la implementación blue/green (p. 9).

Temas• Componentes de implementación en una plataforma de computación EC2/On-Premises (p. 30)• Flujo de trabajo de implementación en una plataforma de computación EC2/On-Premises (p. 30)

Versión de API 2014-10-0629

Page 39: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una EC2/On-

Premises Plataforma de computación

• Configuración de instancias (p. 32)• Carga de la revisión de la aplicación (p. 33)• Creación de la aplicación y los grupos de implementaciones (p. 33)• Implementación de la revisión de la aplicación (p. 33)• Actualización de la aplicación (p. 33)• Implementaciones detenidas y que producen error (p. 33)• Reimplementaciones y restauración de implementaciones (p. 34)

Componentes de implementación en una plataforma decomputación EC2/On-PremisesEn el siguiente diagrama se muestran los componentes de una implementación de CodeDeploy en unaplataforma de computación EC2/On-Premises.

Flujo de trabajo de implementación en una plataforma decomputación EC2/On-PremisesEn el diagrama siguiente se muestran los principales pasos en la implementación de revisiones deaplicaciones:

Versión de API 2014-10-0630

Page 40: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una EC2/On-

Premises Plataforma de computación

Estos pasos incluyen:

1. Cree una aplicación y asígnele un nombre que represente de forma inequívoca las revisiones dela aplicación que desea implementar y la plataforma de computación de la aplicación. CodeDeployutiliza este nombre durante una implementación para asegurarse de que se haga referencia a loscomponentes correctos de la implementación, como el grupo de implementaciones, la configuración dela implementación y la revisión de la aplicación. Para obtener más información, consulte Creación deuna aplicación con CodeDeploy (p. 270).

2. Configure un grupo de implementaciones especificando un tipo de implementación y las instanciasen las que desea implementar las revisiones de la aplicación. Una implementación in situ actualizainstancias con la última revisión de la aplicación. Una implementación "blue/green" registra un conjuntode instancias de sustitución para el grupo de implementaciones con un balanceador de carga y cancelael registro de las instancias originales.

Puede especificar las etiquetas aplicadas a las instancias, los nombres de grupos de Amazon EC2 AutoScaling o ambas cosas.

Si especifica un grupo de etiquetas en un grupo de implementaciones, CodeDeploy se implementaen instancias que tienen al menos una de las etiquetas especificadas aplicadas. Si especifica dos omás grupos de etiquetas, CodeDeploy se implementa únicamente en las instancias que cumplan loscriterios de cada uno de los grupos de etiquetas. Para obtener más información, consulte Instancias deetiquetado para implementaciones en AWS CodeDeploy (p. 204).

En todos los casos, las instancias se deben configurar para utilizarse en una implementación (es decir,se deben etiquetar o deben pertenecer a un grupo de Amazon EC2 Auto Scaling) y deben tener elagente de CodeDeploy instalado y en ejecución.

Le proporcionamos una plantilla de AWS CloudFormation que le servirá para configurar rápidamenteuna instancia Amazon EC2 en función de Amazon Linux o Windows Server. También proporcionamosun agente de CodeDeploy independiente para que pueda instalarlo en instancias de Amazon Linux,Ubuntu Server, Red Hat Enterprise Linux (RHEL), o Windows Server. Para obtener más información,consulte Creación de un grupo de implementaciones con CodeDeploy (p. 285).

También puede especificar las siguientes opciones:• Notificaciones de Amazon SNS. Cree desencadenadores que envíen notificaciones a los suscriptores

de un tema de Amazon SNS cuando ocurran eventos específicos, como eventos de éxito o error,

Versión de API 2014-10-0631

Page 41: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una EC2/On-

Premises Plataforma de computación

en las implementaciones e instancias. Para obtener más información, consulte Monitorización deimplementaciones con notificaciones de eventos de Amazon SNS (p. 363).

• Administración de implementaciones basadas en alarmas. Implemente la monitorización de alarmasde Amazon CloudWatch para detener las implementaciones cuando las métricas superen o estén pordebajo de los umbrales establecidos en CloudWatch.

• Restauraciones de implementaciones automáticas. Configure una implementación para que serestaure automáticamente a la última revisión correcta conocida si se produce un error en unaimplementación o si se supera el umbral de la alarma.

3. Especifique una configuración de implementación para indicar en cuántas instancias se debenimplementar simultáneamente las revisiones de la aplicación y describir las condiciones de éxito yfracaso de la implementación. Para obtener más información, consulte Consulta de los detalles de lasconfiguraciones de implementación (p. 266).

4. Cargue una revisión de la aplicación en Amazon S3 o en GitHub. Además de los archivos que deseaimplementar y los scripts que desea ejecutar durante la implementación, debe incluir un applicationspecification file (AppSpec file). Este archivo contiene las instrucciones de implementación, como, porejemplo, dónde se deben copiar los archivos en cada instancia y cuándo se deben ejecutar los scriptsde implementación. Para obtener más información, consulte Gestión de revisiones de aplicaciones enCodeDeploy (p. 304).

5. Implemente la revisión de la aplicación en el grupo de implementaciones. El agente de CodeDeployen cada instancia del grupo de implementaciones copia la revisión de la aplicación desde AmazonS3 o GitHub a la instancia. A continuación, el agente de CodeDeploy separa los paquetes de larevisión y con el AppSpec file, copia los archivos a las ubicaciones especificadas y ejecuta losscripts de implementación. Para obtener más información, consulte Crear una implementación conCodeDeploy (p. 321).

6. Compruebe los resultados de la implementación. Para obtener más información, consulte Monitorizarimplementaciones en CodeDeploy (p. 355).

7. Vuelva a implementar una revisión. Se recomienda hacer esto si se necesita corregir un error en elcontenido de origen o ejecutar los scripts de la implementación en un orden diferente o solucionar unaimplementación que dio error. Para ello, empaquete nuevamente el contenido de origen, cualquier scriptde implementación y el AppSpec file en una revisión nueva y, a continuación, cargue la revisión en elbucket de Amazon S3 o en el repositorio de GitHub. Luego ejecute una nueva implementación en elmismo grupo de implementaciones con la nueva revisión. Para obtener más información, consulte Crearuna implementación con CodeDeploy (p. 321).

Configuración de instanciasDebe configurar instancias antes de implementar revisiones en la aplicación por primera vez. Si la revisiónde una aplicación requiere tres servidores de producción y dos servidores de copia de seguridad, lanzará outilizará cinco instancias.

Para aprovisionar instancias manualmente:

1. Instale el agente de CodeDeploy en las instancias. El agente de CodeDeploy se puede instalar eninstancias de Amazon Linux, Ubuntu Server, RHEL, y Windows Server.

2. Habilite el etiquetado si está utilizando etiquetas para identificar instancias en un grupo deimplementaciones. CodeDeploy utiliza etiquetas para identificar y agrupar instancias en grupos deimplementaciones de CodeDeploy. Si bien los tutoriales de Introducción utilizaron ambos, puede usaruna clave o un valor para definir una etiqueta para un grupo de implementaciones.

3. Inicie instancias Amazon EC2 con un perfil de instancia de IAM asociado. Se deberá asociar el perfil dela instancia de IAM a una instancia Amazon EC2 al lanzarla para que el agente de CodeDeploy verifiquela identidad de la instancia.

4. Cree un rol de servicio. Conceda acceso al servicio para que CodeDeploy pueda expandir las etiquetasen la cuenta de AWS.

Versión de API 2014-10-0632

Page 42: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones en una EC2/On-

Premises Plataforma de computación

Para una implementación inicial, la plantilla de AWS CloudFormation hace todo esto de maneraautomática. Crea y configura instancias Amazon EC2 nuevas y únicas en función de Amazon Linux oWindows Server con el agente de CodeDeploy instalado. Para obtener más información, consulte Trabajarcon instancias de CodeDeploy (p. 202).

Note

Para una implementación blue/green (azul/verde), puede elegir entre utilizar las instancias queya tiene para el entorno de sustitución o permitir que CodeDeploy aprovisione nuevas instanciascomo parte del proceso de implementación.

Carga de la revisión de la aplicaciónGuarde un AppSpec file en la carpeta raíz de la estructura de carpetas del contenido de origen de laaplicación. Para obtener más información, consulte Archivos de especificación de la aplicación (p. 34).

Empaquete la estructura de carpetas del contenido de origen de la aplicación en un formato de archivo dealmacenamiento como zip, tar o tar comprimido. Cargue el archivo de almacenamiento (la revision) a unbucket de Amazon S3 o repositorio de GitHub.

Note

Los formatos de archivo tar y tar comprimido (.tar y .tar.gz) no se admiten en las instancias deWindows Server.

Creación de la aplicación y los grupos de implementacionesUn grupo de implementaciones de CodeDeploy identifica un conjunto de instancias en función de susetiquetas, nombres de grupo de Amazon EC2 Auto Scaling o ambos. Se pueden implementar variasrevisiones de la aplicación en la misma instancia. Una revisión de la aplicación se puede implementar enmúltiples instancias.

Por ejemplo, podría agregar una etiqueta "Prod" a los tres servidores de producción y "Backup" a los dosservidores de backup. Estas dos etiquetas se pueden utilizar para crear dos grupos de implementacionesdistintos en la aplicación de CodeDeploy, lo que permite elegir qué conjunto de servidores (o ambos)deberían participar en una implementación.

Puede utilizar varios grupos de etiquetas en un grupo de implementaciones para restringir lasimplementaciones con un conjunto más pequeño de instancias. Para obtener información, consulteInstancias de etiquetado para implementaciones en AWS CodeDeploy (p. 204).

Implementación de la revisión de la aplicaciónAhora ya está listo para implementar la revisión de la aplicación desde Amazon S3 o GitHub al grupode implementaciones. Puede utilizar la consola de CodeDeploy o el comando create-deployment. Hayparámetros que puede especificar para controlar la implementación, que incluyen la revisión, el grupo deimplementaciones y la configuración de la implementación.

Actualización de la aplicaciónPuede llevar a cabo actualizaciones de la aplicación y, a continuación, utilizar la consola de CodeDeploy ollamar al comando create-deployment para enviar una revisión.

Implementaciones detenidas y que producen errorPuede utilizar la consola de CodeDeploy o el comando stop-deployment para detener una implementación.Cuando se intenta detener la implementación, sucede una de estas tres cosas:

Versión de API 2014-10-0633

Page 43: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioArchivos de especificación de la aplicación

• La implementación se detiene y la operación devuelve el estado “realizada correctamente”. En estecaso, no se ejecutan más eventos del ciclo de vida de implementación en el grupo de implementacionespara la implementación detenida. Es posible que algunos archivos se hayan copiado y que algunosscripts ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones.

• La implementación no se detiene inmediatamente y la operación devuelve el estado “pendiente”. En estecaso, podrían seguir ejecutándose algunos eventos del ciclo de vida de implementación en el grupo deimplementaciones. Es posible que algunos archivos se hayan copiado y que algunos scripts ya se hayanejecutado en una o varias de las instancias del grupo de implementaciones. Después de finalizada laoperación pendiente, las llamadas posteriores para detener la implementación devuelven el estado“realizada correctamente”.

• La implementación no se puede detener y la operación devuelve un error. Para obtener más información,consulte ErrorInformation y Common Errors en la AWS CodeDeploy API Reference.

Al igual que las implementaciones detenidas, las que dan error pueden dar lugar a que algunos eventosdel ciclo de vida de implementación ya se hayan ejecutado en una o varias de las instancias del grupode implementaciones. Para saber por qué se produjo un error en una implementación, utilice la consolade CodeDeploy, llame al comando get-deployment-instance o analice los datos del archivo de registrode la implementación que dio error. Para obtener más información, consulte Limpieza de revisiones deaplicación y archivos log (p. 181) y Visualización de los datos de log de las implementaciones de EC2/On-Premises de CodeDeploy (p. 339).

Reimplementaciones y restauración de implementacionesCodeDeploy implementa restauraciones volviendo a implementar una revisión implementada anteriormentecomo una nueva implementación.

Puede configurar un grupo de implementaciones para que se restaure automáticamente si se danciertas condiciones, por ejemplo, si falla una implementación o si se supera el umbral de monitorizaciónde alarmas. Además, puede anular la configuración de restauración especificada para el grupo deimplementaciones en una implementación individual.

También puede optar por restaurar una implementación que produjo error manualmente, volviendo aimplementar una revisión implementada anteriormente.

En todos los casos, a la implementación nueva o restaurada se le asigna su propio ID de implementación.En la lista de implementaciones que puede ver en la consola de CodeDeploy se muestra cuáles son elresultado de una implementación automática.

Para obtener más información, consulte Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Archivos de especificación de la aplicación deCodeDeploy

Un application specification file (AppSpec file), que es exclusivo para CodeDeploy, es un archivo conformato YAML o JSON. El AppSpec file se utiliza para administrar cada implementación como una serie deenlaces de eventos de ciclo de vida, que se definen en el archivo.

Para obtener información acerca de cómo crear un AppSpec file con el formato correcto, consulteReferencia de AppSpec File de CodeDeploy (p. 402).

Temas• Archivos AppSpec en una Amazon ECS Plataforma de computación (p. 35)

Versión de API 2014-10-0634

Page 44: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioArchivos AppSpec en una AmazonECS Plataforma de computación

• Archivos AppSpec en una plataforma de computación AWS Lambda (p. 35)• Archivos AppSpec en una plataforma de computación EC2/On-Premises (p. 35)• Cómo el agente de CodeDeploy utiliza el archivo AppSpec (p. 36)

Archivos AppSpec en una Amazon ECS Plataforma decomputaciónSi una aplicación utiliza la plataforma de computación Amazon ECS, el AppSpec file puede tener formatoYAML o JSON. También se puede escribir directamente en un editor en la consola. El AppSpec file seutiliza para especificar:

• El nombre del servicio de Amazon ECS y el nombre del contenedor y el puerto utilizado para dirigir eltráfico hacia el nuevo conjunto de tareas.

• Las funciones que se van a usar como pruebas de validación.

Puede ejecutar funciones de Lambda de validación después de los eventos del ciclo de vida deimplementación. Para obtener más información, consulte Sección "hooks" de AppSpec para unaimplementación de Amazon ECS (p. 416), Estructura de un archivo AppSpec para las implementacionesde Amazon ECS (p. 403) y AppSpec File Ejemplo de una implementación de Amazon ECS (p. 429).

Archivos AppSpec en una plataforma de computaciónAWS LambdaSi una aplicación utiliza la AWS Lambda plataforma de computación, el AppSpec file puede tener formatoYAML o JSON. También se puede escribir directamente en un editor en la consola. El AppSpec file seutiliza para especificar:

• La versión de la función de AWS Lambda que se debe implementar.• Las funciones que se van a usar como pruebas de validación.

Puede ejecutar funciones de Lambda de validación después de los eventos del ciclo de vida deimplementación. Para obtener más información, consulte Sección "hooks" de AppSpec para unaimplementación de AWS Lambda (p. 419).

Archivos AppSpec en una plataforma de computaciónEC2/On-PremisesSi una aplicación utiliza la EC2/On-Premises plataforma de computación, el AppSpec file siempre tiene elformato YAML. El AppSpec file se utiliza para:

• Asignar los archivos de origen de la revisión de la aplicación a sus destinos en la instancia.• Especificar permisos personalizados para los archivos implementados.• Especificar los scripts que se van a ejecutar en cada instancia en las distintas fases del proceso de

implementación.

Puede ejecutar scripts en una instancia después de muchos de los eventos individuales del ciclo de vidade implementación. CodeDeploy ejecuta solo los scripts especificados en el archivo, pero esos scriptspueden llamar a otros scripts en la instancia. Puede ejecutar cualquier tipo de script, siempre y cuando

Versión de API 2014-10-0635

Page 45: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCómo el agente de CodeDeploy utiliza el archivo AppSpec

sea compatible con el sistema operativo que se ejecuta en las instancias. Para obtener más información,consulte Sección "hooks" de AppSpec para una implementación de EC2/On-Premises (p. 421).

Cómo el agente de CodeDeploy utiliza el archivoAppSpecDurante la implementación, el agente de CodeDeploy busca el nombre del evento actual en la secciónhooks del AppSpec file. Si el evento no se encuentra, el agente de CodeDeploy va al siguiente paso. Siel evento se encuentra, el agente de CodeDeploy recupera la lista de scripts que hay que ejecutar. Losscripts se ejecutan de forma secuencial, en el orden en que aparecen en el archivo. El estado de cadascript se registra en el archivo de registro del agente de CodeDeploy en la instancia.

Si un script se ejecuta correctamente, devuelve un código de salida de 0 (cero).

Note

El agente de CodeDeploy no se utiliza en una implementación de AWS Lambda o de AmazonECS.

Durante el evento Install, el agente de CodeDeploy utiliza los mapeos definidos en la sección files delAppSpec file para determinar las carpetas o los archivos que hay que copiar de la revisión a la instancia.

Si el agente de CodeDeploy instalado en el sistema operativo no coincide con lo que se indica en elAppSpec file, la implementación falla.

Para obtener información acerca de los archivos de registro del agente de CodeDeploy, consulte Trabajarcon el agente de CodeDeploy (p. 176).

Versión de API 2014-10-0636

Page 46: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Aprovisionar un usuario de IAM

Introducción a CodeDeployPara poder usar AWS CodeDeploy por primera vez, debe completar los pasos de configuración.

Para comenzar, debe crear una cuenta en AWS. Para inscribirse, vaya a https://aws.amazon.com/ y elijaCreate an AWS Account (Crear una cuenta de AWS).

Entonces podrá continuar con el resto de las tareas de configuración de esta sección.

Temas• Paso 1: Aprovisionar un usuario de IAM (p. 37)• Paso 2: Instalar o actualizar y, a continuación, configurar la AWS CLI (p. 38)• Paso 3: Crear un rol de servicio para CodeDeploy (p. 39)• Paso 4: Crear un perfil de instancia de IAM para las instancias Amazon EC2 (p. 44)

Paso 1: Aprovisionar un usuario de IAMSiga estas instrucciones para preparar a un usuario de IAM para utilizar CodeDeploy:

1. Cree un usuario de IAM o use uno asociado a su cuenta de AWS. Para obtener más información,consulte Creación de un usuario de IAM en la Guía del usuario de IAM.

2. Copie la siguiente política y asóciela al usuario de IAM para conceder al usuario de IAM acceso aCodeDeploy (y a los servicios y las acciones de AWS de los que depende CodeDeploy):

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "autoscaling:*", "codedeploy:*", "ec2:*", "lambda:*", "ecs:*", "elasticloadbalancing:*", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoles", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile", "s3:*", "ssm:*" ], "Resource" : "*" } ]

Versión de API 2014-10-0637

Page 47: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Instalar o actualizar y, a

continuación, configurar la AWS CLI

}

La política anterior concede al usuario de IAM el acceso necesario para implementar una AWSLambda plataforma de computación, una EC2/On-Premises plataforma de computación y una AmazonECS plataforma de computación.

Para obtener información sobre cómo asociar una política a un usuario de IAM, consulteAdministración de políticas. Para obtener información sobre cómo restringir a los usuarios a unconjunto limitado de acciones y recursos de CodeDeploy, consulte Administración de identidades yaccesos en AWS CodeDeploy (p. 376).

Puede utilizar las plantillas de AWS CloudFormation que se incluyen en esta documentaciónpara lanzar instancias Amazon EC2 compatibles con CodeDeploy. Si desea utilizar plantillas deAWS CloudFormation para crear aplicaciones, grupos de implementaciones o configuraciones deimplementación, asocie una política adicional al usuario de IAM para concederle acceso a AWSCloudFormation (y a los servicios y las acciones de AWS de los que depende AWS CloudFormation):

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ]}

Para obtener información acerca de otros servicios de AWS mencionados en estas instrucciones,consulte:

• Información general sobre las políticas de IAM de AWS• Control del acceso de los usuarios al balanceador de carga• Control del acceso a los recursos de Auto Scaling• Control del acceso a AWS CloudFormation con AWS Identity and Access Management

Paso 2: Instalar o actualizar y, a continuación,configurar la AWS CLI

Para llamar a los comandos de CodeDeploy desde la AWS CLI en un equipo de desarrollo local, debeinstalar la AWS CLI. Los comandos de CodeDeploy están disponibles desde la versión 1.6.1 de la AWSCLI. Los comandos de CodeDeploy para trabajar con instancias on-premises están disponibles desde laversión 1.7.19 de la AWS CLI.

Si tiene instalada una versión anterior de la AWS CLI, debe actualizarla para que estén disponibles loscomandos de CodeDeploy. Llame a aws --version para comprobar la versión.

Para instalar o actualizar la AWS CLI:

1. Siga las instrucciones de Instalación de la AWS Command Line Interface para instalar o actualizar laAWS CLI.

2. Para configurar la AWS CLI, consulte Configuración de la AWS Command Line Interface yAdministración de las claves de acceso de los usuarios de IAM.

Versión de API 2014-10-0638

Page 48: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Crear un rol de servicio

Important

Cuando configure la AWS CLI, se le pedirá que especifique una región de AWS. Especifiqueuna de las regiones admitidas que se encuentran en la lista de Regiones y puntos de enlacede la AWS General Reference.

3. Para verificar la instalación o actualización, llame al siguiente comando desde la AWS CLI:

aws deploy help

Si se ejecuta correctamente, este comando muestra una lista de los comandos de CodeDeploydisponibles.

Paso 3: Crear un rol de servicio para CodeDeployEn AWS se utilizan roles de servicio para conceder permisos a un servicio de AWS de modo que tengaacceso a recursos de AWS. Las políticas que asocie al rol de servicio determinarán a qué recursos deAWS tendrá acceso el servicio y qué puede hacer con esos recursos.

El rol de servicio que crea para CodeDeploy debe conceder los permisos necesarios para su plataformade computación. Si implementa más de una plataforma de computación, cree un rol de servicio para cadauna. Para añadir permisos, asocie una o más de las siguientes políticas suministradas por AWS:

Para implementaciones de EC2/On-Premises, asocie la política AWSCodeDeployRole. Proporciona lospermisos necesarios para que su rol de servicio:

• Lea las etiquetas en las instancias o identifique sus instancias Amazon EC2 mediante nombres de grupode Amazon EC2 Auto Scaling.

• Lea, cree, actualice y elimine grupos de Amazon EC2 Auto Scaling, enlaces de ciclo de vida y políticasde escalado.

• Publique información para temas de Amazon SNS.• Recupere información sobre alarmas de CloudWatch.• Lea y actualice Elastic Load Balancing.

Note

Si crea un grupo de Auto Scaling con una plantilla de inicio, debe añadir los siguientespermisos:• ec2:RunInstances

• ec2:CreateTags

• iam:PassRolePara obtener más información, consulte Paso 3: Crear un rol de servicio (p. 39) y Creaciónde una plantilla de lanzamiento para un grupo de Auto Scaling.

En las implementaciones de Amazon ECS, si desea obtener acceso total a los servicios de soporte técnico,asocie la política AWSCodeDeployRoleForECS. Proporciona los permisos necesarios para que su rol deservicio:

• Lea, actualice y elimine conjuntos de tareas de Amazon ECS.• Actualice grupos de destino de Elastic Load Balancing, agentes de escucha y reglas.• Invoque a funciones de AWS Lambda.• Acceda a archivos de revisión en buckets de Amazon S3.

Versión de API 2014-10-0639

Page 49: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un rol de servicio (consola)

• Recupere información sobre alarmas de CloudWatch.• Publique información para temas de Amazon SNS.

En las implementaciones de Amazon ECS, si desea obtener acceso limitado a los servicios de soportetécnico, asocie la política AWSCodeDeployRoleForECSLimited. Proporciona los permisos necesariospara que su rol de servicio:

• Lea, actualice y elimine conjuntos de tareas de Amazon ECS.• Recupere información sobre alarmas de CloudWatch.• Publique información para temas de Amazon SNS.

Para implementaciones de AWS Lambda, asocie la política AWSCodeDeployRoleForLambda.Proporciona los permisos necesarios para que su rol de servicio:

• Lea, actualice e invoque funciones AWS Lambda y alias.• Acceda a archivos de revisión en buckets de Amazon S3.• Publique información para temas de Amazon SNS.• Recupere información sobre alarmas de CloudWatch.

Como parte de la configuración del rol de servicio, también actualizará su relación de confianza paraespecificar a qué puntos de enlace desea concederle acceso.

Puede crear un rol de servicio con la consola de IAM, la AWS CLI o las API de IAM.

Temas• Creación de un rol de servicio (consola) (p. 40)• Creación de un rol de servicio (CLI) (p. 42)• Obtención del ARN del rol de servicio (consola) (p. 43)• Obtención del ARN del rol de servicio (CLI) (p. 44)

Creación de un rol de servicio (consola)1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://

console.aws.amazon.com/iam/.2. En el panel de navegación, seleccione Roles y luego seleccione Create role.3. En la página Create role (Crear rol), seleccione AWS service (Servicio de) y, en Choose the service

that will use this role (Seleccione el servicio que va a usar este rol), haga clic en CodeDeploy.4. En Select your use case (Seleccione su caso de uso), elija su caso de uso:

• Para implementaciones de EC2/On-Premises, elija CodeDeploy.• Para implementaciones de Amazon ECS, elija CodeDeploy - ECS.• Para implementaciones de AWS Lambda, elija CodeDeploy para Lambda.

5. Elija Next: Permissions.6. En la página Attached permissions policy (Política de permisos asociada), se muestra la política de

permisos. Elija Next: Tags (Siguiente: Etiquetas).7. En la página Review (Revisar), en Role name (Nombre de rol), escriba un nombre para el rol de

servicio (por ejemplo, CodeDeployServiceRole), and then choose Create role.

También puede incluir una descripción para este rol de servicio en Role description (Descripción delrol).

Versión de API 2014-10-0640

Page 50: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un rol de servicio (consola)

8. Si desea que este rol de servicio tenga permiso de acceso a todos los puntos de enlace contempladosactualmente, ya ha terminado con este procedimiento.

Para restringir el acceso de este rol de servicio a algunos puntos de enlace, en la lista de roles,examine y elija el rol que ha creado y continúe en el paso siguiente.

9. En la pestaña Trust relationships (Relaciones de confianza), elija Edit trust relationship (Editar relaciónde confianza).

10. Debe aparecer la siguiente política, que concede al rol de servicio el permiso de acceso a todos lospuntos de enlace compatibles:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

Para conceder acceso al rol de servicio a solo algunos puntos de enlace admitidos, reemplace elcontenido del recuadro Policy Document (Documento de política) con la política siguiente. Quite laslíneas de los puntos de enlace a los que desea evitar el acceso y, a continuación, elija Update TrustPolicy (Actualizar política de confianza).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

Versión de API 2014-10-0641

Page 51: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un rol de servicio (CLI)

Para obtener más información acerca de la creación de roles de servicio, consulte Creación de un rol paradelegar permisos a un servicio de AWS en la Guía del usuario de IAM.

Creación de un rol de servicio (CLI)1. En el equipo de implementación, crea un archivo de texto con un nombre, como por ejemplo,

CodeDeployDemo-Trust.json. Este archivo se utiliza para permitir a CodeDeploy trabajar en sunombre.

Aplique alguna de las siguientes acciones:

• Para conceder acceso a todas las regiones de AWS admitidas, guarde el siguiente contenido en elarchivo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

• Para conceder acceso solo a algunas regiones, escriba el siguiente contenido en el archivo yelimine las líneas de las regiones a las que no desee conceder acceso:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]

Versión de API 2014-10-0642

Page 52: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioObtención del ARN del rol de servicio (consola)

}

Note

No incluya una coma después del último punto de enlace de la lista.2. Desde el mismo directorio, ejecute el comando create-role para crear un rol de servicio con el nombre

CodeDeployServiceRole basado en la información del archivo de texto que acaba de crear:

aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

En la salida del comando, anote el valor de la entrada Arn para el objeto Role. Lo necesitará másadelante al crear grupos de implementaciones. Si no recuerda el valor, siga las instrucciones indicadasen Obtención del ARN del rol de servicio (CLI) (p. 44).

3. La política administrada que utilice dependerá de la plataforma de computación.

• Para una implementación en una EC2/On-Premises plataforma de computación:

Ejecute el comando attach-role-policy para conceder al rol de servicio CodeDeployServiceRolelos permisos correspondientes a la política administrada de IAM denominadaAWSCodeDeployRole. Por ejemplo:

aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole

• Para una implementación en una AWS Lambda plataforma de computación:

Ejecute el comando attach-role-policy para conceder al rol de servicio CodeDeployServiceRolelos permisos correspondientes a la política administrada de IAM denominadaAWSCodeDeployRoleForLambda. Por ejemplo:

aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda

• Para una implementación en una Amazon ECS plataforma de computación:

Ejecute el comando attach-role-policy para conceder al rol de servicio CodeDeployServiceRolelos permisos correspondientes a la política administrada de IAM denominadaAWSCodeDeployRoleForECS o AWSCodeDeployRoleForECSLimited. Por ejemplo:

aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS

Para obtener más información acerca de la creación de roles de servicio, consulte Creación de un rol paraun servicio de AWS en la Guía del usuario de IAM.

Obtención del ARN del rol de servicio (consola)Para obtener el ARN del rol de servicio con la consola de IAM:

Versión de API 2014-10-0643

Page 53: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioObtención del ARN del rol de servicio (CLI)

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

2. Seleccione Roles en el panel de navegación.3. En el cuadro Filter (Filtro), escriba CodeDeployServiceRole y, a continuación, pulse Intro.4. Elija CodeDeployServiceRole.5. Anote el valor del campo Role ARN (ARN de rol).

Obtención del ARN del rol de servicio (CLI)Para obtener el ARN del rol de servicio con la AWS CLI, ejecute el comando get-role para el rol de servicioCodeDeployServiceRole:

aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text

El valor devuelto es el ARN del rol de servicio.

Paso 4: Crear un perfil de instancia de IAM para lasinstancias Amazon EC2

Note

Si utiliza la plataforma de computación de Amazon ECS o AWS Lambda, omita este paso.Las implementaciones de Amazon ECS implementan un servicio de Amazon ECS y lasimplementaciones de AWS Lambda implementa una versión de función Lambda, de modo que noes obligatorio un perfil de instancias para instancias Amazon EC2.

Las instancias Amazon EC2 necesitan permiso para acceder a los buckets de Amazon S3 o a losrepositorios de GitHub en los que se encuentran las aplicaciones. Para lanzar instancias AmazonEC2 compatibles con CodeDeploy, debe crear un rol de IAM adicional: un perfil de instancia. Estasinstrucciones le indicarán cómo crear un perfil de instancia de IAM para asociarlo a las instancias AmazonEC2. Este rol concede a CodeDeploy permiso de acceso a los buckets de Amazon S3 o los repositorios deGitHub donde se encuentran las aplicaciones.

Puede crear un perfil de instancia de IAM con la AWS CLI, la consola de IAM o con las API de IAM.Note

Puede asociar un perfil de instancia de IAM a una instancia Amazon EC2; en el momento deiniciarla, o bien asociarlo a una instancia ya iniciada anteriormente. Para obtener más información,consulte Perfiles de instancia.

Temas• Creación de un perfil de instancia de IAM para las instancias Amazon EC2 (CLI) (p. 44)• Creación de un perfil de instancia de IAM para las instancias Amazon EC2 (consola) (p. 47)

Creación de un perfil de instancia de IAM para lasinstancias Amazon EC2 (CLI)En estos pasos suponemos que ya ha seguido las instrucciones de los tres primeros pasos de Introduccióna CodeDeploy (p. 37).

Versión de API 2014-10-0644

Page 54: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un perfil de instancia de IAMpara las instancias Amazon EC2 (CLI)

1. En el equipo de implementación, crea un archivo de texto con el nombre CodeDeployDemo-EC2-Trust.json. Pegue el contenido siguiente, que permite a Amazon EC2 actuar en su nombre:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. En el mismo directorio, crea un archivo de texto con el nombre CodeDeployDemo-EC2-Permissions.json. Pegue el siguiente contenido:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Note

Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 alos que las instancias Amazon EC2 deban tener acceso. Asegúrese de conceder acceso alos buckets de Amazon S3 que contienen el agente de CodeDeploy. De lo contrario, puedeproducirse un error cuando el agente de CodeDeploy se instale o actualice en las instancias.Para conceder al perfil de instancia de IAM acceso únicamente a algunos buckets del kit derecursos de CodeDeploy en Amazon S3, use la política siguiente, pero elimine las líneas delos buckets a los que quiere impedir el acceso:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*",

Versión de API 2014-10-0645

Page 55: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un perfil de instancia de IAMpara las instancias Amazon EC2 (CLI)

"arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]}

3. Desde el mismo directorio, llame al comando create-role para crear un rol de IAM denominadoCodeDeployDemo-EC2-Instance-Profile basado en la información del primer archivo:

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json

4. Desde el mismo directorio, llame al comando put-role-policy para conceder al rol CodeDeployDemo-EC2-Instance-Profile los permisos correspondientes a la información del segundo archivo:

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json

5. Llame a attach-role-policy a fin de conceder al rol permisos de Amazon EC2 Systems Manager paraque SSM pueda instalar el agente de CodeDeploy. Esta política no es necesaria si tiene pensadoinstalar el agente desde el bucket de Amazon S3 público con la línea de comandos. Obtenga másinformación sobre la instalación del agente de CodeDeploy.

aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile

6. Ejecute el comando create-instance-profile seguido del comando add-role-to-instance-profile paracrear un perfil de instancia de IAM denominado CodeDeployDemo-EC2-Instance-Profile. Elperfil de instancia permite a Amazon EC2 pasar el rol de IAM CodeDeployDemo-EC2-Instance-Profile a una instancia Amazon EC2 en el momento de lanzarla por primera vez:

aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profileaws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

Si necesita obtener el nombre del perfil de instancia de IAM, consulte list-instance-profiles-for-role enla sección sobre IAM de la Referencia de la AWS CLI.

Ya ha creado un perfil de instancia de IAM para asociarlo a las instancias Amazon EC2. Para obtener másinformación, consulte Roles de IAM para Amazon EC2 en la Guía del usuario de Amazon EC2.

Versión de API 2014-10-0646

Page 56: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un perfil de instancia de IAM

para las instancias Amazon EC2 (consola)

Creación de un perfil de instancia de IAM para lasinstancias Amazon EC2 (consola)1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://

console.aws.amazon.com/iam/.2. En el panel de navegación de la consola de IAM, elija Policies (Políticas) y, a continuación, Create

policy (Crear política). (Si aparece el botón Get Started, elíjalo y, a continuación, elija Create Policy.)3. En la página Create policy (Crear política), pegue lo siguiente en la pestaña JSON:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Note

Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 alos que las instancias Amazon EC2 deban tener acceso. Asegúrese de conceder acceso alos buckets de Amazon S3 que contienen el agente de CodeDeploy. De lo contrario, puedeproducirse un error cuando el agente de CodeDeploy se instale o actualice en las instancias.Para conceder al perfil de instancia de IAM acceso únicamente a algunos buckets del kit derecursos de CodeDeploy en Amazon S3, use la política siguiente, pero elimine las líneas delos buckets a los que quiere impedir el acceso:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*",

Versión de API 2014-10-0647

Page 57: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un perfil de instancia de IAM

para las instancias Amazon EC2 (consola)

"arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]}

4. Elija Review policy.5. En la página Create policy (Crear política), escriba CodeDeployDemo-EC2-Permissions en el

cuadro Policy Name (Nombre de la política).6. (Opcional) En Description (Descripción), escriba una descripción para la política.7. Elija Create Policy.8. En el panel de navegación, seleccione Roles y luego seleccione Create role.9. En la página Create role (Crear rol), seleccione AWS service (Servicio de) y, en Choose the service

that will use this role (Seleccione el servicio que va a usar este rol), haga clic en EC2.10. En la lista Select your use case (Seleccionar caso de uso), elija EC2.11. Elija Next: Permissions.12. En la lista de políticas, seleccione la casilla de verificación situada junto a la política que acaba de

crear (CodeDeployDemo-EC2-Permissions). Si es necesario, utilice el cuadro de búsqueda paraencontrar la política.

13. Para utilizar Systems Manager para instalar o configurar el agente de CodeDeploy, seleccione lacasilla situada junto a AmazonssmManagedInstanceCore. Esta política administrada por AWS permiteque una instancia utilice la funcionalidad básica del servicio Systems Manager. Si es necesario, utiliceel cuadro de búsqueda para encontrar la política. Esta política no es necesaria si tiene pensadoinstalar el agente desde el bucket de Amazon S3 público con la línea de comandos. Obtenga másinformación sobre la instalación del agente de CodeDeploy.

14. Elija Siguiente: Etiquetas15. Deje la página Add tags (optional) (Añadir etiquetas (opcional)) tal como está y elija Next: Review

(Siguiente: Revisar).16. En la página Review (Revisar), en Role name (Nombre de rol), escriba un nombre para el rol de

servicio (por ejemplo, CodeDeployDemo-EC2-Instance-Profile), and then choose Create role.

También puede incluir una descripción para este rol de servicio en Role description (Descripción delrol).

Ya ha creado un perfil de instancia de IAM para asociarlo a las instancias Amazon EC2. Para obtener másinformación, consulte Roles de IAM para Amazon EC2 en la Guía del usuario de Amazon EC2.

Versión de API 2014-10-0648

Page 58: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con otros servicios de AWS

Integraciones de productos yservicios con CodeDeploy

De forma predeterminada, CodeDeploy se integra con una serie de servicios de AWS, así como productosy servicios de socios. La siguiente información puede ayudarle a configurar CodeDeploy para integrarlocon los productos y servicios que utilice.

• Integración con otros servicios de AWS (p. 49)• Integración con productos y servicios de socios (p. 60)• Ejemplos de integración de la comunidad (p. 67)

Integración con otros servicios de AWSCodeDeploy está integrado con los siguientes servicios de AWS:

Amazon CloudWatch Amazon CloudWatch es un servicio demonitorización para los recursos de la nube deAWS y las aplicaciones que se ejecutan en AWS.Puede utilizar Amazon CloudWatch para recolectary realizar un seguimiento de métricas, recolectary monitorear archivos de registro, y estableceralarmas. CodeDeploy es compatible con lassiguientes herramientas de CloudWatch:

• Alarmas de CloudWatch para monitorizarlas implementaciones y detenerlas cuandolas métricas de monitoreo especificadassuperen o caigan por debajo de los umbralesque especifique en una regla de alarmaCloudWatch. Para utilizar la monitorización dealarmas, primero debe configurar una alarmaen CloudWatch y, a continuación, añadirla a laaplicación o al grupo de implementaciones deCodeDeploy, en los que la implementación debadetenerse cuando la alarma se active.

Más información:• Creación de alarmas de CloudWatch Logs

• Amazon CloudWatch Events para detectar yreaccionar a cambios de estado de una instanciao una implementación en las operaciones deCodeDeploy. A continuación, en función de lasreglas que cree, Eventos de CloudWatch invocaa una o varias acciones de destino cuando unaimplementación o una instancia entra en elestado especificado en una regla.

Más información:

Versión de API 2014-10-0649

Page 59: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con otros servicios de AWS

• Monitorización de implementaciones conAmazon CloudWatch Events (p. 359)

• Amazon CloudWatch Logs para monitorizarlos tres tipos de log creados por el agente deCodeDeploy sin necesidad de iniciar sesión encada una de las instancias.

Más información:• Consulta de registros de CodeDeploy en la

consola de CloudWatch Logs

Amazon EC2 Auto Scaling CodeDeploy admite Amazon EC2 Auto Scaling.Este servicio de AWS puede lanzar instanciasAmazon EC2 automáticamente en función de loscriterios que especifique, por ejemplo:

• Límites superados para la utilización de CPUespecificada.

• Lecturas o escrituras en disco.• Tráfico de red entrante o saliente durante un

intervalo de tiempo especificado.

Puede escalar un grupo de instancias AmazonEC2 cuando las necesite y, a continuación, utilizarCodeDeploy para implementar revisiones deaplicación automáticamente. Amazon EC2 AutoScaling termina dichas instancias Amazon EC2cuando dejan de ser necesarias.

Más información:

• Integración de CodeDeploy con Amazon EC2Auto Scaling (p. 54)

• Tutorial: Uso de CodeDeploy para laimplementación de una aplicación en un grupode Amazon EC2 Auto Scaling (p. 111)

• Under the Hood: CodeDeploy and Auto ScalingIntegration

Versión de API 2014-10-0650

Page 60: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con otros servicios de AWS

Amazon Elastic Container Service Puede utilizar CodeDeploy para implementar unaversión en contenedor de Amazon ECS comoun conjunto de tareas. CodeDeploy realiza unaimplementación blue/green (azul/verde) instalandouna versión actualizada de la aplicación comoun nuevo conjunto de tareas de sustitución.CodeDeploy redirige el tráfico de produccióndel conjunto de tareas de la aplicación originalal conjunto de tareas de sustitución. Cuando laimplementación se realiza correctamente, setermina el conjunto de tareas original. Para obtenermás información sobre Amazon ECS, consulteAmazon Elastic Container Service.

Puede administrar la forma en que el tráfico sedesplaza al conjunto de tareas actualizado duranteuna implementación eligiendo una configuracióncontrolada, lineal o todo a la vez. Para obtener másinformación acerca de las implementaciones deAmazon ECS, consulte Implementaciones en unaplataforma de computación de Amazon ECS.

AWS CloudTrail CodeDeploy está integrado con AWS CloudTrail.Este servicio captura las llamadas a la APIrealizadas por o en nombre de CodeDeploy en unacuenta de AWS y envía los archivos de registroal bucket de Amazon S3 que se especifique.CloudTrail captura las llamadas a la API realizadasdesde la consola de CodeDeploy, desde loscomandos de CodeDeploy emitidos en la AWSCLI o desde las API de CodeDeploy directamente.Mediante la información recopilada por CloudTrail,puede determinar:

• La solicitud que se realizó a CodeDeploy.• La dirección IP de origen desde la que se realizó

la solicitud.• Quién ha realizado la solicitud.• Cuando se realizó.

Más información:

• Monitorización de implementaciones con AWSCloudTrail (p. 361)

Versión de API 2014-10-0651

Page 61: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con otros servicios de AWS

AWS Cloud9 AWS Cloud9 es un entorno de desarrollo integrado(IDE) online basado en la nube que puede utilizarpara escribir, ejecutar, depurar e implementarcódigo y solo necesita un navegador que estéinstalado en una máquina con conexión a Internet.AWS Cloud9 cuenta con un editor de código, undepurador, un terminal y herramientas esenciales,como AWS CLI y Git.

• Puede utilizar el IDE de AWS Cloud9 paraejecutar, depurar y crear código que esté enun repositorio de GitHub. Puede ver, modificary guardar el código utilizando la ventanaEnvironment (Entorno) de su IDE y las pestañasdel editor. Cuando haya terminado, puedeutilizar Git en la sesión de terminal de AWSCloud9 para insertar cambios en el código ensu repositorio de GitHub y, a continuación,utilizar AWS CodeDeploy para implementar susactualizaciones. Para obtener más informaciónacerca de cómo utilizar AWS Cloud9 con GitHub,consulte Ejemplo de GitHub para AWS Cloud9.

• Puede utilizar el IDE de AWS Cloud9 paraactualizar una función de AWS Lambda. Acontinuación, puede utilizar AWS CodeDeploypara crear una implementación que desplacetráfico a la nueva versión de su función AWSLambda. Para obtener más información, consulteTrabajo con funciones AWS Lambda en el AWSCloud9 Integrated Development Environment(IDE).

Para obtener más información sobre AWS Cloud9,consulte Qué es AWS Cloud9 e Introducción aAWS Cloud9.

Versión de API 2014-10-0652

Page 62: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con otros servicios de AWS

AWS CodePipeline AWS CodePipeline es un servicio de entregacontinua que permite modelar, visualizar yautomatizar los pasos necesarios para lanzarsoftware en un proceso de entrega continua. AWSCodePipeline le permite definir su propio procesode lanzamiento para que el servicio compile,pruebe e implemente el código cada vez quecambie. Por ejemplo, puede tener tres gruposde implementaciones para una aplicación: Beta,Gamma y Prod. Puede configurar una canalizaciónpara que, cada vez que ocurra un cambio en elcódigo fuente, las actualizaciones se implementenen cada uno de los grupos.

Puede configurar AWS CodePipeline de modo quese use CodeDeploy para la implementación:

• Código en instancias Amazon EC2, instanciason-premises o ambas

• Versiones de funciones AWS Lambda sinservidor

Puede crear la aplicación de CodeDeploy, laimplementación y el grupo de implementaciones ausar en una etapa de la acción de implementación,ya sea antes de crear la canalización o al usar elasistente Create Pipeline (Crear canalización).

Más información:

• Guía de introduccion a AWS para operacionesde desarrollo: información acerca de cómoutilizar CodePipeline con CodeDeploy paraentregar e implementar código fuente derepositorios de CodeCommit a instanciasAmazon EC2 de forma continua.

• Tutorial: Crear una canalización simple (bucketde Amazon S3)

• Tutorial: Crear una canalización sencilla(repositorio de CodeCommit)

• Tutorial: crear una canalización de cuatro etapas

Modelo de aplicación sin servidor de AWS Modelo de aplicación sin servidor de AWS (AWSSAM) es un modelo para definir aplicaciones sinservidor. Amplía AWS CloudFormation para ofrecerun modo simplificado de definir las funciones AWSLambda, las API de Amazon API Gateway y lastablas de Amazon DynamoDB necesarias parauna aplicación sin servidor. Si ya utiliza AWS SAM,puede añadir preferencias de implementaciónpara empezar a usar CodeDeploy para administrarla forma en que se desvía el tráfico durante laimplementación de una aplicación AWS Lambda.

Para obtener más información, consulte Modelo deaplicación sin servidor de AWS.

Versión de API 2014-10-0653

Page 63: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAmazon EC2 Auto Scaling

Elastic Load Balancing CodeDeploy es compatible con Elastic LoadBalancing, un servicio que distribuye el tráficoentrante de aplicaciones entre varias instanciasAmazon EC2.

Para las implementaciones de CodeDeploy, losbalanceadores de carga impiden que el tráfico deInternet se enrute a instancias cuando estas noestén listas, se están implementando objetos enellas o estas ya no se necesitan como parte de unentorno.

Más información:

• Integración de CodeDeploy con Elastic LoadBalancing (p. 57)

Temas• Integración de CodeDeploy con Amazon EC2 Auto Scaling (p. 54)• Integración de CodeDeploy con Elastic Load Balancing (p. 57)

Integración de CodeDeploy con Amazon EC2 AutoScalingCodeDeploy es compatible con Amazon EC2 Auto Scaling un servicio de AWS, que puede lanzarinstancias Amazon EC2 de forma automática, de acuerdo con las condiciones que defina. Estascondiciones pueden incluir que se supere un límite de tiempo específico para el uso de la CPU, que se leao escriba el disco o el tráfico de red entrante y saliente. Amazon EC2 Auto Scaling termina las instanciascuando dejan de ser necesarias. Para obtener más información, consulte ¿Qué es Amazon EC2 AutoScaling?

Cuando se lanzan instancias Amazon EC2 nuevas como parte de un grupo de Amazon EC2 Auto Scaling,CodeDeploy puede implementar automáticamente las revisiones en las instancias nuevas. También puedecoordinar las implementaciones en CodeDeploy mediante instancias Amazon EC2 Auto Scaling registradascon balanceadores de carga de Elastic Load Balancing. Para obtener más información, consulteIntegración de CodeDeploy con Elastic Load Balancing (p. 57) y Configuración de un balanceador decarga en Elastic Load Balancing para implementaciones de Amazon EC2 de CodeDeploy (p. 293).

Note

Tenga en cuenta que es posible que surjan problemas si asocia varios grupos deimplementaciones con un único grupo de Amazon EC2 Auto Scaling. Por ejemplo, si falla unaimplementación, la instancia comenzará a cerrarse, pero el resto de las implementacionesen ejecución puede que tarden una hora en agotar el tiempo de espera. Para obtener másinformación, consulte Evite asociar varios grupos de implementaciones a un único grupo deAmazon EC2 Auto Scaling (p. 469) y Under the Hood: CodeDeploy and Amazon EC2 AutoScaling Integration.

Temas• Implementar aplicaciones de CodeDeploy en grupos de Amazon EC2 Auto Scaling (p. 55)• Comportamientos de Amazon EC2 Auto Scaling con CodeDeploy (p. 55)• Uso de una AMI personalizada con CodeDeploy y Amazon EC2 Auto Scaling (p. 57)

Versión de API 2014-10-0654

Page 64: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAmazon EC2 Auto Scaling

Implementar aplicaciones de CodeDeploy en grupos de AmazonEC2 Auto ScalingPara implementar una revisión de la aplicación de CodeDeploy 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 Scalingtrabajar con Amazon S3.

Note

También puede utilizar CodeDeploy para implementar revisiones desde repositorios deGitHub en grupos de Amazon EC2 Auto Scaling. Aunque las instancias Amazon EC2 aúnnecesitarán un perfil de instancia de IAM, el perfil no requiere permisos adicionales paraimplementar desde un repositorio de GitHub. Para obtener más información, consulte Paso 4:Crear un perfil de instancia de IAM para las instancias Amazon EC2 (p. 44).

2. Cree o utilice un grupo de Amazon EC2 Auto Scaling, especificando el perfil de instancia de IAM ensu configuración o plantilla de lanzamiento. Para obtener más información, consulte Rol de IAM paraaplicaciones que se ejecutan en instancias Amazon EC2.

3. Cree o localice un rol de servicio que permite a CodeDeploy crear un grupo de implementaciones quecontiene el grupo de Amazon EC2 Auto Scaling.

4. Cree un grupo de implementaciones mediante CodeDeploy, especificando el rol de servicio y elnombre de grupo de Amazon EC2 Auto Scaling.

5. Utilice CodeDeploy para implementar su revisión en el grupo de implementaciones que contiene elgrupo de Amazon EC2 Auto Scaling.

Para obtener más información, consulte Tutorial: Uso de CodeDeploy para la implementación de unaaplicación en un grupo de Amazon EC2 Auto Scaling (p. 111).

Comportamientos de Amazon EC2 Auto Scaling con CodeDeployCómo nombra CodeDeploy los grupos de Amazon EC2 Auto ScalingDurante las implementaciones blue/green en una EC2/On-Premises plataforma de computación, tiene dosopciones para añadir instancias al entorno de sustitución (green):

• Utilice instancias que ya existan o que cree manualmente.• Utilice la configuración de un grupo de Amazon EC2 Auto Scaling que especifique para definir y crear las

instancias de un nuevo grupo de Amazon EC2 Auto Scaling.

Si elige la segunda opción, CodeDeploy aprovisiona automáticamente un nuevo grupo de Amazon EC2Auto 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 implementacionesllamado alpha-deployments, el grupo de Amazon EC2 Auto Scaling aprovisionado se llamaCodeDeploy_alpha-deployments_10. Para obtener más información, consulte Creación de un grupode implementaciones para una implementación blue/green de EC2/On-Premises (Consola) (p. 288) yGreenFleetProvisioningOption.

Orden de ejecución de eventos de enlace de ciclo de vida personalizadosPuede añadir sus propios enlaces de ciclo de vida a los grupos de Amazon EC2 Auto Scaling en losque implementa CodeDeploy. Sin embargo, el orden en que se ejecutan estos eventos de enlace de

Versión de API 2014-10-0655

Page 65: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAmazon EC2 Auto Scaling

ciclo de vida personalizados no se puede predeterminar en relación con los eventos de ciclo de vidade implementación predeterminados de CodeDeploy. Por ejemplo, si añade un enlace de ciclo de vidapersonalizado denominado ReadyForSoftwareInstall a un grupo de Amazon EC2 Auto Scaling, nopuede saber de antemano si se ejecutará antes del primer, o después del último, evento de ciclo de vidade implementación predeterminado de CodeDeploy.

Para obtener información sobre cómo añadir enlaces de ciclo de vida personalizados a un grupo deAmazon EC2 Auto Scaling, consulte Agregar enlaces de ciclo de vida.

Eventos de escalado durante una implementaciónSi se produce un evento de escalado de Amazon EC2 Auto Scaling mientras está en curso unaimplementación, las nuevas instancias se actualizarán con la última revisión de la aplicaciónimplementada, no con la revisión de la aplicación que está implementando actualmente. Si laimplementación se realiza correctamente, las instancias antiguas y las instancias recién escaladashospedarán revisiones de la aplicación diferentes.

Para solucionar este problema después de que se produzca, puede volver a implementar la revisión de laaplicación más reciente en los grupos de implementaciones afectados.

Para evitar este problema, recomendamos que suspenda los procesos de escalado de Amazon EC2Auto Scaling mientras se realizan las implementaciones. Puede hacerlo mediante una opción del scriptcommon_functions.sh que se utiliza para el balanceo de carga con CodeDeploy. Si HANDLE_PROCS=true,los siguientes eventos de Amazon EC2 Auto Scaling se suspenden automáticamente durante el procesode implementación:

• AZRebalance• AlarmNotification• ScheduledActions• ReplaceUnhealthy

Important

Solo la configuración de la implementación CodeDeployDefault.OneAtATime es compatiblecon esta funcionalidad. Si utiliza otras configuraciones de implementación, el grupo deimplementaciones aún podría tener diferentes revisiones de aplicación aplicadas a sus instancias.

Para obtener más información sobre el uso de HANDLE_PROCS=true para evitar problemas deimplementación al utilizar Amazon EC2 Auto Scaling, consulte Aviso importante acerca de la gestión deprocesos de AutoScaling en aws-codedeploy-muestras en GitHub.

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

Ese orden debe ser:

1. Se inicia la instancia recién aprovisionada.2. Se ejecutan todos los scripts de proceso de arranque cfn-init hasta su finalización.3. Se inicia el agente de CodeDeploy.4. Se implementa la última revisión de la aplicación en la instancia.

Si no se controla cuidadosamente el orden de los eventos, el agente de CodeDeploy podría comenzar unaimplementación antes de que termine la ejecución de todos los scripts.

Versión de API 2014-10-0656

Page 66: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioElastic Load Balancing

Para controlar el orden de los eventos, utilice una de estas prácticas recomendadas:

• Instale el agente de CodeDeploy mediante un script cfn-init, colocándolo después de todos losdemás scripts.

• Incluya el agente de CodeDeploy en una AMI personalizada y use un script cfn-init para iniciarlo,colocándolo después de todos los demás scripts.

Para obtener información acerca de cómo utilizar cfn-init, consulte cfn-init en Guía del usuario de AWSCloudFormation.

Uso de una AMI personalizada con CodeDeploy y Amazon EC2Auto ScalingDispone de dos opciones para especificar la AMI base que se debe usar cuando se lancen nuevasinstancias Amazon EC2 en un grupo de Amazon EC2 Auto Scaling:

• Puede especificar una AMI personalizada base que ya tenga instalado el agente de CodeDeploy.Dado que el agente ya está instalado, esta opción lanza las nuevas instancias Amazon EC2 conmayor rapidez que la otra opción. Sin embargo, esta opción tiene mayor probabilidad de que fallen lasimplementaciones iniciales de instancias Amazon EC2, sobre todo si el agente de CodeDeploy estáobsoleto. Si elige esta opción, recomendamos que actualice el agente de CodeDeploy con regularidaden su AMI personalizada base.

• Puede especificar una AMI base que no tenga instalado el agente de CodeDeploy e instalar dichoagente cuando se lance cada nueva instancia en un grupo de Amazon EC2 Auto Scaling. Aunqueesta opción lanza las nuevas instancias Amazon EC2 más lentamente que la otra opción, tiene mayorprobabilidad de que las implementaciones iniciales de las instancias sean correctas. Esta opción utilizala versión más reciente del CodeDeploy de agente.

Integración de CodeDeploy con Elastic LoadBalancingDurante las implementaciones de CodeDeploy, un balanceador de carga impide que el tráfico de Internetse enrute a instancias cuando estas no estén listas, se están implementando objetos en ellas o ya no senecesitan como parte de un entorno. Sin embargo, el rol exacto que desempeña el balanceador de cargadepende de si se utiliza en una implementación "blue/green" (azul/verde) o una implementación in situ.

Note

El uso de balanceadores de carga de Elastic Load Balancing es obligatorio en lasimplementaciones "blue/green" (azul/verde) y opcional en implementaciones locales.

Tipos de Elastic Load BalancingElastic Load Balancing ofrece tres tipos de balanceadores de carga que se pueden utilizar en lasimplementaciones de CodeDeploy: Classic Load Balancers, Application Load Balancers y Network LoadBalancers.

Classic Load Balancer

Las rutas y los balanceadores de carga en la capa de transporte (TCP/SSL) o la capa de aplicación(HTTP/HTTPS). Admite EC2-Classic o una VPC.

Versión de API 2014-10-0657

Page 67: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioElastic Load Balancing

Balanceador de carga de aplicaciones

Las rutas y los balanceadores de carga en la capa de la aplicación (HTTP/HTTPS) y admite elenrutamiento basado en rutas. Puede dirigir las solicitudes a puertos de cada instancia EC2 oinstancia de contenedor de su nube privada virtual (VPC).

Note

Los grupos de destino de Balanceador de carga de aplicaciones deben tener el tipo dedestino instance. Para obtener más información, consulte Tipo de destino.

Network Load Balancer

Rutea y balancea la carga en la capa de transporte (capa 4 de TCP/UDP) basándose en lainformación de las direcciones que extrae del encabezado del paquete TCP y no de su contenido. LosNetwork Load Balancers pueden atender ráfagas de tráfico, conservar la IP de origen del cliente yutilizar una IP fija mientras dura la vida útil del balanceador de carga.

Para obtener más información sobre los balanceadores de carga de Elastic Load Balancing, consulte lostemas siguientes:

• ¿Qué es Elastic Load Balancing?• ¿Qué es un Classic Load Balancer?• ¿Qué es un Balanceador de carga de aplicaciones?• ¿Qué es un Network Load Balancer?

Implementaciones Blue-Green (azul-verde)El reenrutamiento del tráfico de instancias detrás de un balanceador de carga de Elastic Load Balancing esfundamental para las implementaciones blue/green de CodeDeploy.

Durante una implementación "blue/green" (azul/verde), el balanceador de carga permite dirigir el tráfico alas nuevas instancias de un grupo de implementaciones en el que se haya implementado la última revisiónde la aplicación (el entorno de sustitución) de acuerdo con las reglas que especifique y, a continuación,bloquear el tráfico de las instancias antiguas en las que se ejecutaba la revisión de la aplicación previa(entorno original).

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

Para una implementación "blue/green" (azul/verde), puede especificar una instancia de ClassicLoad Balancer, Balanceador de carga de aplicaciones o Network Load Balancer en el grupo deimplementaciones. Puede utilizar la consola de CodeDeploy o la CLI de AWS para añadir el balanceadorde carga a un grupo de implementaciones.

Para obtener más información sobre los equilibradores de carga en las implementaciones "blue/green" (azul/verde), consulte los siguientes temas:

• Configuración de un balanceador de carga en Elastic Load Balancing para implementaciones deAmazon EC2 de CodeDeploy (p. 293)

• Creación de una aplicación para una implementación blue/green (consola) (p. 273)• Creación de un grupo de implementaciones para una implementación blue/green de EC2/On-Premises

(Consola) (p. 288)

Versión de API 2014-10-0658

Page 68: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioElastic Load Balancing

Implementaciones in situDurante una implementación local, el balanceador de carga impide que el tráfico de Internet se dirija a lainstancia 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 deInternet aún se dirija a una instancia durante el proceso de implementación. Como resultado, los clientespodrían encontrarse con aplicaciones web dañadas, incompletas o anticuadas. Al utilizar un balanceadorde carga de Elastic Load Balancing con una implementación in situ, se anula el registro de las instanciasde un grupo de implementaciones de un balanceador de carga, se actualizan con la última revisión dela aplicación y luego se vuelven a registrar en el balanceador de carga como parte del mismo grupo deimplementaciones después de que la implementación se realice correctamente. CodeDeploy esperaráuna hora como máximo a que la instancia sea válida detrás del balanceador de carga. Si el balanceadorde carga no marca la instancia como válida en ese periodo de espera, CodeDeploy pasa a la siguienteinstancia o genera un error de implementación, según la configuración de la implementación.

Para una implementación in situ, puede especificar una instancia de Classic Load Balancer, Balanceadorde carga de aplicaciones o Network Load Balancer. Puede especificar el balanceador de carga como partede la configuración del grupo de implementaciones o utilizar un script proporcionado por CodeDeploy paraimplementar el balanceador de carga.

Especificación de un balanceador de carga de una implementación local medianteun grupo de implementacionesPara añadir el balanceador de carga a un grupo de implementaciones, se utiliza la consola de CodeDeployo la CLI de AWS. Para obtener información sobre cómo especificar un balanceador de carga en un grupode implementaciones para implementaciones in situ, consulte los siguientes temas:

• Creación de una aplicación para una implementación in situ (consola) (p. 271)• Creación de un grupo de implementaciones para una implementación in situ (consola) (p. 286)• Configuración de un balanceador de carga en Elastic Load Balancing para implementaciones de

Amazon EC2 de CodeDeploy (p. 293)

Especificación de un balanceador de carga de una implementación local medianteun script

Utilice los pasos que se indican en el siguiente procedimiento para usar scripts de ciclo de vida paraconfigurar el balanceo de carga para implementaciones locales.

Note

Debe utilizar la configuración de la implementación CodeDeployDefault.OneAtATimesolo cuando se utiliza un script para configurar un balanceador de carga que se va ausar en una implementación in situ. No se admiten las ejecuciones simultáneas; el ajusteCodeDeployDefault.OneAtATime garantiza la ejecución en serie de los scripts. Para obtener másinformación acerca de las configuraciones de implementación, consulte Uso de configuracionesde implementación en CodeDeploy (p. 260).

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

Para configurar implementaciones in situ en CodeDeploy con instancias Amazon EC2 registradas conbalanceadores de carga de Elastic Load Balancing, proceda del modo siguiente:

Versión de API 2014-10-0659

Page 69: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con productos y servicios de socios

1. Descargue los ejemplos del tipo de balanceador de carga que desea utilizar para una implementaciónin situ:

• Classic Load Balancer• Balanceador de carga de aplicaciones o Network Load Balancer (se puede utilizar el mismo script

para cualquiera de estos tipos).2. Asegúrese de que cada una de sus instancias Amazon EC2 de destino tenga instalada la AWS CLI.3. Asegúrese de que cada una de sus instancias Amazon EC2 de destino tenga un perfil de instancia de

IAM asociado con los permisos elasticloadbalancing:* y autoscaling:* como mínimo.4. 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 ycommon_functions.sh).

5. En el archivo appspec.yml de la revisión de la aplicación, proporcione instrucciones para queCodeDeploy ejecute el script register_with_elb.sh durante el evento ApplicationStart y el scriptderegister_from_elb.sh durante el evento ApplicationStop.

6. 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 Classic Load Balancer, especifique los nombres de los balanceadores de carga de ElasticLoad Balancing en ELB_LIST="" y realice los cambios que necesite en el resto de la configuraciónde la implementación en el archivo.

• Si utiliza Balanceador de carga de aplicaciones o Network Load Balancer, especifique los nombresde grupos de destino de Elastic Load Balancing en TARGET_GROUP_LIST="" y realice los cambiosque necesite en el resto de la configuración de la implementación en el archivo.

7. Empaquete el código fuente de la aplicación, el archivo appspec.yml y los scripts de eventos deciclo 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 Amazon EC2. Durante la implementación, los scripts deeventos de ciclo de vida de la implementación cancelarán el registro de la instancia Amazon EC2 conlos balanceadores de carga, esperarán a que se vacíe la conexión y volverán a registrar la instanciaAmazon EC2 con los balanceadores de carga una vez que se complete la implementación.

Integración con productos y servicios de sociosCodeDeploy incluye capacidad de integración con los siguientes productos y servicios de socios:

Ansible Si ya dispone de un conjunto de Playbooks deAnsible y simplemente necesita un lugar dondeejecutarlo, la plantilla de Ansible y CodeDeploydemuestra cómo un par de sencillos enlacesde implementación aseguran que Ansible estédisponible en la instancia de implementaciónlocal y ejecutan los Playbooks. Si ya dispone deun proceso de creación y mantenimiento de suinventario, también es posible usar el módulo deAnsible que hay disponible para instalar y ejecutarel agente CodeDeploy.

Más información:

• Ansible y CodeDeploy

Atlassian, Bamboo y Bitbucket La tarea de CodeDeploy para Bamboo comprimeel directorio que contiene un AppSpec file en un

Versión de API 2014-10-0660

Page 70: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con productos y servicios de socios

archivo .zip, carga el archivo a Amazon S3 y,después, comienza la implementación de acuerdocon la configuración proporcionada en la aplicaciónde CodeDeploy.

La compatibilidad de Atlassian Bitbucket conCodeDeploy permite enviar código a instanciasAmazon EC2 directamente desde la interfazde usuario de Bitbucket a cualquiera de losgrupos de implementaciones bajo demanda. Estosignifica que después de actualizar código en elrepositorio Bitbucket, no necesita iniciar sesiónen la plataforma de integración continua (CI) o eninstancias Amazon EC2 para ejecutar un procesode implementación manual.

Más información:

• Cómo usar la tarea de CodeDeploy paraBamboo

• Announcing Atlassian Bitbucket Support forCodeDeploy

Chef AWS ofrece dos plantillas de ejemplo para integrarChef y CodeDeploy. La primera es un libro derecetas de Chef que instala e inicia el agente deCodeDeploy. Esto permite seguir administrandola infraestructura de host con Chef al utilizarCodeDeploy. La segunda plantilla muestra cómoutilizar CodeDeploy para organizar la ejecución delos libros de cocina y las recetas con chef-solo encada nodo.

Más información:

• Chef y CodeDeploy

CircleCI CircleCI ofrece un conjunto de herramientasde prueba automatizada y de implementacióne integración continuas. Cree un rol de IAM enAWS para usarlo con CircleCI y configurar losparámetros de implementación en el archivocircle.yml y, a continuación, utilice CircleCI conCodeDeploy para crear revisiones de aplicación,cargarlas en un bucket de Amazon S3 e iniciar ymonitorizar las implementaciones.

Más información:

• Implementación continua con CodeDeploy

Versión de API 2014-10-0661

Page 71: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con productos y servicios de socios

CloudBees Utilice el complemento Jenkins para CodeDeploy,disponible en DEV@cloud de CloudBees, comoacción posterior a la compilación. Por ejemplo,puede utilizarlo al final de una canalización deentrega continua para implementar una revisión deaplicación en la flota de servidores.

Más información:

• Complemento de Jenkins para CodeDeployahora disponible en DEV@cloud

Codeship Utilice Codeship para implementar revisiones dela aplicación a través de CodeDeploy. Tambiénpuede utilizar la interfaz de usuario de Codeshippara añadir CodeDeploy a una canalización deimplementación de una ramificación.

Más información:

• Implementar en CodeDeploy• Integración de CodeDeploy en Codeship

GitHub Utilice CodeDeploy para implementar revisiones deaplicaciones de repositorios de GitHub. Tambiénpuede desencadenar una implementación de unrepositorio de GitHub cuando el código fuente deese repositorio cambie.

Más información:

• Integración de CodeDeploy conGitHub (p. 64)

• Tutorial: Uso de CodeDeploy para implementaruna aplicación desde GitHub (p. 128)

• Automatically Deploy from GitHub UsingCodeDeploy

HashiCorp Consul La herramienta de código abierto HashiCorpConsul ayuda a garantizar la salud y estabilidaddel entorno de aplicación al implementaraplicaciones en CodeDeploy. Utilice Consul pararegistrar las aplicaciones a descubrir durantela implementación, cambiar las aplicaciones ylos nodos a modo de mantenimiento para quelas implementaciones los omitan y detener lasimplementaciones en caso de que las instancias dedestino no funcionen correctamente.

Más información:

• CodeDeploy Deployments with HashiCorpConsul

Versión de API 2014-10-0662

Page 72: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioIntegración con productos y servicios de socios

Jenkins El complemento de Jenkins para CodeDeployincluye un paso posterior a la compilación enproyectos de Jenkins. Después de finalizar unacompilación correctamente, comprime el espaciode trabajo, carga en Amazon S3 y comienza unanueva implementación.

Más información:

• Complemento Jenkins para CodeDeploy• Setting Up the Jenkins Plugin for CodeDeploy

Puppet Labs AWS pone a disposición plantillas de muestrapara Puppet y CodeDeploy. La primera es unmódulo de Puppet que instala e inicia el agente deCodeDeploy. Esto permite seguir administrandola infraestructura de host con Puppet al utilizarCodeDeploy. La segunda plantilla muestra cómoutilizar CodeDeploy para organizar la ejecución demódulos y manifiestos con un "masterless puppet"en cada nodo.

Más información:

• Puppet y CodeDeploy

SaltStack Es posible integrar una infraestructura SaltStackcon CodeDeploy. Utilice el módulo CodeDeploypara instalar y ejecutar el agente CodeDeploy ensus minions. También puede usar CodeDeployy un par de enlaces de implementación sencillospara organizar la ejecución de los Salt States.

Más información:

• SaltStack y CodeDeploy

Solano Labs Después de realizarse las pruebas de lacompilación correctamente en Solano CI, seejecuta un script para preparar la aplicaciónpara su lanzamiento. El comando aws deploypush empaqueta y envía la aplicación medianteCodeDeploy; a continuación (este paso esopcional), implementa la revisión de la aplicaciónen un grupo de implementaciones y confirmaque esto se ha realizado correctamente.También puede configurar las implementacionesautomáticas de CodeDeploy desde su compilaciónde CI.

Más información:

• Implementaciones de CodeDeploy desdecompilaciones de Solano CI

Versión de API 2014-10-0663

Page 73: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGitHub

TeamCity El complemento CodeDeploy Runner implementaaplicaciones directamente desde TeamCity. Elcomplemento añade un paso de compilación deTeamCity que prepara y carga una revisión deaplicación en un bucket de Amazon S3, registra larevisión en una aplicación CodeDeploy, crea unaimplementación de CodeDeploy y, si lo prefiere,espera a que la implementación se termine.

Más información:

• CodeDeploy Runner (descarga)• CodeDeploy Runner Plugin (documentación)

Travis CI Configure Travis CI para activar unaimplementación en CodeDeploy después determinarse una implementación correctamente.

Más información:

• Travis CI e implementaciones en CodeDeploy

Temas• Integración de CodeDeploy con GitHub (p. 64)

Integración de CodeDeploy con GitHubCodeDeploy es compatible con GitHub, un servicio de alojamiento y uso compartido de código basado enweb. CodeDeploy puede implementar en las instancias las revisiones de aplicaciones almacenadas enrepositorios GitHub de o buckets de Amazon S3. CodeDeploy admite GitHub solo para implementacionesEC2/On-Premises.

Temas• Vídeo de introducción a la integración de CodeDeploy con GitHub (p. 64)• Implementación de revisiones de CodeDeploy desde GitHub (p. 64)• Comportamientos de GitHub con CodeDeploy (p. 65)

Vídeo de introducción a la integración de CodeDeploy con GitHubEn este breve vídeo (5:20) muestra cómo automatizar las implementaciones de aplicaciones conCodeDeploy desde los flujos de trabajo de GitHub ya existentes.

Vídeo de introducción a la integración de CodeDeploy con GitHub.

Implementación de revisiones de CodeDeploy desde GitHubPara implementar en instancias una revisión de una aplicación desde un repositorio de GitHub:

1. Cree una revisión compatible con CodeDeploy y con el tipo de instancia Amazon EC2 en la que la va aimplementar.

Para crear una revisión compatible, siga las instrucciones indicadas en Planear una revisión paraCodeDeploy (p. 304) y Adición de un archivo de especificación de aplicación a una revisión paraCodeDeploy (p. 305).

Versión de API 2014-10-0664

Page 74: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGitHub

2. Utilice una cuenta de GitHub para agregar la revisión a un repositorio de GitHub.

Para crear una cuenta de GitHub, consulte Join GitHub. Para crear un repositorio de GitHub, consulteCreate a Repo.

3. Utilice la página Create deployment (Crear implementación) de la consola de CodeDeploy o elcomando create-deployment de la AWS CLI para implementar la revisión desde el repositorio deGitHub en las instancias de destino configuradas para su uso en implementaciones de CodeDeploy.

Si desea ejecutar el comando create-deployment, primero debe utilizar la página Create deployment(Crear implementación) de la consola para conceder a CodeDeploy el permiso para interactuar conGitHub en nombre de la cuenta de GitHub que prefiera para la aplicación especificada. Solamente esnecesario hacerlo una vez para cada aplicación.

Para saber cómo usar la página Create deployment para implementar desde un repositorio de GitHub,consulte Crear una implementación con CodeDeploy (p. 321).

Para saber cómo ejecutar el comando create-deployment para implementar desde un repositorio deGitHub, consulte Creación de una implementación EC2/On-Premises Plataforma de computación(CLI) (p. 332).

Para saber cómo preparar instancias para su uso en implementaciones de CodeDeploy, consulteTrabajar con instancias de CodeDeploy (p. 202).

Para obtener más información, consulte Tutorial: Uso de CodeDeploy para implementar una aplicacióndesde GitHub (p. 128).

Comportamientos de GitHub con CodeDeployTemas

• Autenticación en GitHub con aplicaciones de CodeDeploy (p. 65)• Interacción de CodeDeploy con repositorios de GitHub privados y públicos (p. 66)• Interacción de CodeDeploy con repositorios de GitHub administrados por una organización (p. 66)• Implementación automática desde CodePipeline con CodeDeploy (p. 67)

Autenticación en GitHub con aplicaciones de CodeDeploy

Una vez concedido a CodeDeploy el permiso para interactuar con GitHub, la asociación entre la cuentade GitHub y la aplicación se almacena en CodeDeploy. Es posible vincular la aplicación a otra cuenta deGitHub. También se puede revocar el permiso para que CodeDeploy interactúe con GitHub.

Para vincular una cuenta de GitHub a una aplicación de CodeDeploy

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. Elija la aplicación que desea vincular a otra cuenta de GitHub.4. Si la aplicación no tiene un grupo de implementaciones, en la pestaña Crear deployment groups

(Crear grupos de implementaciones) para crear uno. Para obtener más información, consulteCreación de un grupo de implementaciones con CodeDeploy (p. 285). Se requiere un grupo deimplementaciones para elegir Create deployment (Crear implementación) en el paso siguiente.

Versión de API 2014-10-0665

Page 75: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGitHub

5. En Deployments (Implementaciones), elija Create deployment (Crear implementación).

Note

No es necesario crear una nueva implementación. Actualmente, esta es la única forma devincular una cuenta de GitHub distinta a una aplicación.

6. En Deployment settings (Configuración de implementación), para Revision type (Tipo de revisión), elijaMy application is stored in GitHub (Mi aplicación está almacenada en GitHub).

7. Aplique alguna de las siguientes acciones:

• Para crear una conexión entre aplicaciones de AWS CodeDeploy y una cuenta de GitHub, cierrela sesión de GitHub en otra pestaña del navegador web. En GitHub token name (Nombre detoken de GitHub), escriba el nombre para identificar esta conexión y luego elija Connect to GitHub(Conectarse a GitHub). La página web le pedirá que autorice a CodeDeploy para interactuar conGitHub para la aplicación. Continúe en el paso 10.

• Para utilizar una conexión que haya creado previamente, seleccione su nombre en GitHub tokenname (Nombre de token de GitHub) y, a continuación, elija Connect to GitHub (Conectarse aGitHub). Continúe en el paso 8.

• Para crear una conexión con una cuenta de GitHub distinta, cierre la sesión de GitHub en otrapestaña del navegador web. En GitHub token name (Nombre de token de GitHub), escriba elnombre para identificar la conexión y luego elija Connect to GitHub (Conectarse a GitHub). Lapágina web le pedirá que autorice a CodeDeploy para interactuar con GitHub para la aplicación.Continúe en el paso 10.

8. Si todavía no ha iniciado sesión en GitHub, siga las instrucciones de la página Sign in para iniciarsesión con la cuenta de GitHub a la que desea enlazar la aplicación.

9. Elija Authorize application. GitHub asignará a CodeDeploy permiso para interactuar en nombre de lacuenta con la que ha iniciado sesión para la aplicación seleccionada.

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

Para revocar el permiso concedido a CodeDeploy para que interactúe con GitHub

1. Inicie sesión en GitHub utilizando las credenciales de la cuenta de GitHub cuyos permisos desearevocar a AWS CodeDeploy.

2. Abra la página Applications (Aplicaciones) de GitHub, localice CodeDeploy en la lista de aplicacionesautorizadas y, a continuación, siga el procedimiento de GitHub para revocar la autorización para unaaplicación.

Interacción de CodeDeploy con repositorios de GitHub privados y públicos

CodeDeploy permite la implementación de aplicaciones desde repositorios de GitHub públicos y privados.Al conceder a CodeDeploy permiso de acceso a GitHub en su nombre, CodeDeploy tendrá acceso delectura y escritura a todos los repositorios de GitHub privados a los que su cuenta de GitHub tenga acceso.Sin embargo, CodeDeploy solo lee en los repositorios de GitHub. No escribirá nada en ninguno de susrepositorios de GitHub privados.

Interacción de CodeDeploy con repositorios de GitHub administrados por unaorganización

De forma predeterminada, los repositorios de GitHub administrados por una organización (a diferenciade los repositorios públicos o privados de su cuenta personal) no conceden acceso a aplicaciones deterceros, como es el caso de CodeDeploy. Si intenta implementar código desde un repositorio de GitHubde una organización y esta ha definido restricciones a las aplicaciones de terceros, la operación fallará.Existen dos maneras de resolver este problema.

Versión de API 2014-10-0666

Page 76: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de integración de la comunidad

• Como miembro de la organización, puede solicitar al responsable que apruebe el acceso paraCodeDeploy. Los pasos para presentar esta solicitud dependen de si ya ha autorizado el acceso deCodeDeploy para su cuenta individual:• Si ha autorizado el acceso de CodeDeploy en su cuenta, consulte Solicitud de la aprobación de una

organización para sus aplicaciones autorizadas.• Si aún no ha autorizado el acceso de CodeDeploy en su cuenta, consulte Solicitud de la aprobación

de una organización para aplicaciones de terceros.• 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 lasaplicaciones de terceros en una organización.

Para obtener más información, consulte Acerca de las restricciones a las aplicaciones de terceros.

Implementación automática desde CodePipeline con CodeDeploy

Es posible activar una implementación desde CodePipeline cada vez que cambie el código fuente. Paraobtener más información, consulte CodePipeline.

Ejemplos de integración de la comunidadEn las siguientes secciones se incluyen enlaces a entradas de blogs, artículos y ejemplos proporcionadosen la comunidad.

Note

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

Entradas de blogs• Cómo automatizar el aprovisionamiento de CodeDeploy en AWS CloudFormation

Aprenda a aprovisionar la implementación de una aplicación en CodeDeploy mediante AWSCloudFormation.

Fecha de publicación: enero de 2016• AWS Toolkit for Eclipse Integration with CodeDeploy (Part 1)

AWS Toolkit for Eclipse Integration with CodeDeploy (Part 2)

AWS Toolkit for Eclipse Integration with CodeDeploy (Part 3)

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

Fecha de publicación: febrero de 2015• Automatically Deploy from GitHub Using CodeDeploy

Obtenga información acerca de cómo utilizar implementaciones automáticas de GitHub paraCodeDeploy para crear una canalización de extremo a extremo, desde el control de origen a las pruebaso los entornos de producción.

Fecha de publicación: diciembre de 2014

Versión de API 2014-10-0667

Page 77: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVídeos

Vídeos• Hosting ASP.NET 5 Apps in AWS with Docker and CodeDeploy

Descubra cómo utilizar CodeDeploy para implementar aplicaciones de ASP.NET 5 a un servidor de IIS(Internet Information Services) en sistemas operativos Microsoft Windows.

Hosting ASP.NET 5 Apps in AWS with Docker and CodeDeploy

Publicado en octubre de 2015

Duración: 47:37• Mastering CodeDeploy with Jenkins and Puppet

Descubra cómo utilizar las herramientas de código abierto Jenkins y Puppet con CodeDeploy.

Mastering CodeDeploy with Jenkins and Puppet

Fecha de publicación: mayo de 2015

Duración: 49:31

Versión de API 2014-10-0668

Page 78: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de WordPress

en una instancia sin Windows

Tutoriales de CodeDeployEsta sección incluye algunos tutoriales que le ayudan a aprender a utilizar CodeDeploy.

Los procedimientos de estos tutoriales proporcionan sugerencias sobre la ubicación en la que se puedenalmacenar los archivos (por ejemplo, c:\temp) y los nombres que se pueden asignar a los buckets, lassubcarpetas o los archivos (por ejemplo, codedeploydemobucket, HelloWorldApp y CodeDeployDemo-EC2-Trust.json, respectivamente), pero no es obligatorio utilizarlos. Solo tiene que recordar sustituir susnombres y ubicaciones de archivos a medida que realiza los procedimientos.

Temas• Tutorial: Implementación de WordPress en una instancia Amazon EC2 (Amazon Linux o Red Hat

Enterprise Linux y Linux, macOS, or Unix) (p. 69)• Tutorial: Implementación de una aplicación "Hello, World!" Aplicación con CodeDeploy (Windows

Server) (p. 88)• Tutorial: Implementación de una aplicación en una instancia on-premises con CodeDeploy (Windows

Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104)• Tutorial: Uso de CodeDeploy para la implementación de una aplicación en un grupo de Amazon EC2

Auto Scaling (p. 111)• Tutorial: Uso de CodeDeploy para implementar una aplicación desde GitHub (p. 128)• Tutorial: Implementación de un servicio de Amazon ECS (p. 140)• Tutorial: Implementación de un servicio de Amazon ECS con una prueba de validación (p. 148)• Tutorial: Implementación de una función de Lambda actualizada con CodeDeploy y Modelo de

aplicación sin servidor de AWS (p. 157)

Tutorial: Implementación de WordPress en unainstancia Amazon EC2 (Amazon Linux o Red HatEnterprise Linux y Linux, macOS, or Unix)

En este tutorial, se implementa WordPress, una herramienta de blogs y un sistema de administración decontenido de código abierto basado en PHP y MySQL, en una única instancia Amazon EC2 con AmazonLinux o Red Hat Enterprise Linux (RHEL).

¿No es lo que busca?

• Si lo que desea es practicar la implementación en una instancia Amazon EC2 con Windows Server,consulte Tutorial: Implementación de una aplicación "Hello, World!" Aplicación con CodeDeploy(Windows Server) (p. 88).

• Si desea practicar la implementación en una instancia on-premises en lugar de en una instancia AmazonEC2, consulte Tutorial: Implementación de una aplicación en una instancia on-premises con CodeDeploy(Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104).

Los pasos de este tutorial se presentan desde la perspectiva de un equipo de desarrollo local con Linux,macOS, or Unix. Aunque puede completar la mayoría de los pasos en un equipo local con Windows, debe

Versión de API 2014-10-0669

Page 79: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Lanzar una instancia Amazon EC2

adaptar los pasos que utilizan comandos como chmod y wget, las aplicaciones, como sed, y las rutas dedirectorio, como /tmp.

Antes de empezar este tutorial, debe completar los requisitos previos indicados en Introducción aCodeDeploy (p. 37). Entre ellos se encuentran la configuración de su cuenta de usuario de IAM, lainstalación o actualización de la AWS CLI y la creación de un perfil de instancia y un rol de servicio de IAM.

Temas• Paso 1: Lanzar y configurar una instancia Amazon EC2 de Amazon Linux o Red Hat Enterprise

Linux (p. 70)• Paso 2: Configurar el contenido de origen para implementarlo en la instancia Amazon EC2 de Amazon

Linux o Red Hat Enterprise Linux (p. 72)• Paso 3: Cargar la aplicación de WordPress en Amazon S3 (p. 75)• Paso 4: Implementar la aplicación de WordPress (p. 79)• Paso 5: Actualizar y volver a implementar la aplicación de WordPress (p. 83)• Paso 6: Limpiar la aplicación de WordPress y los recursos relacionados (p. 86)

Paso 1: Lanzar y configurar una instancia AmazonEC2 de Amazon Linux o Red Hat Enterprise LinuxPara implementar la aplicación de WordPress con CodeDeploy, necesitará una instancia Amazon EC2 conAmazon Linux o Red Hat Enterprise Linux (RHEL). La instancia Amazon EC2 requiere una nueva regla deseguridad de entrada que permita las conexiones HTTP. Esta regla es necesaria para poder ver la páginade WordPress en un navegador una vez que se haya implementado.

Siga las instrucciones de Creación de una instancia Amazon EC2 para CodeDeploy (p. 212). Al llegar alas instrucciones sobre la asignación de una etiqueta de instancia Amazon EC2 a la instancia, asegúresede especificar la clave de etiqueta Name y el valor de etiqueta CodeDeployDemo. (Si especifica otra claveu otro valor de etiqueta, las instrucciones de Paso 4: Implementar la aplicación de WordPress (p. 79)pueden producir resultados inesperados).

Una vez completadas las instrucciones para lanzar la instancia Amazon EC2, vuelva a esta página ycontinúe con la sección siguiente. No continúe en Creación de una aplicación con CodeDeploy (p. 270)como paso siguiente.

Conexión a la instancia Amazon EC2 de Amazon Linux o RHELUna vez lanzada la nueva instancia Amazon EC2, siga estas instrucciones para practicar la conexión a lamisma.

1. Utilice el comando ssh (o un emulador de terminal con la función SSH, como PuTTY) para conectarcon la instancia Amazon EC2 de Amazon Linux o RHEL. Necesitará la dirección DNS pública dela instancia y la clave privada del par de claves que utilizó al iniciar la instancia Amazon EC2. Paraobtener más información, consulte Conéctese a la instancia.

Por ejemplo, si la dirección DNS pública es ec2-01-234-567-890.compute-1.amazonaws.com yel par de claves de instancia Amazon EC2 para el acceso SSH es codedeploydemo.pem, escriba losiguiente:

ssh -i /path/to/codedeploydemo.pem [email protected]

Sustituya /path/to/codedeploydemo.pem por la ruta del archivo .pem y la dirección DNS deejemplo por la dirección de la instancia Amazon EC2 de Amazon Linux o RHEL.

Versión de API 2014-10-0670

Page 80: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Lanzar una instancia Amazon EC2

Note

Si aparece un mensaje de error indicando que los permisos del archivo de clave sondemasiado abiertos, deberá restringirlos de modo que solo tenga acceso el usuario actual(usted). Por ejemplo, puede hacerlo con el comando chmod en Linux, macOS, or Unix,escribiendo:

chmod 400 /path/to/codedeploydemo.pem

2. Una vez que haya iniciado sesión, verá el rótulo de AMI para la instancia Amazon EC2. Para AmazonLinux deberá verse lo siguiente:

__| __|_ ) _| ( / Amazon Linux AMI ___|\___|___|

3. Ahora ya puede cerrar la sesión en la instancia Amazon EC2 en ejecución.

Warning

No detenga ni termine la instancia Amazon EC2. De lo contrario, CodeDeploy no podráimplementar en ella.

Adición de una regla de entrada que permite el tráfico HTTPhacia la instancia Amazon EC2 de Amazon Linux o RHELEl siguiente paso confirma que la instancia Amazon EC2 tiene un puerto HTTP abierto para que se puedaver la página de inicio de la aplicación de WordPress implementada en un navegador.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. Elija Instances (Instancias) y, a continuación, elija su instancia.3. En la pestaña Description (Descripción), debajo de Security groups (Grupos de seguridad), elija view

inbound rules (Ver reglas de entrada).

Debe aparecer una lista de reglas en el grupo de seguridad predeterminado con un aspecto similar alsiguiente:

Security Groups associated with i-1234567890abcdef0 Ports Protocol Source launch-wizard-N 22 tcp 0.0.0.0/0 ✔

4. En Security groups (Grupos de seguridad), elija el grupo de seguridad de su instancia Amazon EC2.Podría llamarse launch-wizard-N. La N del nombre es un número asignado al grupo de seguridadcuando se creó la instancia.

Elija la pestaña Inbound (Reglas entrantes). Si el grupo de seguridad de su instancia está configuradocorrectamente, debería ver una regla con los siguientes valores:

• Type (Tipo): HTTP• Protocol (Protocolo): TCP• Port Range (Rango de puertos): 80• Source (Fuente): 0.0.0.0/0 Versión de API 2014-10-06

71

Page 81: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Configurar su contenido de origen

5. Si no ve una regla con estos valores, utilice los procedimientos descritos en Agregar reglas a un grupode seguridad para añadirlos a una nueva regla de seguridad.

Paso 2: Configurar el contenido de origen paraimplementarlo en la instancia Amazon EC2 deAmazon Linux o Red Hat Enterprise LinuxHa llegado el momento de configurar el contenido de origen de su aplicación para tener algo queimplementar en la instancia.

Temas• Obtener el código fuente (p. 72)• Crear scripts para ejecutar la aplicación (p. 73)• Añadir un archivo de especificación de la aplicación (p. 74)

Obtener el código fuenteEn este tutorial, implementará la plataforma de publicación de contenido WordPress desde su equipo dedesarrollo en la instancia Amazon EC2 de destino. Para obtener el código fuente de WordPress, puedeutilizar llamadas a línea de comandos integradas. O bien, si tiene instalado Git en su equipo de desarrollo,puede utilizarlo en su lugar.

Para estos pasos, suponemos que ha descargado una copia del código fuente de WordPress en eldirectorio /tmp del equipo de desarrollo. (Puede elegir cualquier directorio que desee, pero no olvidesustituir la ubicación por /tmp siempre que se especifique en estos pasos).

Elija una de las dos opciones siguientes para copiar los archivos de código fuente de WordPress en elequipo de desarrollo. La primera opción utiliza llamadas a línea de comandos integradas. La segundaopción utiliza Git.

Temas• Para obtener una copia del código fuente de WordPress (llamadas a línea de comandos

integradas) (p. 72)• Para obtener una copia del código fuente de WordPress (Git) (p. 73)

Para obtener una copia del código fuente de WordPress (llamadas a línea decomandos integradas)

1. Llame al comando wget para descargar una copia del código fuente de WordPress, como unarchivo .zip, en el directorio actual:

wget https://github.com/WordPress/WordPress/archive/master.zip

2. Ejecute los comandos unzip, mkdir, cp y rm para:

• Descomprimir el archivo .zip master en el directorio (carpeta) /tmp/WordPress_Temp.• Copiar el contenido descomprimido en la carpeta de destino /tmp/WordPress.• Eliminar la carpeta temporal /tmp/WordPress_Temp y el archivo master.

Ejecute los comandos de uno en uno:

Versión de API 2014-10-0672

Page 82: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Configurar su contenido de origen

unzip master -d /tmp/WordPress_Temp

mkdir -p /tmp/WordPress

cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress

rm -rf /tmp/WordPress_Temp

rm -f master

De este modo, se queda con un conjunto de archivos de código fuente de WordPress limpio en lacarpeta /tmp/WordPress.

Para obtener una copia del código fuente de WordPress (Git)

1. Descargue e instale Git en el equipo de desarrollo.2. En la carpeta /tmp/WordPress, ejecute el comando git init.3. Ejecute el comando git clone para clonar el repositorio de WordPress público, creando su propia copia

de él en la carpeta de destino /tmp/WordPress:

git clone https://github.com/WordPress/WordPress.git /tmp/WordPress

De este modo, se queda con un conjunto de archivos de código fuente de WordPress limpio en lacarpeta /tmp/WordPress.

Crear scripts para ejecutar la aplicaciónA continuación, cree una carpeta y los scripts en el directorio. CodeDeploy utiliza estos scripts paraconfigurar e implementar la revisión de la aplicación en la instancia Amazon EC2 de destino. Puede utilizarcualquier editor de texto para crear los scripts.

1. Cree un directorio de scripts en la copia del código fuente de WordPress:

mkdir -p /tmp/WordPress/scripts

2. Cree un archivo install_dependencies.sh en /tmp/WordPress/scripts. Añada las líneassiguientes al archivo. Este script install_dependencies.sh instala Apache, MySQL y PHP.También añade compatibilidad con MySQL a PHP.

✔!/bin/bashsudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd

3. Cree un archivo start_server.sh en /tmp/WordPress/scripts. Añada las líneas siguientes alarchivo. Este script start_server.sh inicia Apache y MySQL.

✔!/bin/bashservice mysqld start

Versión de API 2014-10-0673

Page 83: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Configurar su contenido de origen

service httpd start

4. Cree un archivo stop_server.sh en /tmp/WordPress/scripts. Añada las líneas siguientes alarchivo. Este script stop_server.sh detiene Apache y MySQL.

✔!/bin/bashisExistApp=`pgrep httpd`if [[ -n $isExistApp ]]; then service httpd stopfiisExistApp=`pgrep mysqld`if [[ -n $isExistApp ]]; then service mysqld stopfi

5. Cree un archivo create_test_db.sh en /tmp/WordPress/scripts. Añada las líneas siguientesal archivo. Este script create_test_db.sh utiliza MySQL para crear una base de datos test paraWordPress.

✔!/bin/bashmysql -uroot <<CREATE_TEST_DBCREATE DATABASE IF NOT EXISTS test;CREATE_TEST_DB

6. Por último, cree un script change_permissions.sh en /tmp/WordPress/scripts. Esto se utilizapara cambiar los permisos de carpeta en Apache.

Important

Este script ha actualizado los permisos de la carpeta /tmp/WordPress de modo quecualquiera pueda escribir en ella. Esto es necesario para que WordPress pueda escribiren su base de datos durante Paso 5: Actualizar y volver a implementar la aplicación deWordPress (p. 83). Una vez configurada la aplicación de WordPress, ejecute el siguientecomando para actualizar los permisos con una configuración más segura:

chmod -R 755 /var/www/html/WordPress

✔!/bin/bashchmod -R 777 /var/www/html/WordPress

7. Conceda permisos ejecutables a todos los scripts. En la línea de comando, escriba:

chmod +x /tmp/WordPress/scripts/*

Añadir un archivo de especificación de la aplicaciónA continuación, añada un application specification file (AppSpec file), un archivo con formato YAMLutilizado por CodeDeploy para:

• Asignar los archivos de origen de la revisión de la aplicación a sus destinos en la instancia Amazon EC2de destino.

• Especificar permisos personalizados para los archivos implementados.

Versión de API 2014-10-0674

Page 84: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

• Especificar los scripts que se van a ejecutar en la instancia Amazon EC2 de destino durante laimplementación.

El AppSpec file debe denominarse appspec.yml. Debe colocarse en el directorio raíz del código fuentede la aplicación. En este tutorial, el directorio raíz es /tmp/WordPress.

Mediante su editor de texto, cree un archivo denominado appspec.yml. Añada las líneas siguientes alarchivo:

version: 0.0os: linuxfiles: - source: / destination: /var/www/html/WordPresshooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

CodeDeploy utiliza este AppSpec file para copiar todos los archivos de la carpeta /tmp/WordPress delequipo de desarrollo en la carpeta /var/www/html/WordPress de la instancia Amazon EC2 de destino.Durante la implementación, CodeDeploy ejecuta los scripts especificados como root en la carpeta /var/www/html/WordPress/scripts de la instancia Amazon EC2 de destino cuando se producenlos eventos especificados durante el ciclo de vida de la implementación, por ejemplo, BeforeInstally AfterInstall. Si cualquiera de estos scripts tarda más de 300 segundos (5 minutos) en ejecutarse,CodeDeploy detiene la implementación y la marca como errónea.

Para obtener más información sobre la configuración, consulte Referencia de AppSpec File deCodeDeploy (p. 402).

Important

Las ubicaciones y el número de espacios entre cada uno de los elementos de este archivo sonimportantes. Si el espaciado es incorrecto, CodeDeploy genera un error que puede resultar difícilde depurar. Para obtener más información, consulte Espaciado de AppSpec File (p. 432).

Paso 3: Cargar la aplicación de WordPress enAmazon S3Ahora preparará y cargará su contenido de origen en una ubicación desde la que CodeDeploy puedaimplementarla. Las siguientes instrucciones explican cómo aprovisionar un bucket de Amazon S3,preparar los archivos de la revisión de la aplicación para el bucket, agrupar los archivos de la revisión y, acontinuación, enviar la revisión al bucket.

Versión de API 2014-10-0675

Page 85: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

Note

Aunque no se trata en este tutorial, puede utilizar CodeDeploy para implementar aplicacionesdesde repositorios de GitHub en instancias. Para obtener más información, consulte Integraciónde CodeDeploy con GitHub (p. 64).

Temas• Aprovisionar un bucket de Amazon S3 (p. 76)• Preparación de los archivos de la aplicación para el bucket (p. 77)• Agrupación de los archivos de la aplicación en un único archivo de almacenamiento y envío del archivo

de almacenamiento (p. 78)

Aprovisionar un bucket de Amazon S3Cree un contenedor de almacenamiento o bucket en Amazon S3 o utilice un bucket existente. Asegúresede que puede cargar la revisión en el bucket y que las instancias Amazon EC2 utilizadas en lasimplementaciones pueden descargar la revisión del bucket.

Puede utilizar la AWS CLI, la consola de Amazon S3 o las API de Amazon S3 para crear un bucket deAmazon S3. Después de crear el bucket, asegúrese de que concede permisos de acceso al bucket y a suusuario de IAM.

Note

Los nombres de bucket deben ser únicos en Amazon S3 para todas las cuentas de AWS.Si no puede utilizar codedeploydemobucket, pruebe otro nombre de bucket, por ejemplo,codedeploydemobucket seguido de un guion y sus iniciales o algún otro identificador único.A continuación, cuando aparezca codedeploydemobucket en este tutorial, asegúrese desustituirlo por el nombre de su bucket.El bucket de Amazon S3 debe crearse en la misma región de AWS en la que se lanzan lasinstancias Amazon EC2 de destino. Por ejemplo, si crea el bucket en la Región EE.UU. Este(Norte de Virginia), las instancias Amazon EC2 de destino se deben lanzar en la Región EE.UU.Este (Norte de Virginia).

Temas• Para crear un bucket de Amazon S3 (CLI) (p. 76)• Para crear un bucket de Amazon S3 (consola) (p. 76)• Concesión de permisos al bucket de Amazon S3 y al usuario de IAM (p. 77)

Para crear un bucket de Amazon S3 (CLI)

Ejecute el comando mb para crear un bucket de Amazon S3 denominado codedeploydemobucket:

aws s3 mb s3://codedeploydemobucket

Para crear un bucket de Amazon S3 (consola)

1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.2. En la consola de Amazon S3, elija Create bucket (Crear bucket).3. En el cuadro Bucket name (Nombre del bucket), escriba un nombre para el bucket.4. En la lista Region (Región), elija la región de destino y, a continuación, seleccione Create (Crear).

Versión de API 2014-10-0676

Page 86: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

Concesión de permisos al bucket de Amazon S3 y al usuario de IAMDebe tener permisos para cargar en el bucket de Amazon S3. Puede especificar estos permisos medianteuna política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3 eluso del carácter comodín (*) permite a la cuenta de AWS 111122223333 cargar archivos en cualquierdirectorio del bucket de Amazon S3 llamado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ]}

Para ver el ID de la cuenta de AWS, consulte Buscar su ID de cuenta de AWS.

Este es un buen momento para verificar si el bucket de Amazon S3 permite solicitudes de cada instanciaAmazon EC2 participante. Puede especificar esto mediante una política de bucket de Amazon S3.Por ejemplo, en la siguiente política de bucket de Amazon S3, el uso del carácter comodín (*) permitea cualquier instancia de Amazon EC2 asociada a un perfil de instancia de IAM que contenga el ARNarn:aws:iam::80398EXAMPLE:role/CodeDeployDemo para descargar archivos desde cualquierdirectorio en el bucket de Amazon S3 llamado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ]}

Para obtener información acerca de cómo generar y asociar una política de bucket de Amazon S3,consulte Ejemplos de política de bucket.

Para obtener información sobre cómo crear y asociar una política de IAM, consulte Administración depolíticas.

Preparación de los archivos de la aplicación para el bucketAsegúrese de que los archivos de la aplicación de WordPress, el AppSpec file y los scripts esténorganizados en el equipo de desarrollo de manera similar a la siguiente:

Versión de API 2014-10-0677

Page 87: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

/tmp/ |--WordPress/ |-- appspec.yml |-- scripts/ | |-- change_permissions.sh | |-- create_test_db.sh | |-- install_dependencies.sh | |-- start_server.sh | |-- stop_server.sh |-- wp-admin/ | |-- (various files...) |-- wp-content/ | |-- (various files...) |-- wp-includes/ | |-- (various files...) |-- index.php |-- license.txt |-- readme.html |-- (various files ending with .php...)

Agrupación de los archivos de la aplicación en un único archivode almacenamiento y envío del archivo de almacenamientoAgrupe los archivos de la aplicación de WordPress y el AppSpec file en un archivo de almacenamiento (loque se conoce como una revisión de la aplicación).

Note

Es posible que se cobre por almacenar objetos en un bucket y por transferir revisiones de laaplicación dentro y fuera de un bucket. Para obtener más información, consulte Precios deAmazon S3.

1. En el equipo de desarrollo, cambie a la carpeta en la que se almacenan los archivos:

cd /tmp/WordPress

Note

Si no cambia a esta carpeta, la agrupación del archivo comenzará en su carpeta actual.Por ejemplo, si la carpeta actual es /tmp en lugar de /tmp/WordPress, la agrupacióncomenzará con los archivos y subcarpetas de la carpeta tmp, lo que puede incluir algo másque la subcarpeta WordPress.

2. Ejecute el comando create-application para registrar una aplicación nueva denominadaWordPress_App.

aws deploy create-application --application-name WordPress_App

3. Ejecute el comando push de CodeDeploy para agrupar los archivos, cargar las revisiones en AmazonS3 y registrar en CodeDeploy información sobre la revisión cargada, todo con una acción.

aws deploy push \ --application-name WordPress_App \ --s3-location s3://codedeploydemobucket/WordPressApp.zip \ --ignore-hidden-files

Este comando agrupa los archivos del directorio actual (excepto los archivos ocultos) en un únicoarchivo de almacenamiento denominado WordPressApp.zip, carga la revisión en el bucketcodedeploydemobucket y registra en CodeDeploy información sobre la revisión cargada.

Versión de API 2014-10-0678

Page 88: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

Paso 4: Implementar la aplicación de WordPressAhora implementará la revisión de la aplicación de WordPress de ejemplo que ha cargado en AmazonS3. Puede utilizar la AWS CLI o la consola de CodeDeploy para implementar la revisión y monitorizarel progreso de la implementación. Una vez implementada correctamente la revisión de la aplicación,comprobará los resultados.

Temas• Implementación de revisión de la aplicación con CodeDeploy (p. 79)• Monitorización y solución de problemas de la implementación (p. 81)• Comprobación de la implementación (p. 82)

Implementación de revisión de la aplicación con CodeDeployUtilice la AWS CLI o la consola para implementar la revisión de la aplicación.

Temas• Para implementar la revisión de la aplicación (CLI) (p. 79)• Para implementar la revisión de la aplicación (consola) (p. 80)

Para implementar la revisión de la aplicación (CLI)

1. La implementación necesita un grupo de implementaciones. Sin embargo, para crear el grupo deimplementaciones, primero necesita un ARN de rol de servicio. Un rol de servicio es un rol de IAMque concede a un servicio permiso para actuar en su nombre. En este caso, el rol de servicio concedea CodeDeploy permiso de acceso a las instancias Amazon EC2 para ampliar (leer) las etiquetas deinstancias Amazon EC2.

Ya debe haber seguido las instrucciones de Creación de un rol de servicio (CLI) (p. 42) para crear unrol de servicio. Para obtener el ARN del rol de servicio, consulte Obtención del ARN del rol de servicio(CLI) (p. 44).

2. Ahora que tiene el ARN del rol de servicio, ejecute el comando create-deployment-group paracrear un grupo de implementaciones denominado WordPress_DepGroup asociado a la aplicaciónWordPress_App, utilizando la etiqueta de Amazon EC2 denominada CodeDeployDemo y laconfiguración de implementación CodeDeployDefault.OneAtATime:

aws deploy create-deployment-group \ --application-name WordPress_App \ --deployment-group-name WordPress_DepGroup \ --deployment-config-name CodeDeployDefault.OneAtATime \ --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE \ --service-role-arn serviceRoleARN

Note

El comando create-deployment-group permite la creación de desencadenadores que dancomo resultado el envío de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especificados en las implementaciones e instancias. El comando también admiteopciones para la restauración automática de implementaciones y la configuración de alarmaspara detener las implementaciones cuando se alcanzan los umbrales de monitorización delas alarmas de Amazon CloudWatch. Los comandos de estas acciones no se incluyen eneste tutorial.

Versión de API 2014-10-0679

Page 89: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

3. Antes de crear una implementación, las instancias del grupo de implementación deben tenerinstalado el agente de CodeDeploy. Puede instalar el agente desde la línea de comandos con AWSAdministrador de sistemas mediante el comando siguiente:

aws ssm create-association \ --name AWS-ConfigureAWSPackage \ --targets Key=tag:Name,Values=CodeDeployDemo \ --parameters action=Install, name=AWSCodeDeployAgent \ --schedule-expression "cron(0 2 ? * SUN *)"

Este comando crea una asociación en el Administrador de estados de Administrador de sistemasque instalará el agente de CodeDeploy y, después, intentará actualizarlo todos los domingos por lamañana a las 2:00. Para obtener más información sobre el agente de CodeDeploy, consulte Trabajarcon el agente de CodeDeploy. Para obtener más información sobre Administrador de sistemas,consulte ¿Qué es AWS Administrador de sistemas?.

4. Ejecute ahora el comando create-deployment para crear una implementación asociada a la aplicaciónWordPress_App, la configuración de implementación CodeDeployDefault.OneAtATimey el grupo de implementaciones WordPress_DepGroup utilizando la revisión de la aplicaciónWordPressApp.zip del bucket codedeploydemobucket:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DepGroup \ --s3-location bucket=codedeploydemobucket,bundleType=zip,key=WordPressApp.zip

Para implementar la revisión de la aplicación (consola)

1. Para utilizar la consola de CodeDeploy para implementar la revisión de la aplicación, primero necesitaun ARN de rol de servicio ARN. Un rol de servicio es un rol de IAM que concede a un servicio permisopara actuar en su nombre. En este caso, el rol de servicio concede a CodeDeploy permiso de accesoa las instancias Amazon EC2 para ampliar (leer) las etiquetas de instancias Amazon EC2.

Ya debe haber seguido las instrucciones de Creación de un rol de servicio (consola) (p. 40) paracrear un rol de servicio. Para obtener el ARN del rol de servicio, consulte Obtención del ARN del rol deservicio (consola) (p. 43).

2. Ahora que tiene el ARN, use la consola de CodeDeploy para implementar la revisión de la aplicación:

Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

3. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).4. En la lista de aplicaciones, elija WordPress_App.5. En la pestaña Deployment groups (Grupos de implementaciones), elija Create deployment group

(Crear grupo de implementaciones).6. En Deployment group name (Nombre de grupo de implementación), escriba WordPress_DepGroup.7. En Deployment type, elija In-place deployment.8. En Environment configuration (Configuración del entorno), seleccione Amazon EC2 instances

(Instancias Amazon EC2).9. En Configuración del agente con AWS Systems Manager, mantenga los valores predeterminados.

Versión de API 2014-10-0680

Page 90: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

10. En Key (Clave), introduzca Name.11. En Value (Valor), introduzca CodeDeployDemo.

Note

Después de escribir CodeDeployDemo, debe aparecer un 1 en Matching instances(Instancias que concuerdan) para confirmar que CodeDeploy encontró una instancia AmazonEC2 que coincide.

12. En Deployment configuration (Configuración de implementación), elijaCodeDeployDefault.OneAtATime.

13. En Service role ARN (ARN de rol de servicio), elija el ARN del rol de servicio y seleccione Createdeployment group (Crear grupo de implementación).

14. Elija Create deployment (Crear implementación).15. En Deployment group (Grupo de implementación), elija WordPress_DepGroup.16. Junto a Repository type (Tipo de repositorio), elija My application is stored in Amazon S3 (Mi

aplicación está almacenada en Amazon S3). En Revision location (Ubicación de la revisión), escribala ubicación de la revisión de la aplicación de WordPress de ejemplo que cargó antes en Amazon S3.Para obtener la ubicación:

a. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.b. En la lista de buckets, elija codedeploydemobucket (o el nombre del bucket en el que cargó la

revisión de la aplicación).c. En la lista de objetos, elija WordPressApp.zip.d. En la pestaña Overview (Información general), copie el valor del campo Link (Enlace) en el

portapapeles.

Debe ser similar al siguiente:

https://s3.amazonaws.com/codedeploydemobucket/WordPressApp.zip

e. Vuelva a la consola de CodeDeploy y, en Revision location (Ubicación de la revisión), pegue elvalor del campo Link (Enlace).

17. Si en la lista File type (Tipo de archivo) aparece un mensaje en el que se indica que no se ha podidodetectar el tipo de archivo, seleccione .zip.

18. (Opcional) Escriba un comentario en el cuadro Deployment description.19. Expanda Deployment group overrides (Anulaciones del grupo de implementaciones) y en Deployment

configuration (Configuración de implementación), elija CodeDeployDefault.OneAtATime.20. Elija Start deployment (Iniciar la implementación). En la página Deployments se mostrará información

sobre la implementación que acaba de crear.

Monitorización y solución de problemas de la implementaciónUtilice la AWS CLI o la consola para monitorizar y resolver problemas de la implementación.

Temas• Para monitorizar y solucionar problemas en la implementación (CLI) (p. 81)• Para monitorizar y resolver problemas de la implementación (consola) (p. 82)

Para monitorizar y solucionar problemas en la implementación (CLI)

1. Obtenga el ID de la implementación; para ello, ejecute el comando list-deployments para la aplicaciónWordPress_App y el grupo de implementaciones WordPress_DepGroup:

Versión de API 2014-10-0681

Page 91: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query 'deployments' --output text

2. Llame al comando get-deployment con el ID de la implementación:

aws deploy get-deployment --deployment-id deploymentID --query 'deploymentInfo.status' --output text

3. El comando devuelve el estado general de la implementación. Si todo sale bien, el valor esSucceeded.

Si el estado general es Failed, puede ejecutar comandos como list-deployment-instances y get-deployment-instance para solucionar los problemas. Si desea conocer más opciones de solución deproblemas, consulte Análisis de archivos de registro para investigar los errores de implementación eninstancias (p. 465).

Para monitorizar y resolver problemas de la implementación (consola)

En la página Deployments (Implementaciones) de la consola de CodeDeploy puede monitorizar el estadode la implementación en la columna Status (Estado).

Para obtener más información acerca de la implementación, sobre todo si el valor de la columna Statustiene un valor distinto de Succeeded:

1. En la tabla Deployments (Implementaciones), elija el nombre de la implementación. Cuando seproduce un error en una implementación, aparece un mensaje que describe el motivo del error.

2. En Actividad de instancia, aparece más información sobre la implementación. Cuando se unaimplementación falla, es posible que pueda determinar las instancias Amazon EC2 afectadas y el pasodel proceso en el que se ha producido el error.

3. Si desea continuar con la solución de problemas, puede aplicar una técnica como la descrita enVisualización de los detalles de la instancia (p. 254). También puede analizar los archivos de log dela implementación en una instancia Amazon EC2. Para obtener más información, consulte Análisis dearchivos de registro para investigar los errores de implementación en instancias (p. 465).

Comprobación de la implementaciónUna vez efectuada con éxito la implementación, puede comprobar que la instalación de WordPressfunciona. Utilice la dirección DNS pública de la instancia Amazon EC2 seguida de /WordPress, para verel sitio en un navegador web. (Para obtener el valor del DNS público, elija la instancia Amazon EC2 en laconsola de Amazon EC2 y, en la pestaña Description [Descripción], busque el valor de Public DNS [DNSpúblico]).

Por ejemplo, si la dirección DNS pública de la instancia Amazon EC2 esec2-01-234-567-890.compute-1.amazonaws.com, se usará la siguiente dirección URL:

http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress

Cuando vea el sitio en el navegador, debería aparecer una página de bienvenida de WordPress que tieneun aspecto similar al siguiente:

Versión de API 2014-10-0682

Page 92: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Actualizar y volver a implementar la aplicación

Si la instancia Amazon EC2 no tiene ninguna regla entrante HTTP en su grupo de seguridad, la páginade bienvenida de WordPress no aparecerá. Si aparece un mensaje que indica que el servidor remoto noresponde, asegúrese de que el grupo de seguridad de la instancia Amazon EC2 tiene la regla de entrada.Para obtener más información, consulte Adición de una regla de entrada que permite el tráfico HTTP haciala instancia Amazon EC2 de Amazon Linux o RHEL (p. 71).

Paso 5: Actualizar y volver a implementar la aplicaciónde WordPressAhora que ha implementado correctamente la revisión de la aplicación, actualice el código de WordPressen el equipo de desarrollo y, a continuación, utilice CodeDeploy para volver a implementar el sitio.Posteriormente, debería poder ver los cambios en el código en la instancia Amazon EC2.

Temas• Configuración del sitio de WordPress (p. 83)• Modificación del sitio (p. 84)• Nueva implementación del sitio (p. 84)

Configuración del sitio de WordPressPara ver los efectos del cambio del código, termine de configurar el sitio de WordPress para tener unainstalación plenamente funcional.

1. Escriba la URL del sitio web en el navegador web. La URL es la dirección DNS pública dela instancia Amazon EC2 con una extensión /WordPress. Para este sitio de WordPress de

Versión de API 2014-10-0683

Page 93: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Actualizar y volver a implementar la aplicación

ejemplo (y la dirección DNS pública de la instancia Amazon EC2 de ejemplo), la URL es http://ec2-01-234-567-890.compute-1.amazonaws.com/WordPress.

2. Si no ha configurado el sitio todavía, aparece la página de bienvenida predeterminada de WordPress.Elija ¡Vamos!.

3. En la página de configuración de la base de datos, escriba los siguientes valores para utilizar la basede datos MySQL predeterminada:

• Database Name (Nombre de la base de datos): test• User Name (Nombre del usuario): root• Contraseña: déjela en blanco.• Database Host (Host de base de datos): localhost• Table Prefix (Prefijo de tabla): wp_

Elija Submit para configurar la base de datos.4. Continúe con la configuración del sitio. En la página Welcome, rellene los valores deseados y luego

seleccione Install WordPress. Cuando se haya completado la instalación, puede iniciar sesión en elpanel.

Important

Durante la implementación de la aplicación de WordPress, el script change_permissions.shha actualizado los permisos de la carpeta /tmp/WordPress de forma que cualquiera puedeescribir en ella. Este es un buen momento para ejecutar el siguiente comando para restringir lospermisos, de forma que solo usted, el propietario, pueda escribir en ella:

chmod -R 755 /var/www/html/WordPress

Modificación del sitioPara modificar el sitio de WordPress, vaya a la carpeta de la aplicación en el equipo de desarrollo:

cd /tmp/WordPress

Para modificar algunos colores del sitio, en el archivo wp-content/themes/twentyfifteen/style.css, utilice un editor de texto o sed para cambiar ✔fff a ✔768331.

En Linux u otros sistemas con sed GNU, utilice:

sed -i 's/✔fff/✔768331/g' wp-content/themes/twentyfifteen/style.css

En macOS, Unix u otros sistemas con sed BSD, utilice:

sed -i '' 's/✔fff/✔768331/g' wp-content/themes/twentyfifteen/style.css

Nueva implementación del sitioAhora que ha modificado el código del sitio, utilice Amazon S3 y CodeDeploy para volver a implementar elsitio.

Versión de API 2014-10-0684

Page 94: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Actualizar y volver a implementar la aplicación

Agrupe y cargue los cambios en Amazon S3, como se describe en Agrupación de los archivos de laaplicación en un único archivo de almacenamiento y envío del archivo de almacenamiento (p. 78).(Cuando siga esas instrucciones, recuerde que no tiene que crear una aplicación). Asigne a la nuevarevisión la misma clave que antes (WordPressApp.zip). Cárguela en el mismo bucket de Amazon S3que creó anteriormente (por ejemplo, codedeploydemobucket).

Utilice la AWS CLI, la consola de CodeDeploy o las API de CodeDeploy para volver a implementar el sitio.

Temas• Para volver implementar el sitio (CLI) (p. 85)• Para volver a implementar el sitio (consola) (p. 85)

Para volver implementar el sitio (CLI)Llame al comando create-deployment para crear una implementación basada en la revisiónrecién cargada. Utilice la aplicación WordPress_App, la configuración de implementaciónCodeDeployDefault.OneAtATime, el grupo de implementaciones WordPress_DepGroup y la revisiónWordPressApp.zip del bucket codedeploydemobucket:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name WordPress_DepGroup \ --s3-location bucket=codedeploydemobucket,bundleType=zip,key=WordPressApp.zip

Puede comprobar el estado de la implementación como se describe en Monitorización y solución deproblemas de la implementación (p. 81).

Una vez que CodeDeploy ha vuelto a implementar el sitio, visítelo de nuevo en su navegador web paraverificar que los colores han cambiado. (Puede que tenga que actualizar el navegador). Si los colores hancambiado, ¡enhorabuena! Ha modificado y vuelto a implementar correctamente su sitio.

Para volver a implementar el sitio (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la lista de aplicaciones, elija WordPress_App.4. En la pestaña Deployment groups (Grupos de implementaciones), elija WordPress_DepGroup.5. Elija Create deployment (Crear implementación).6. En la página Create deployment:

a. En Deployment group (Grupo de implementación), elija WordPress_DepGroup.b. En el área Repository type (Tipo de repositorio), elija My application is stored in Amazon S3 (Mi

aplicación está almacenada en Amazon S3) y, a continuación, copie el enlace de Amazon S3 dela revisión en el cuadro Revision location (Ubicación de la revisión). Para encontrar el valor delenlace:

i. En una pestaña diferente del navegador:

Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 enhttps://console.aws.amazon.com/s3/.

Versión de API 2014-10-0685

Page 95: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Limpeza

Vaya al archivo codedeploydemobucket, ábralo y elija la revisión WordPressApp.zip.ii. Si el panel Properties (Propiedades) no se muestra en la consola de Amazon S3, elija el

botón Properties (Propiedades).iii. En el panel Properties (Propiedades), copie el valor del campo Link (Enlace) en el cuadro

Revision location (Ubicación de la revisión) de la consola de CodeDeploy.c. Si aparece un mensaje que indica que el tipo de archivo no se pudo detectar, elija .zip.d. Deje el cuadro Deployment description en blanco.e. Expanda Deployment group overrides (Anulaciones del grupo de implementaciones)

y, en Deployment configuration (Configuración de implementación), elijaCodeDeployDefault.OneAtATime.

f. Elija Start deployment (Iniciar la implementación). En la página Deployments se mostraráinformación sobre la implementación que acaba de crear.

g. Puede comprobar el estado de la implementación como se describe en Monitorización y soluciónde problemas de la implementación (p. 81).

Una vez que CodeDeploy ha vuelto a implementar el sitio, visítelo de nuevo en su navegador webpara verificar que los colores han cambiado. (Puede que tenga que actualizar el navegador). Silos colores han cambiado, ¡enhorabuena! Ha modificado y vuelto a implementar correctamente susitio.

Paso 6: Limpiar la aplicación de WordPress y losrecursos relacionadosHa actualizado correctamente el código de WordPress y ha vuelto a implementar el sitio. Para evitarcargos recurrentes por los recursos que ha creado para este tutorial, debe eliminar:

• Todas las pilas de AWS CloudFormation (o terminar todas las instancias Amazon EC2, si las ha creadofuera de AWS CloudFormation).

• Todos los buckets de Amazon S3.• La aplicación WordPress_App en CodeDeploy.• La asociación del Administrador de estados de AWS Administrador de sistemas para el agente de

CodeDeploy.

Puede utilizar la AWS CLI, las consolas de AWS CloudFormation, Amazon S3, Amazon EC2 y CodeDeployo las API de AWS para realizar la limpieza.

Temas• Para limpiar los recursos (CLI) (p. 86)• Para limpiar los recursos (consola) (p. 87)• Siguientes pasos (p. 88)

Para limpiar los recursos (CLI)1. Si ha utilizado la plantilla de AWS CloudFormation para este tutorial, ejecute el comando delete-stack

para la pila CodeDeployDemoStack. Así terminará todas las instancias Amazon EC2 asociadas yeliminará todos los roles de IAM que haya creado la pila:

aws cloudformation delete-stack --stack-name CodeDeployDemoStack

Versión de API 2014-10-0686

Page 96: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Limpeza

2. Para eliminar el bucket de Amazon S3, ejecute el comando rm con el modificador --recursive parael bucket denominado codedeploydemobucket. Así eliminará el bucket y todos los objetos quecontiene:

aws s3 rm s3://codedeploydemobucket --recursive

3. Para eliminar la aplicación WordPress_App, realice una llamada al comando delete-application. Estoeliminará también todos los registros de grupo de implementaciones asociados y los registros deimplementación de la aplicación:

aws deploy delete-application --application-name WordPress_App

4. Para eliminar la asociación del Administrador de estados de Administrador de sistemas, llame alcomando delete-association.

aws ssm delete-association --assocation-id association-id

Para obtener el valor de id-asociación, llame al comando describe-association.

aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo

Si no utilizó la pila de AWS CloudFormation en este tutorial, realice una llamada al comando terminate-instances para terminar cualquier instancia Amazon EC2 que haya creado manualmente. Indique el ID dela instancia Amazon EC2 que desea terminar:

aws ec2 terminate-instances --instance-ids instanceId

Para limpiar los recursos (consola)Si ha utilizado la plantilla de AWS CloudFormation para este tutorial, elimine la pila de AWSCloudFormation asociada.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

2. En el cuadro Filter (Filtro), escriba el nombre de la pila de AWS CloudFormation que creóanteriormente (por ejemplo, CodeDeployDemoStack).

3. Seleccione la casilla junto al nombre de la pila. En el menú Actions (Acciones), elija Delete Stack(Eliminar pila).

AWS CloudFormation elimina la pila, termina todas las instancias Amazon EC2 asociadas y eliminatodos los roles de IAM correspondientes.

Para terminar las instancias Amazon EC2 que haya creado fuera de una pila de AWS CloudFormation:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. En la lista INSTANCES, elija Instances.3. En el campo de búsqueda, escriba el nombre de la instancia Amazon EC2 que desee finalizar (por

ejemplo, CodeDeployDemo) y, a continuación, pulse Intro.4. Elija el nombre de la instancia Amazon EC2.5. En el menú Actions, seleccione Instance State y elija Terminate. Cuando se le pregunte, elija Yes,

Terminate.

Versión de API 2014-10-0687

Page 97: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de una aplicación Hello

World en una instancia de Windows Server

Repita estos pasos para cada instancia.

Para eliminar el bucket de Amazon S3:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

2. En la lista de buckets, busque y seleccione el nombre del bucket de Amazon S3 que creóanteriormente (por ejemplo, codedeploydemobucket).

3. Para eliminar un bucket, primero debe eliminar su contenido. Seleccione todos los archivos delbucket, como WordPressApp.zip. En el menú Actions, elija Delete. Cuando se le pida confirmar laeliminación, elija OK.

4. Una vez vacío, puede eliminar el bucket. En la lista de buckets, elija la línea del bucket (pero no sunombre). Elija Delete bucket y cuando se le pida que confirme, seleccione OK.

Para eliminar la aplicación WordPress_App de CodeDeploy:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la lista de aplicaciones, elija WordPress_App.4. En la página Application details (Detalles de la aplicación), elija Delete application (Eliminar

aplicación).5. Cuando se le solicite, introduzca el nombre de la aplicación para confirmar que desea eliminarla y

seleccione Delete (Eliminar).

Para eliminar la asociación del Administrador de estados de Administrador de sistemas:

1. Abra la consola de AWS Administrador de sistemas en https://console.aws.amazon.com/systems-manager.

2. En el panel de navegación, elija Administrador de estados.3. Elija la asociación que ha creado y, después, elija Eliminar.

Siguientes pasosSi ha llegado hasta aquí, ¡enhorabuena! Ha completado correctamente una implementación deCodeDeploy, ha actualizado el código del sitio y lo ha vuelto a implementar.

Tutorial: Implementación de una aplicación "Hello,World!" Aplicación con CodeDeploy (WindowsServer)

En este tutorial, implementa una única página web en una sola instancia Amazon EC2 de Windows Serverque ejecuta Internet Information Services (IIS) como servidor web. Esta página web muestra un mensaje"Hello, World!".

Versión de API 2014-10-0688

Page 98: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Lanzar una instancia Amazon EC2

¿No es lo que busca?

• Si lo que desea es practicar la implementación en una instancia Amazon EC2 con Amazon Linux oRed Hat Enterprise Linux (RHEL), consulte el Tutorial: Implementación de WordPress en una instanciaAmazon EC2 (Amazon Linux o Red Hat Enterprise Linux y Linux, macOS, or Unix) (p. 69).

• Para practicar la implementación en una instancia on-premises, consulte Tutorial: Implementación deuna aplicación en una instancia on-premises con CodeDeploy (Windows Server Ubuntu Server o RedHat Enterprise Linux) (p. 104).

Los pasos de este tutorial se presentan desde una perspectiva de Windows. Aunque puede completar lamayoría de estos pasos en un equipo local que ejecuta Linux, macOS, or Unix, debe adaptar los pasos enlos que se usan rutas de directorio basadas en Windows, como c:\temp. Además, si desea conectarse ala instancia Amazon EC2, necesita una aplicación cliente que pueda conectarse mediante el Protocolo deEscritorio remoto (RDP) a la instancia Amazon EC2 que ejecuta Windows Server. (Windows incluye unaaplicación cliente de conexión RDP de forma predeterminada).

Antes de comenzar este tutorial, debe completar los requisitos previos indicados en Introducción aCodeDeploy (p. 37), incluida la configuración de su usuario de IAM, la instalación o actualización de laAWS CLI y la creación de un perfil de instancia y un rol de servicio de IAM.

Temas• Paso 1: Lanzar una instancia Amazon EC2 de Windows Server (p. 89)• Paso 2: Configurar el contenido de origen para implementarlo en la instancia Amazon EC2 de Windows

Server (p. 91)• Paso 3: Cargar la aplicación "Hello, World!" en Amazon S3 (p. 93)• Paso 4: Implementar su aplicación Hello World. (p. 96)• Paso 5: Actualizar y volver a implementar su aplicación "Hello, World!" Solicitud (p. 100)• Paso 6: Limpiar las aplicaciones de "Hello, World!" y sus recursos relacionados (p. 102)

Paso 1: Lanzar una instancia Amazon EC2 deWindows ServerPara implementar la aplicación Hello, World! con CodeDeploy, necesitará una instancia Amazon EC2 conWindows Server.

Siga las instrucciones en Creación de una instancia Amazon EC2 para CodeDeploy (p. 212). Cuandoesté listo para asignar una etiqueta de instancia Amazon EC2 a la instancia, asegúrese de especificar laclave de etiqueta Name y el valor de etiqueta CodeDeployDemo. (Si especifica otra clave u otro valor deetiqueta, las instrucciones de Paso 4: Implementar su aplicación Hello World. (p. 96) pueden producirresultados inesperados).

Una vez que haya lanzado la instancia Amazon EC2, vuelva a esta página y continúe con la secciónsiguiente. No continúe en Creación de una aplicación con CodeDeploy (p. 270) como paso siguiente.

Conéctese a la instancia Amazon EC2.Una vez lanzada la instancia Amazon EC2, siga estas instrucciones para practicar la conexión a lainstancia.

Note

En estas instrucciones se supone que está trabajando con Windows y con la aplicación clientede conexión a escritorio de Windows. Para obtener más información, consulte Conexión con lainstancia de Windows mediante RDP. Es posible que necesite adaptar estas instrucciones paraotros sistemas operativos u otras aplicaciones cliente de conexión RDP.

Versión de API 2014-10-0689

Page 99: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Lanzar una instancia Amazon EC2

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. En el panel de navegación, bajo Instances, elija Instances.3. Busque la instancia Windows Server en la lista y selecciónela.4. Elija Connect.5. Elija Get Password (Obtener contraseña) y, a continuación, elija Choose File (Seleccionar archivo).6. Busque y seleccione el archivo de par de claves de la instancia Amazon EC2 asociado a la instancia

Amazon EC2 de Windows Server y, a continuación, elija Open (Abrir).7. Elija Decrypt Password. Apunte la contraseña que se muestra. La necesitará en el paso 10.8. Elija Download Remote Desktop File (Descargar archivo de escritorio remoto) y abra el archivo.9. Si se le pide conectarse a pesar de que el editor de la conexión remota no pueda identificarse, hágalo.10. Escriba la contraseña que ha anotado en el paso 7 y continúe. (Si la aplicación cliente de conexión

RDP solicita un nombre de usuario, escriba Administrator).11. Si se le pide que se conecte a pesar de que la identidad del equipo remoto no pueda verificarse,

hágalo.12. Después de haberse conectado, se muestra el escritorio de la instancia Amazon EC2 ejecutando

Windows Server.13. Ahora puede desconectar de la instancia Amazon EC2.

Warning

No interrumpa ni termine la instancia. De lo contrario, CodeDeploy no podrá implementarseen ella.

Adición de una regla de entrada que permite el tráfico HTTP a lainstancia de Amazon EC2 de Windows ServerEl siguiente paso confirma que la instancia Amazon EC2 tiene un puerto HTTP abierto para que se puedaver la página web implementada en la instancia Amazon EC2 de Windows Server en un navegador.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. Elija Instances (Instancias) y, a continuación, elija su instancia.3. En la pestaña Description (Descripción), debajo de Security groups (Grupos de seguridad), elija view

inbound rules (Ver reglas de entrada).

Debe aparecer una lista de reglas en el grupo de seguridad predeterminado con un aspecto similar alsiguiente:

Security Groups associated with i-1234567890abcdef0 Ports Protocol Source launch-wizard-N 22 tcp 0.0.0.0/0 ✔

4. En Security groups (Grupos de seguridad), elija el grupo de seguridad de su instancia Amazon EC2.Podría llamarse launch-wizard-N. La N del nombre es un número asignado al grupo de seguridadcuando se creó la instancia.

Elija la pestaña Inbound (Reglas entrantes). Si el grupo de seguridad de su instancia está configuradocorrectamente, debería ver una regla con los siguientes valores:

• Type (Tipo): HTTP• Protocol (Protocolo): TCP• Port Range (Rango de puertos): 80

Versión de API 2014-10-0690

Page 100: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Configurar su contenido de origen

• Source (Fuente): 0.0.0.0/05. Si no ve una regla con estos valores, utilice los procedimientos descritos en Agregar reglas a un grupo

de seguridad para añadirlos a una nueva regla de seguridad.

Paso 2: Configurar el contenido de origen paraimplementarlo en la instancia Amazon EC2 deWindows ServerHa llegado el momento de configurar el contenido de origen de la aplicación para tener algo queimplementar en la instancia Amazon EC2. En este tutorial, implementará una única página web en lainstancia Amazon EC2 que ejecuta Windows Server, que a su vez ejecutará Internet Information Services(IIS) como su servidor web. Esta página web mostrará un mensaje "Hello, World!".

Temas• Crear la página web (p. 91)• Crear un script para ejecutar la aplicación (p. 92)• Añadir un archivo de especificación de la aplicación (p. 92)

Crear la página web1. Cree un subdirectorio (subcarpeta) denominado HelloWorldApp en su carpeta c:\temp y, a

continuación, pase a esa carpeta.

mkdir c:\temp\HelloWorldAppcd c:\temp\HelloWorldApp

Note

La ubicación de la carpeta no tiene por qué ser c:\temp ni el nombre de la subcarpeta,HelloWorldApp. Si utiliza otra ubicación u otro nombre de subcarpeta, asegúrese deutilizarlos en este tutorial.

2. Utilice un editor de texto para crear un archivo dentro de la carpeta. Asigne el nombre index.html alarchivo.

notepad index.html

3. Añada el siguiente código HTML al archivo y guárdelo.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>Hello, World!</title> <style> body { color: ✔ffffff; background-color: ✔0188cc; font-family: Arial, sans-serif; font-size:14px; } </style></head>

Versión de API 2014-10-0691

Page 101: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Configurar su contenido de origen

<body> <div align="center"><h1>Hello, World!</h1></div> <div align="center"><h2>You have successfully deployed an application using CodeDeploy</h2></div> <div align="center"> <p>What to do next? Take a look through the <a href="https://aws.amazon.com/codedeploy">CodeDeploy Documentation</a>.</p> </div></body></html>

Crear un script para ejecutar la aplicaciónA continuación, creará un script que CodeDeploy utilizará para configurar el servidor web de destino en lainstancia Amazon EC2.

1. En la misma subcarpeta donde se guarda el archivo index.html, utilice un editor de texto para crearotro archivo. Asigne el nombre before-install.bat al archivo.

notepad before-install.bat

2. Añada el siguiente código de script de procesamiento por lotes al archivo y, a continuación, guárdelo.

REM Install Internet Information Server (IIS).c:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Import-Module -Name ServerManagerc:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -Command Install-WindowsFeature Web-Server

Añadir un archivo de especificación de la aplicaciónA continuación, añadirá un application specification file (AppSpec file) además de la página web y elarchivo con el script de procesamiento por lotes. El AppSpec file es un archivo con formato YAML utilizadopor CodeDeploy para:

• Asignar los archivos de origen de la revisión de la aplicación a sus destinos en la instancia.• Especificar los scripts que deben ejecutarse en la instancia durante la implementación.

El AppSpec file debe denominarse appspec.yml. Debe ir en la carpeta raíz de código fuente de laaplicación.

1. Utilice un editor de texto para crear otro archivo en la misma carpeta en la que se encuentranindex.html y before-install.bat. Asigne el nombre appspec.yml al archivo.

notepad appspec.yml

2. Añada el siguiente código YAML al archivo y guárdelo.

version: 0.0os: windowsfiles: - source: \index.html destination: c:\inetpub\wwwroothooks: BeforeInstall: - location: \before-install.bat

Versión de API 2014-10-0692

Page 102: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

timeout: 900

CodeDeploy utilizará este AppSpec file para copiar el archivo index.html de la carpeta raíz delcódigo fuente de la aplicación en la carpeta c:\inetpub\wwwroot de la instancia Amazon EC2de destino. Durante la implementación, CodeDeploy ejecutará el script de procesamiento por lotesbefore-install.bat en la instancia Amazon EC2 de destino durante el evento del ciclo de vida de laimplementación BeforeInstall. Si este script tarda más de 900 segundos (15 minutos) en ejecutarse,CodeDeploy detendrá la implementación en la instancia Amazon EC2 y la marcará como errónea.

Para obtener más información sobre la configuración, consulte Referencia de AppSpec File deCodeDeploy (p. 402).

Important

Las ubicaciones y el número de espacios entre cada uno de los elementos de este archivo sonimportantes. Si el espaciado es incorrecto, CodeDeploy generará un error que puede resultardifícil de depurar. Para obtener más información, consulte Espaciado de AppSpec File (p. 432).

Paso 3: Cargar la aplicación "Hello, World!" enAmazon S3Ahora preparará y cargará su contenido de origen en una ubicación desde la que CodeDeploy puedaimplementarla. Las siguientes instrucciones explican cómo aprovisionar un bucket de Amazon S3,preparar los archivos de la revisión de la aplicación para el bucket, agrupar los archivos de la revisión y, acontinuación, enviar la revisión al bucket.

Note

Aunque no se trata en este tutorial, puede utilizar CodeDeploy para implementar aplicacionesdesde repositorios de GitHub en instancias. Para obtener más información, consulte Integraciónde CodeDeploy con GitHub (p. 64).

Temas• Aprovisionar un bucket de Amazon S3 (p. 93)• Preparación de los archivos de la aplicación para el bucket (p. 95)• Agrupamiento de los archivos de la aplicación en un único archivo de almacenamiento y envío del

archivo de almacenamiento (p. 95)

Aprovisionar un bucket de Amazon S3Cree un contenedor de almacenamiento o bucket en Amazon S3 o utilice un bucket existente. Asegúresede que puede cargar la revisión en el bucket y que las instancias Amazon EC2 utilizadas en lasimplementaciones pueden descargar la revisión del bucket.

Puede utilizar la AWS CLI, la consola de Amazon S3 o las API de Amazon S3 para crear un bucket deAmazon S3. Después de crear el bucket, asegúrese de que concede permisos de acceso al bucket y a suusuario de IAM.

Note

Los nombres de bucket deben ser únicos en Amazon S3 para todas las cuentas de AWS.Si no puede utilizar codedeploydemobucket, pruebe otro nombre de bucket, por ejemplo,codedeploydemobucket seguido de un guion y sus iniciales o algún otro identificador único.A continuación, cuando aparezca codedeploydemobucket en este tutorial, asegúrese desustituirlo por el nombre de su bucket.El bucket de Amazon S3 debe crearse en la misma región de AWS en la que se lanzan lasinstancias Amazon EC2 de destino. Por ejemplo, si crea el bucket en la Región EE.UU. Este

Versión de API 2014-10-0693

Page 103: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

(Norte de Virginia), las instancias Amazon EC2 de destino se deben lanzar en la Región EE.UU.Este (Norte de Virginia).

Temas• Para crear un bucket de Amazon S3 (CLI) (p. 94)• Para crear un bucket de Amazon S3 (consola) (p. 94)• Concesión de permisos al bucket de Amazon S3 y al usuario de IAM (p. 94)

Para crear un bucket de Amazon S3 (CLI)Ejecute el comando mb para crear un bucket de Amazon S3 denominado codedeploydemobucket:

aws s3 mb s3://codedeploydemobucket

Para crear un bucket de Amazon S3 (consola)

1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.2. En la consola de Amazon S3, elija Create bucket (Crear bucket).3. En el cuadro Bucket name (Nombre del bucket), escriba un nombre para el bucket.4. En la lista Region (Región), elija la región de destino y, a continuación, seleccione Create (Crear).

Concesión de permisos al bucket de Amazon S3 y al usuario de IAMDebe tener permisos para cargar en el bucket de Amazon S3. Puede especificar estos permisos medianteuna política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3 eluso del carácter comodín (*) permite a la cuenta de AWS 111122223333 cargar archivos en cualquierdirectorio del bucket de Amazon S3 llamado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ]}

Para ver el ID de la cuenta de AWS, consulte Buscar su ID de cuenta de AWS.

Este es un buen momento para verificar si el bucket de Amazon S3 permite solicitudes de cada instanciaAmazon EC2 participante. Puede especificar esto mediante una política de bucket de Amazon S3.Por ejemplo, en la siguiente política de bucket de Amazon S3, el uso del carácter comodín (*) permitea cualquier instancia de Amazon EC2 asociada a un perfil de instancia de IAM que contenga el ARNarn:aws:iam::80398EXAMPLE:role/CodeDeployDemo para descargar archivos desde cualquierdirectorio en el bucket de Amazon S3 llamado codedeploydemobucket:

{ "Statement": [

Versión de API 2014-10-0694

Page 104: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar la aplicación en Amazon S3

{ "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ]}

Para obtener información acerca de cómo generar y asociar una política de bucket de Amazon S3,consulte Ejemplos de política de bucket.

Su cuenta debe tener permiso para cargar la revisión en el bucket de Amazon S3. Una forma deespecificarlo es a través de una política de IAM. La siguiente política de IAM permite que el usuario de IAMcargue revisiones en cualquier lugar del bucket de Amazon S3 denominado codedeploydemobucket:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":["s3:PutObject"], "Resource":"arn:aws:s3:::codedeploydemobucket/*" } ]}

Para obtener información sobre cómo crear y asociar una política de IAM, consulte Administración depolíticas.

Preparación de los archivos de la aplicación para el bucketAsegúrese de que la página web, el AppSpec file y el script se organizan en su equipo de desarrollo deeste modo:

c:\ |-- temp\ |--HelloWorldApp\ |-- appspec.yml |-- before-install.bat |-- index.html

Agrupamiento de los archivos de la aplicación en unúnico archivo de almacenamiento y envío del archivo dealmacenamientoAgrupe los archivos en un archivo de almacenamiento (se denomina una revisión de la aplicación).

Note

Es posible que se cobre por almacenar objetos en un bucket y por transferir revisiones de laaplicación dentro y fuera de un bucket. Para obtener más información, consulte Precios deAmazon S3.

Versión de API 2014-10-0695

Page 105: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

1. En el equipo de desarrollo, cambie a la carpeta en la que se almacenan los archivos:

cd c:\temp\HelloWorldApp

Note

Si no cambia a esta carpeta, la agrupación del archivo comenzará en su carpeta actual.Por ejemplo, si la carpeta actual es c:\temp en lugar de c:\temp\HelloWorldApp, laagrupación comenzará con los archivos y subcarpetas de la carpeta c:\temp, lo que puedeincluir algo más que la subcarpeta HelloWorldApp.

2. Ejecute el comando create-application para registrar una aplicación nueva denominadaHelloWorld_App en CodeDeploy:

aws deploy create-application --application-name HelloWorld_App

3. Ejecute el comando push de CodeDeploy para agrupar los archivos, cargar las revisiones en AmazonS3 y registrar en CodeDeploy información sobre la revisión cargada, todo con una acción.

aws deploy push --application-name HelloWorld_App --s3-location s3://codedeploydemobucket/HelloWorld_App.zip --ignore-hidden-files

Este comando agrupa los archivos del directorio actual (excepto los archivos ocultos) en un únicoarchivo de almacenamiento denominado HelloWorld_App.zip, carga la revisión en el bucketcodedeploydemobucket y registra en CodeDeploy información sobre la revisión cargada.

Paso 4: Implementar su aplicación Hello World.Ahora implementa la revisión de la aplicación Hello, World! de ejemplo que ha cargado en Amazon S3.Utilice la AWS CLI o la consola de CodeDeploy para implementar la revisión y monitorizar el progresode la implementación. Una vez implementada correctamente la revisión de la aplicación, comprobará losresultados.

Temas• Implementación de revisión de la aplicación con CodeDeploy (p. 96)• Monitorización y solución de problemas de la implementación (p. 98)• Comprobación de la implementación (p. 99)

Implementación de revisión de la aplicación con CodeDeployPuede implementar su aplicación con la CLI o la consola.

Temas• Para implementar la revisión de la aplicación (CLI) (p. 96)• Para implementar la revisión de la aplicación (consola) (p. 97)

Para implementar la revisión de la aplicación (CLI)

1. En primer lugar, la implementación necesita un grupo de implementaciones. Sin embargo, para crearel grupo de implementaciones, primero necesita un ARN de rol de servicio. Un rol de servicio esun rol de IAM que concede a un servicio permiso para actuar en su nombre. En este caso, el rol deservicio concede a CodeDeploy permiso de acceso a las instancias Amazon EC2 para ampliar (leer)las etiquetas de instancias Amazon EC2.

Versión de API 2014-10-0696

Page 106: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

Ya debe haber seguido las instrucciones de Creación de un rol de servicio (CLI) (p. 42) para crear unrol de servicio. Para obtener el ARN del rol de servicio, consulte Obtención del ARN del rol de servicio(CLI) (p. 44).

2. Ahora que tiene el ARN, ejecute el comando create-deployment-group para crear un grupo deimplementaciones denominado HelloWorld_DepGroup asociado a la aplicación HelloWorld_App,utilizando la etiqueta de instancia Amazon EC2 CodeDeployDemo y la configuración deimplementación CodeDeployDefault.OneAtATime con el ARN del rol de servicio:

aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN

Note

El comando create-deployment-group permite la creación de desencadenadores que dancomo resultado el envío de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especificados en las implementaciones e instancias. El comando también admiteopciones para la restauración automática de implementaciones y la configuración de alarmaspara detener las implementaciones cuando se alcanzan los umbrales de monitorización delas alarmas de Amazon CloudWatch. Los comandos de estas acciones no se incluyen eneste tutorial.

3. Antes de crear una implementación, las instancias del grupo de implementación deben tenerinstalado el agente de CodeDeploy. Puede instalar el agente desde la línea de comandos con AWSAdministrador de sistemas mediante el comando siguiente:

aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install, name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)"

Este comando crea una asociación en el Administrador de estados de Administrador de sistemasque instalará el agente de CodeDeploy y, después, intentará actualizarlo todos los domingos por lamañana a las 2:00. Para obtener más información sobre el agente de CodeDeploy, consulte Trabajarcon el agente de CodeDeploy. Para obtener más información sobre Administrador de sistemas,consulte ¿Qué es AWS Administrador de sistemas?.

4. Ejecute ahora el comando create-deployment para crear una implementación asociada a la aplicaciónHelloWorld_App, la configuración de implementación CodeDeployDefault.OneAtATimey el grupo de implementaciones HelloWorld_DepGroup utilizando la revisión de la aplicaciónHelloWorld_App.zip del bucket codedeploydemobucket:

aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=codedeploydemobucket,bundleType=zip,key=HelloWorld_App.zip

Para implementar la revisión de la aplicación (consola)

1. Para utilizar la consola de CodeDeploy para implementar la revisión de la aplicación, primero necesitaun ARN de rol de servicio ARN. Un rol de servicio es un rol de IAM que concede a un servicio permisopara actuar en su nombre. En este caso, el rol de servicio concede a CodeDeploy permiso de accesoa las instancias Amazon EC2 para ampliar (leer) las etiquetas de instancias Amazon EC2.

Ya debe haber seguido las instrucciones de Creación de un rol de servicio (consola) (p. 40) paracrear un rol de servicio. Para obtener el ARN del rol de servicio, consulte Obtención del ARN del rol deservicio (consola) (p. 43).

Versión de API 2014-10-0697

Page 107: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

2. Ahora que tiene el ARN, puede utilizar la consola de CodeDeploy para implementar la revisión de laaplicación.

Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

3. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).4. Elija HelloWorld_App.5. En la pestaña Deployment groups (Grupos de implementaciones), elija Create deployment group

(Crear grupo de implementaciones).6. En Deployment group name (Nombre de grupo de implementación), escriba HelloWorld_DepGroup.7. En Service Role (Rol de servicio), elija el nombre del rol de servicio.8. En Deployment type (Tipo de implementación), elija In-place (In situ).9. En Environment configuration (Configuración del entorno), seleccione Amazon EC2 instances

(Instancias Amazon EC2).10. En Configuración del agente con AWS Systems Manager, mantenga los valores predeterminados.11. En Key (Clave), introduzca Name.12. En Value (Valor), introduzca CodeDeployDemo.13. En Deployment configuration (Configuración de implementación), elija

CodeDeployDefault.OneAtATime.14. En Load Balancer (Balanceador de carga), anule la selección de Enable load balancing (Habilitar

balanceo de carga).15. Elija Create deployment group.16. Elija Create deployment (Crear implementación).17. En Deployment group (Grupo de implementación), elija HelloWorld_DepGroup.18. En Revision type (Tipo de revisión), elija My application is stored in Amazon S3 (Mi aplicación está

almacenada en Amazon S3) y, a continuación, en Revision location (Ubicación de la revisión), escribala ubicación de la revisión de la aplicación de ejemplo Hello, World! que cargó previamente en AmazonS3. Para obtener la ubicación:

a. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.b. En la lista de buckets, elija codedeploydemobucket (o el nombre del bucket en el que cargó la

revisión de la aplicación).c. En la lista de objetos, elija HelloWorld_App.zip.d. En la pestaña Overview (Información general), elija Copy path (Ruta de copia).e. Vuelva a la consola de CodeDeploy y, en Revision location (Ubicación de la revisión), pegue el

valor del campo Link (Enlace).19. En Revision file type (Tipo de archivo de revisión), elija .zip.20. (Opcional) Escriba un comentario en Deployment description (Descripción de implementación).21. Elija Create deployment (Crear implementación). En la página Deployments se mostrará información

sobre la implementación que acaba de crear.

Monitorización y solución de problemas de la implementaciónUtilice la AWS CLI o la consola para monitorizar y resolver problemas de la implementación.

Temas

Versión de API 2014-10-0698

Page 108: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Implementar la aplicación

• Para monitorizar y solucionar problemas en la implementación (CLI) (p. 99)• Para monitorizar y resolver problemas de la implementación (consola) (p. 99)

Para monitorizar y solucionar problemas en la implementación (CLI)

1. Obtenga el ID de la implementación; para ello, ejecute el comando list-deployments para la aplicaciónHelloWorld_App y el grupo de implementaciones HelloWorld_DepGroup:

aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text

2. Llame al comando get-deployment con el ID de la implementación:

aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text

3. El comando devuelve el estado general de la implementación. Si todo sale bien, el valor esSucceeded.

Si el estado general es Failed, puede ejecutar comandos como list-deployment-instances y get-deployment-instance para solucionar los problemas. Si desea conocer más opciones de solución deproblemas, consulte Análisis de archivos de registro para investigar los errores de implementación eninstancias (p. 465).

Para monitorizar y resolver problemas de la implementación (consola)

En la página Deployments (Implementaciones) de la consola de CodeDeploy puede monitorizar el estadode la implementación en la columna Status (Estado).

Para obtener más información acerca de la implementación, sobre todo si el valor de la columna Statustiene un valor distinto de Succeeded:

1. En la tabla Deployments (Implementaciones), elija el ID de implementación. Cuando se produce unerror en una implementación, aparece un mensaje que describe el motivo del error en la página dedetalles de la implementación.

2. . Aparece más información sobre las instancias de la implementación. Cuando se una implementaciónfalla, es posible que pueda determinar las instancias de Amazon EC2 afectadas y el paso del procesoen el que se ha producido el error.

3. Si desea realizar más resolución de problemas, puede utilizar una técnica como Visualización de losdetalles de la instancia (p. 254). También puede analizar los archivos de log de la implementación enuna instancia Amazon EC2. Para obtener más información, consulte Análisis de archivos de registropara investigar los errores de implementación en instancias (p. 465).

Comprobación de la implementaciónDespués que la implementación se realiza correctamente, verifique que funciona la instalación. Utilice ladirección de DNS público de la instancia Amazon EC2 para ver la página web en un navegador web. (Paraobtener el valor de DNS público, seleccione la instancia Amazon EC2 en la consola de Amazon EC2 y, enla pestaña Description [Descripción], busque el valor de Public DNS [DNS público]).

Por ejemplo, si la dirección DNS pública de la instancia Amazon EC2 esec2-01-234-567-890.compute-1.amazonaws.com, se usará la siguiente dirección URL:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Versión de API 2014-10-0699

Page 109: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Actualizar y volver a implementar la aplicación

Si la operación se realiza correctamente, debería ver una página web Hello, World!.

Paso 5: Actualizar y volver a implementar suaplicación "Hello, World!" SolicitudAhora que ha implementado correctamente la revisión de la aplicación, actualice el código de la páginaweb en el equipo de desarrollo y, a continuación, utilice CodeDeploy para volver a implementar el sitio.Una vez implementada nuevamente la revisión, debe poder ver los cambios en el código en la instanciaAmazon EC2.

Temas• Modificar la página web (p. 100)• Nueva implementación del sitio (p. 100)

Modificar la página web1. Vaya a la subcarpeta c:\temp\HelloWorldApp y use un editor de texto para modificar el archivo

index.html:

cd c:\temp\HelloWorldAppnotepad index.html

2. Revise el contenido del archivo index.html para cambiar el color de fondo y parte del texto de lapágina web y, a continuación, guarde el archivo:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>Hello Again, World!</title> <style> body { color: ✔ffffff; background-color: ✔66cc00; font-family: Arial, sans-serif; font-size:14px; } </style></head><body> <div align="center"><h1>Hello Again, World!</h1></div> <div align="center"><h2>You have successfully deployed a revision of an application using CodeDeploy</h2></div> <div align="center"> <p>What to do next? Take a look through the <a href="https://aws.amazon.com/codedeploy">CodeDeploy Documentation</a>.</p> </div></body></html>

Nueva implementación del sitioAhora que ha modificado el código, utilice Amazon S3 y CodeDeploy para volver a implementar la páginaweb.

Versión de API 2014-10-06100

Page 110: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Actualizar y volver a implementar la aplicación

Agrupe y cargue los cambios en Amazon S3, como se describe en Agrupamiento de los archivos de laaplicación en un único archivo de almacenamiento y envío del archivo de almacenamiento (p. 95).(Cuando siga esas instrucciones, recuerde que no tiene que crear una nueva aplicación). Asigne a lanueva revisión la misma clave que antes (HelloWorld_App.zip). Cárguela en el mismo bucket deAmazon S3 que creó anteriormente (por ejemplo, codedeploydemobucket).

Utilice la AWS CLI o la consola de CodeDeploy para volver a implementar el sitio.

Temas• Para volver implementar el sitio (CLI) (p. 101)• Para volver a implementar el sitio (consola) (p. 101)

Para volver implementar el sitio (CLI)

Ejecute el comando create-deployment para crear una implementación basada en la revisión queha cargado, utilizando también la aplicación HelloWorld_App, la configuración de implementaciónCodeDeployDefault.OneAtATime, el grupo de implementaciones HelloWorld_DepGroup y larevisión de la aplicación HelloWorld_App.zip del bucket codedeploydemobucket:

aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=codedeploydemobucket,bundleType=zip,key=HelloWorld_App.zip

Puede comprobar el estado de la nueva implementación como se describe en Monitorización y solución deproblemas de la implementación (p. 98).

Cuando CodeDeploy haya vuelto a implementar el sitio, visite de nuevo el sitio en el navegador web paraverificar que el color de fondo y el texto de la página web han cambiado. (Puede que tenga que actualizarel navegador). Si el color de fondo y el texto se han modificado, ¡enhorabuena! Ha modificado y ha vuelto aimplementar su sitio.

Para volver a implementar el sitio (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, elija Applications (Aplicaciones).3. En la lista Applications (Aplicaciones), elija HelloWorld_App.4. En la pestaña Deployments (Implementaciones), elija Create deployment (Crear implementación).

a. En la lista Deployment group, elija HelloWorld_DepGroup.b. Introduzca el enlace de Amazon S3 de la revisión en Revision location (Ubicación de la revisión).

Para encontrar el valor del enlace:

i. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 enhttps://console.aws.amazon.com/s3/.

Busque y abra codedeploydemobucket y, a continuación, elija la revisión,HelloWorld_App.zip, en la consola de Amazon S3.

ii. Si el panel Properties (Propiedades) no se muestra en la consola de Amazon S3, elija elbotón Properties (Propiedades).

Versión de API 2014-10-06101

Page 111: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Limpieza

iii. En el panel Properties (Propiedades), copie el valor del campo Link (Enlace).iv. Vuelva a la consola de CodeDeploy y pegue el enlace en Revision location (Ubicación de la

revisión).v.

c. En Revision file type (Tipo de archivo de revisión), si aparece un mensaje en el que se indica queno se ha podido detectar el tipo de archivo, elija .zip.

d. Deje Deployment description (Descripción de implementación) en blanco.e. Expanda Deployment group overrides (Anulaciones del grupo de implementaciones)

en la lista Deployment configuration (Configuración de implementación), elijaCodeDeployDefault.OneAtATime y, a continuación, elija Create deployment (Crearimplementación).

Puede comprobar el estado de la implementación como se describe en Monitorización y soluciónde problemas de la implementación (p. 98).

Cuando CodeDeploy haya vuelto a implementar el sitio, visite de nuevo el sitio en el navegadorweb para verificar que el color de fondo y el texto de la página web han cambiado. (Puedeque tenga que actualizar el navegador). Si el color de fondo y el texto se han modificado,¡enhorabuena! Ha modificado y ha vuelto a implementar su sitio.

Paso 6: Limpiar las aplicaciones de "Hello, World!" ysus recursos relacionadosHa actualizado correctamente el código de "Hello, World!" y ha vuelto a implementar el sitio. Para evitarcargos recurrentes por los recursos que ha creado para completar este tutorial, debe eliminar:

• Todas las pilas de AWS CloudFormation (o terminar todas las instancias Amazon EC2, si las ha creadofuera de AWS CloudFormation).

• Todos los buckets de Amazon S3.• La aplicación HelloWorld_App en CodeDeploy.• La asociación del Administrador de estados de AWS Administrador de sistemas para el agente de

CodeDeploy.

Puede utilizar la AWS CLI, las consolas de AWS CloudFormation, Amazon S3, Amazon EC2 y CodeDeployo las API de AWS para realizar la limpieza.

Temas• Para limpiar los recursos (CLI) (p. 102)• Para limpiar los recursos (consola) (p. 103)• Siguientes pasos (p. 104)

Para limpiar los recursos (CLI)1. Si utilizó la pila de AWS CloudFormation para este tutorial, elimínela realizando una llamada al

comando delete-stack para la pila denominada CodeDeployDemoStack. Esto termina todaslas instancias Amazon EC2 vinculadas y eliminará todos los roles de IAM asociados creadosoriginalmente por la pila.

aws cloudformation delete-stack --stack-name CodeDeployDemoStack

Versión de API 2014-10-06102

Page 112: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Limpieza

2. Para eliminar el bucket de Amazon S3, ejecute el comando rm con el modificador --recursive para elbucket denominado codedeploydemobucket. Así elimina el bucket y todos los objetos que contiene.

aws s3 rm s3://codedeploydemobucket --recursive

3. Para eliminar la aplicación HelloWorld_App desde CodeDeploy, realice una llamada al comandodelete-application. Esto elimina todos los registros de grupo de implementaciones asociados y losregistros de implementación de la aplicación.

aws deploy delete-application --application-name HelloWorld_App

4. Para eliminar la asociación del Administrador de estados de Administrador de sistemas, llame alcomando delete-association.

aws ssm delete-association --assocation-id association-id

Para obtener el valor de id-asociación, llame al comando describe-association.

aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo

5. Si no utilizó la pila de AWS CloudFormation en este tutorial, realice una llamada al comando terminate-instances para terminar las instancias Amazon EC2 que haya creado manualmente. Indique el ID de lainstancia Amazon EC2 que desea terminar.

aws ec2 terminate-instances --instance-ids instanceId

Para limpiar los recursos (consola)Si ha utilizado la plantilla de AWS CloudFormation para este tutorial, elimine la pila de AWSCloudFormation asociada.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

2. En el campo de búsqueda, escriba el nombre de la pila de AWS CloudFormation (por ejemplo,CodeDeployDemoStack).

3. Seleccione la casilla junto al nombre de la pila.4. En el menú Actions (Acciones), elija Delete Stack (Eliminar pila). Esto elimina la pila, terminará todas

las instancias Amazon EC2 asociadas y eliminará todos los roles de IAM asociados.

Para terminar las instancias Amazon EC2 que haya creado fuera de una pila de AWS CloudFormation:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. En el área Instances, elija Instances.3. En el campo de búsqueda, escriba el nombre de la instancia Amazon EC2 que desee eliminar y, a

continuación, pulse Intro.4. Seleccione la instancia de Amazon EC2.5. Elija Actions, seleccione Instance State y elija Terminate. Cuando se le pregunte, elija Yes, Terminate.

Repita estos pasos para todas las instancias Amazon EC2.

Para eliminar el bucket de Amazon S3:

Versión de API 2014-10-06103

Page 113: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de una

aplicación en una instancia on-premises

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

2. En la lista de buckets, busque y seleccione el nombre del bucket de Amazon S3 (por ejemplo,codedeploydemobucket).

3. Para eliminar un bucket, primero debe eliminar su contenido. Seleccione todos los archivos del bucket,como HelloWorld_App.zip. En el menú Actions, elija Delete. Cuando se le pida confirmar laeliminación, elija OK.

4. Una vez vacío, puede eliminar el bucket. En la lista de buckets, elija la línea del bucket (pero no sunombre). Elija Delete bucket y cuando se le pida que confirme, seleccione OK.

Para eliminar la aplicación HelloWorld_App de CodeDeploy:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. Elija HelloWorld_App.4. Seleccione Delete application (Eliminar aplicación).5. Cuando se le pregunte, escriba Delete y, a continuación, elija Delete (Eliminar).

Para eliminar la asociación del Administrador de estados de Administrador de sistemas:

1. Abra la consola de AWS Administrador de sistemas en https://console.aws.amazon.com/systems-manager.

2. En el panel de navegación, elija Administrador de estados.3. Elija la asociación que ha creado y, después, elija Eliminar.

Siguientes pasosSi ha llegado hasta aquí, eso significa que ha realizado correctamente una implementación conCodeDeploy. ¡Enhorabuena!

Tutorial: Implementación de una aplicación en unainstancia on-premises con CodeDeploy (WindowsServer Ubuntu Server o Red Hat Enterprise Linux)

Este tutorial le proporcionará experiencia con CodeDeploy guiándole por la implementación de una revisiónde una aplicación de ejemplo en una única instancia on-premises, es decir, en un dispositivo físico que noes una instancia Amazon EC2, con Windows Server, Ubuntu Server o Red Hat Enterprise Linux (RHEL).Para obtener más información sobre las instancias on-premises y cómo funcionan con CodeDeploy,consulte Trabajar con instancias on-premise (p. 226).

¿No es lo que busca?

Versión de API 2014-10-06104

Page 114: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos

• Para practicar la implementación en una instancia Amazon EC2 con Amazon Linux o RHEL, consulteTutorial: Implementación de WordPress en una instancia Amazon EC2 (Amazon Linux o Red HatEnterprise Linux y Linux, macOS, or Unix) (p. 69).

• Para practicar la implementación en una instancia Amazon EC2 con Windows Server, consulteTutorial: Implementación de una aplicación "Hello, World!" Aplicación con CodeDeploy (WindowsServer) (p. 88).

Temas• Requisitos previos (p. 105)• Paso 1: Configurar la instancia on-premises (p. 105)• Paso 2: Crear una revisión de aplicación de ejemplo (p. 105)• Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3 (p. 109)• Paso 4: Implementar la revisión de la aplicación (p. 109)• Paso 5: Comprobar la implementación (p. 109)• Paso 6: Limpiar los recursos (p. 110)

Requisitos previosAntes de empezar a este tutorial, debe completar los requisitos previos indicados en Introducción aCodeDeploy (p. 37), que incluyen la configuración del usuario de IAM, la instalación o actualización de laAWS CLI y la creación de un rol de servicio. No es necesario crear un perfil de instancia de IAM como sedescribe en los requisitos previos. Las instancias on-premises no utilizan perfiles de instancia de IAM.

El dispositivo físico que configurará como instancia on-premises debe emplear uno de los sistemasoperativos indicados en Sistemas operativos admitidos por el agente de CodeDeploy (p. 176).

Paso 1: Configurar la instancia on-premisesAntes de implementar en la instancia on-premises, debe configurarla. Siga las instrucciones de Trabajarcon instancias on-premise (p. 226) y, a continuación, vuelva a esta página.

Instalación del agente de CodeDeployDespués de configurar la instancia local, siga los pasos para las instancias en las instalaciones enInstalación del agente de CodeDeploy y vuelva a esta página.

Paso 2: Crear una revisión de aplicación de ejemploEn este paso, creará una revisión de aplicación de ejemplo para implementarla en la instancia en lasinstalaciones.

Dado que es difícil conocer el software y las características que ya están instalados (o que las políticasde su organización permiten instalar) en la instancia on-premises, la revisión de la aplicación de ejemploque incluimos aquí usa simplemente scripts por lotes (en Windows Server) o scripts de shell (en UbuntuServer y RHEL) para escribir archivos de texto en una ubicación de la instancia on-premises. Se escribeun archivo en cada uno de los eventos del ciclo de vida de la implementación de CodeDeploy, comoInstall, AfterInstall, ApplicationStart y ValidateService. Durante el evento BeforeInstall del ciclo de vida de laimplementación se ejecutará un script para eliminar los archivos antiguos escritos en las implementacionesanteriores de este ejemplo y crear una ubicación en la instancia on-premises en la que escribir los archivosnuevos.

Versión de API 2014-10-06105

Page 115: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Crear una revisión de aplicación de ejemplo

Note

La implementación de la revisión de aplicación de ejemplo puede fallar si se da cualquiera de lassiguientes circunstancias:

• La cuenta de usuario que inicia el agente de CodeDeploy en la instancia on-premises no tienepermiso para ejecutar scripts.

• La cuenta de usuario no tiene permiso para crear o eliminar carpetas en las ubicacionesindicadas en los scripts.

• La cuenta de usuario no tiene permiso para crear archivos de texto en las ubicaciones indicadasen los scripts.

Note

Si ha configurado una instancia de Windows Server y desea implementar otro ejemplo, puede quele convenga usar el indicado en el Paso 2: Configurar el contenido de origen para implementarloen la instancia Amazon EC2 de Windows Server (p. 91) del tutorial Tutorial: Implementación deuna aplicación "Hello, World!" Aplicación con CodeDeploy (Windows Server) (p. 88).Si ha configurado una instancia de RHEL y desea implementar otro ejemplo, puede que leconvenga usar el indicado en el Paso 2: Configurar el contenido de origen para implementarloen la instancia Amazon EC2 de Amazon Linux o Red Hat Enterprise Linux (p. 72) del tutorialTutorial: Implementación de WordPress en una instancia Amazon EC2 (Amazon Linux o Red HatEnterprise Linux y Linux, macOS, or Unix) (p. 69).En la actualidad, no hay ningún ejemplo alternativo para Ubuntu Server.

1. En el equipo de desarrollo, cree un subdirectorio (subcarpeta) con el nombre CodeDeployDemo-OnPrem para almacenar los archivos de la revisión de aplicación de ejemplo y, a continuación, sitúeseen esa subcarpeta. En este ejemplo, supondremos que va a utilizar la carpeta c:\temp como lacarpeta raíz para Windows Server o la carpeta /tmp como la carpeta raíz para Ubuntu Server y RHEL.Si utiliza una carpeta diferente, asegúrese de indicarla en lugar de la anterior en todo el tutorial:

Para Windows:

mkdir c:\temp\CodeDeployDemo-OnPremcd c:\temp\CodeDeployDemo-OnPrem

En Linux, macOS, or Unix:

mkdir /tmp/CodeDeployDemo-OnPremcd /tmp/CodeDeployDemo-OnPrem

2. En la raíz de la subcarpeta CodeDeployDemo-OnPrem, utilice en editor de texto para crear dosarchivos con los nombres appspec.yml e install.txt:

appspec.yml para Windows Server:

version: 0.0os: windowsfiles: - source: .\install.txt destination: c:\temp\CodeDeployExamplehooks: BeforeInstall: - location: .\scripts\before-install.bat timeout: 900 AfterInstall: - location: .\scripts\after-install.bat timeout: 900

Versión de API 2014-10-06106

Page 116: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Crear una revisión de aplicación de ejemplo

ApplicationStart: - location: .\scripts\application-start.bat timeout: 900 ValidateService: - location: .\scripts\validate-service.bat timeout: 900

appspec.yml para Ubuntu Server y RHEL:

version: 0.0os: linuxfiles: - source: ./install.txt destination: /tmp/CodeDeployExamplehooks: BeforeInstall: - location: ./scripts/before-install.sh timeout: 900 AfterInstall: - location: ./scripts/after-install.sh timeout: 900 ApplicationStart: - location: ./scripts/application-start.sh timeout: 900 ValidateService: - location: ./scripts/validate-service.sh timeout: 900

Para obtener más información acerca de los archivos de AppSpec, consulte Adición de un archivo deespecificación de aplicación a una revisión para CodeDeploy (p. 305) y Referencia de AppSpec Filede CodeDeploy (p. 402).

install.txt:

The Install deployment lifecycle event successfully completed.

3. En la raíz de la subcarpeta CodeDeployDemo-OnPrem, cree una subcarpeta scripts y sitúese enella:

Para Windows:

mkdir c:\temp\CodeDeployDemo-OnPrem\scriptscd c:\temp\CodeDeployDemo-OnPrem\scripts

En Linux, macOS, or Unix:

mkdir -p /tmp/CodeDeployDemo-OnPrem/scriptscd /tmp/CodeDeployDemo-OnPrem/scripts

4. En la raíz de la subcarpeta scripts, utilice un editor de texto para crear cuatro archivos con losnombres before-install.bat, after-install.bat, application-start.bat y validate-service.bat para Windows Server o before-install.sh, after-install.sh, application-start.sh y validate-service.sh para Ubuntu Server y RHEL:

En Windows Server:

before-install.bat:

set FOLDER=%HOMEDRIVE%\temp\CodeDeployExampleVersión de API 2014-10-06107

Page 117: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Crear una revisión de aplicación de ejemplo

if exist %FOLDER% ( rd /s /q "%FOLDER%")

mkdir %FOLDER%

after-install.bat:

cd %HOMEDRIVE%\temp\CodeDeployExample

echo The AfterInstall deployment lifecycle event successfully completed. > after-install.txt

application-start.bat:

cd %HOMEDRIVE%\temp\CodeDeployExample

echo The ApplicationStart deployment lifecycle event successfully completed. > application-start.txt

validate-service.bat:

cd %HOMEDRIVE%\temp\CodeDeployExample

echo The ValidateService deployment lifecycle event successfully completed. > validate-service.txt

Para Ubuntu Server y RHEL:

before-install.sh:

✔!/bin/bashexport FOLDER=/tmp/CodeDeployExample

if [ -d $FOLDER ]then rm -rf $FOLDERfi

mkdir -p $FOLDER

after-install.sh:

✔!/bin/bashcd /tmp/CodeDeployExample

echo "The AfterInstall deployment lifecycle event successfully completed." > after-install.txt

application-start.sh:

✔!/bin/bashcd /tmp/CodeDeployExample

echo "The ApplicationStart deployment lifecycle event successfully completed." > application-start.txt

Versión de API 2014-10-06108

Page 118: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Empaquetar y cargar la

revisión de la aplicación en Amazon S3

validate-service.sh:

✔!/bin/bashcd /tmp/CodeDeployExample

echo "The ValidateService deployment lifecycle event successfully completed." > validate-service.txt

unset FOLDER

5. Solo para Ubuntu Server y RHEL, asegúrese de que los cuatro scripts de shell tengan permisos deejecución:

chmod +x ./scripts/*

Paso 3: Empaquetar y cargar la revisión de laaplicación en Amazon S3Para poder implementar la revisión de la aplicación, antes tiene que agrupar sus archivos y cargarel paquete en un bucket de Amazon S3. Siga las instrucciones en Creación de una aplicación conCodeDeploy (p. 270) y Envío de una revisión para CodeDeploy a Amazon S3 (solo implementacionesde EC2/On-Premises) (p. 313). (Aunque puede dar cualquier nombre a la aplicación y al grupo deimplementaciones, le recomendamos especificar CodeDeploy-OnPrem-App como nombre para laaplicación y CodeDeploy-OnPrem-DG como nombre del grupo de implementaciones). Una vez que hayacompletado las instrucciones, vuelve a esta página.

Note

Como alternativa, puede cargar el paquete de archivos en un repositorio de GitHub eimplementarlo desde allí. Para obtener más información, consulte Integración de CodeDeploy conGitHub (p. 64).

Paso 4: Implementar la revisión de la aplicaciónUna vez cargada la revisión de la aplicación en un bucket de Amazon S3, intente implementarla en lainstancia on-premises. Siga las instrucciones de Crear una implementación con CodeDeploy (p. 321) y, acontinuación, vuelva a esta página.

Paso 5: Comprobar la implementaciónPara comprobar si la implementación se ha realizado correctamente, siga las instrucciones deVisualización de los detalles de las implementaciones de CodeDeploy (p. 337) y, a continuación, vuelvaa esta página.

Si la implementación se ha realizado correctamente, verá cuatro archivos de texto en la carpeta c:\temp\CodeDeployExample (para Windows Server) o /tmp/CodeDeployExample (para Ubuntu Server yRHEL).

Si la implementación ha fallado, siga los pasos de resolución de problemas de Visualización de losdetalles de la instancia (p. 254) y Solución de problemas de instancias (p. 464). Haga las correccionesnecesarias, vuelva a empaquetar y cargar la revisión de la aplicación e intente implementarla de nuevo.

Versión de API 2014-10-06109

Page 119: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Limpiar los recursos

Paso 6: Limpiar los recursosPara evitar cargos recurrentes por los recursos que ha creado para este tutorial, elimine el bucket deAmazon S3 si no va a utilizarlo. También puede limpiar los recursos asociados, como los registros de laaplicación y del grupo de implementaciones en CodeDeploy y la instancia on-premises.

Puede utilizar la AWS CLI o una combinación de las consolas de CodeDeploy y Amazon S3 y la AWS CLIpara limpiar los recursos.

Limpieza de los recursos (CLI)Para eliminar el bucket de Amazon S3

• Ejecute el comando rm con el modificador --recursive para el bucket (por ejemplo,codedeploydemobucket). El bucket y todos los objetos que contiene se eliminarán.

aws s3 rm s3://your-bucket-name --recursive

Para eliminar los registros de la aplicación y el grupo de implementaciones en CodeDeploy

• Ejecute el comando delete-application para la aplicación (por ejemplo, CodeDeploy-OnPrem-App).Los registros de la implementación y del grupo de implementaciones se eliminarán.

aws deploy delete-application --application-name your-application-name

Para anular el registro de la instancia on-premises y eliminar el usuario de IAM

• Ejecute el comando deregister para la instancia on-premises y la región:

aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region

Note

Si no desea eliminar el usuario de IAM asociado a esta instancia on-premises, especifique laopción --no-delete-iam-user.

Para desinstalar el agente de CodeDeploy y eliminar el archivo de configuración de la instanciaon-premises

• Desde la instancia on-premises, ejecute el comando uninstall:

aws deploy uninstall

Ha completado todos los pasos para limpiar los recursos utilizados en este tutorial.

Limpieza de los recursos (consola)Para eliminar el bucket de Amazon S3

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

Versión de API 2014-10-06110

Page 120: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación en un

grupo de Amazon EC2 Auto Scaling

2. Elija el icono junto al bucket que desea eliminar (por ejemplo, codedeploydemobucket), pero noelija el bucket en sí.

3. Seleccione Actions y, luego, Delete.4. Cuando se le pida confirmación de que desea eliminar el bucket, elija OK.

Para eliminar los registros de la aplicación y el grupo de implementaciones en CodeDeploy

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, elija Applications (Aplicaciones).3. Elija el nombre de la aplicación que desea eliminar (por ejemplo, CodeDeploy-OnPrem-App) y, a

continuación, elija Delete application (Eliminar aplicación).4. Cuando se le solicite, introduzca el nombre de la aplicación para confirmar que desea eliminarla y

seleccione Delete (Eliminar).

No es posible utilizar la consola de AWS CodeDeploy para anular el registro de la instancia local ni paradesinstalar el agente de CodeDeploy. Siga las instrucciones en Para anular el registro de la instancia on-premises y eliminar el usuario de IAM (p. 110).

Tutorial: Uso de CodeDeploy para laimplementación de una aplicación en un grupo deAmazon EC2 Auto Scaling

En este tutorial, utilizará CodeDeploy para implementar una revisión de una aplicación en un grupode Amazon EC2 Auto Scaling. Amazon EC2 Auto Scaling lanza instancias Amazon EC2 utilizandocondiciones predefinidas y, a continuación, termina esas instancias cuando ya no son necesarias.Amazon EC2 Auto Scaling puede ayudar a escalarCodeDeploy al asegurarse de que siempre tiene elnúmero correcto de instancias Amazon EC2 disponibles para manejar la carga de las implementaciones.Para obtener información sobre la integración de Amazon EC2 Auto Scaling con CodeDeploy, consulteIntegración de CodeDeploy con Amazon EC2 Auto Scaling (p. 54).

Temas• Requisitos previos (p. 112)• Paso 1: Crear y configurar el grupo de Amazon EC2 Auto Scaling (p. 112)• Paso 2: Implementar la aplicación en el grupo Amazon EC2 Auto Scaling (p. 116)• Paso 3: Comprobar los resultados (p. 122)• Paso 4: Aumentar el número de instancias Amazon EC2 en el grupo de Amazon EC2 Auto

Scaling (p. 123)• Paso 5: Comprobar los resultados de nuevo (p. 124)• Paso 6: Eliminación (p. 126)

Versión de API 2014-10-06111

Page 121: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos

Requisitos previosPara seguir en este tutorial:

• Complete todos los pasos de Introducción a CodeDeploy (p. 37), incluida la configuración de la AWS CLIy la creación de un perfil de instancia de IAM (CodeDeployDemo-EC2-Instance-Profile) y un rolde servicio (CodeDeployDemo). Un rol de servicio es un tipo especial de rol de IAM que da a un serviciopermiso para actuar en nombre de un usuario.

• Si crea un grupo de Auto Scaling con una plantilla de inicio, debe añadir los siguientes permisos:• ec2:RunInstances

• ec2:CreateTags

• iam:PassRole

Para obtener más información, consulte Paso 3: Crear un rol de servicio (p. 39) y Creación de unaplantilla de lanzamiento para un grupo de Auto Scaling.

• Cree y utilice una revisión que sea compatible con una instancia de Ubuntu Server y CodeDeploy. Parasu revisión, puede realizar una de las siguientes acciones:• Cree y utilice la revisión de ejemplo en Paso 2: Crear una revisión de aplicación de ejemplo (p. 105)

en el tutorial Tutorial: Implementación de una aplicación en una instancia on-premises conCodeDeploy (Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104).

• Para crear su propia revisión, consulte Gestión de revisiones de aplicaciones enCodeDeploy (p. 304).

Paso 1: Crear y configurar el grupo de Amazon EC2Auto ScalingEn este paso, creará un grupo de Amazon EC2 Auto Scaling que contiene una única instancia AmazonEC2 de Windows Server, RHEL o Amazon Linux. En un paso posterior, indicará a Amazon EC2 AutoScaling que añada otra instancia Amazon EC2, y CodeDeploy implementará la revisión en ella.

Temas• Para crear y configurar el grupo de Amazon EC2 Auto Scaling (CLI) (p. 112)• Para crear y configurar el grupo de Amazon EC2 Auto Scaling (consola) (p. 114)

Para crear y configurar el grupo de Amazon EC2 Auto Scaling(CLI)1. Ejecute el comando create-launch-configuration para crear una configuración de lanzamiento de

Amazon EC2 Auto Scaling.

Antes de invocar este comando, necesitará el ID de una AMI adecuada para este tutorial,representado por el marcador de posición image-id. También necesitará el nombre de un par declaves de instancia Amazon EC2 para permitir el acceso a la instancia Amazon EC2, representado porel marcador de posición key-name.

Para obtener el ID de una AMI adecuada para este tutorial:

a. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.b. En el panel de navegación, en Instances, elija Instances y seleccione Launch Instance.c. En la pestaña Quick Start (Inicio rápido) de la página Choose an Amazon Machine Image (Elija

una imagen de máquina de Amazon), tome nota del ID de la AMI junto a Amazon Linux AMI (AMI

Versión de API 2014-10-06112

Page 122: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Crear y configurar el grupo

de Amazon EC2 Auto Scaling

de Amazon Linux), Red Hat Enterprise Linux 7.1, Ubuntu Server 14.04 LTS o Microsoft WindowsServer 2012 R2.

Note

Si dispone de una versión personalizada de una AMI que sea compatible conCodeDeploy, elíjala aquí en lugar de buscarla en la pestaña Quick Start (Inicio rápido).Para obtener información sobre el uso de una AMI personalizada con CodeDeploy yAmazon EC2 Auto Scaling, consulte Uso de una AMI personalizada con CodeDeploy yAmazon EC2 Auto Scaling (p. 57).

Como par de claves de la instancia Amazon EC2, indique el nombre del par de claves de su instanciaAmazon EC2.

Ejecute el comando create-launch-configuration.

En los equipos locales con Linux, macOS, or Unix:

aws autoscaling create-launch-configuration \ --launch-configuration-name CodeDeployDemo-AS-Configuration \ --image-id image-id \ --key-name key-name \ --iam-instance-profile CodeDeployDemo-EC2-Instance-Profile \ --instance-type t1.micro

En los equipos locales con Windows:

aws autoscaling create-launch-configuration --launch-configuration-name CodeDeployDemo-AS-Configuration --image-id image-id --key-name key-name --iam-instance-profile CodeDeployDemo-EC2-Instance-Profile --instance-type t1.micro

Estos comandos crean una configuración de lanzamiento de Amazon EC2 Auto Scaling denominadaCodeDeployDemo-AS-Configuration a partir del ID de imagen indicado, aplicando el perfil deinstancia de IAM y el par de claves de instancia Amazon EC2 especificados. Esta configuración delanzamiento se basa en el tipo de instancia Amazon EC2 t1.micro.

2. Llame al comando create-auto-scaling-group para crear un grupo de Amazon EC2 Auto Scaling.Necesitará el nombre de una de las zonas de disponibilidad de una de las regiones enumeradasen Regiones y puntos de enlace en la AWS General Reference, representada por el marcador deposición availability-zone.

Note

Para ver una lista de las zonas de disponibilidad de una región, ejecute este comando:

aws ec2 describe-availability-zones --region region-name

Por ejemplo, para ver una lista con las zonas de disponibilidad de la región EE.UU. Oeste(Oregón), ejecute el comando siguiente:

aws ec2 describe-availability-zones --region us-west-2

Para obtener una lista de los identificadores de nombres de región, consulte Nombres debucket del kit de recursos por región (p. 441).

En los equipos locales con Linux, macOS, or Unix:Versión de API 2014-10-06

113

Page 123: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Crear y configurar el grupo

de Amazon EC2 Auto Scaling

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name CodeDeployDemo-AS-Group \ --launch-configuration-name CodeDeployDemo-AS-Configuration \ --min-size 1 \ --max-size 1 \ --desired-capacity 1 \ --availability-zones availability-zone \ --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true

En los equipos locales con Windows:

aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-configuration-name CodeDeployDemo-AS-Configuration --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone --tags Key=Name,Value=CodeDeployDemo,PropagateAtLaunch=true

Estos comandos crean un grupo de Amazon EC2 Auto Scaling con el nombre CodeDeployDemo-AS-Group a partir de la configuración de lanzamiento de Amazon EC2 Auto Scaling denominadaCodeDeployDemo-AS-Configuration. Este grupo de Amazon EC2 Auto Scaling tiene una únicainstancia Amazon EC2 y se crea en la zona de disponibilidad especificada. Cada instancia de estegrupo de Amazon EC2 Auto Scaling tendrá la etiqueta Name=CodeDeployDemo. La etiqueta se usaráal instalar el agente de CodeDeploy más adelante.

3. Ejecute el comando describe-auto-scaling-groups con CodeDeployDemo-AS-Group:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text

No continúe hasta que los valores devueltos indiquen Healthy y InService.4. Las instancias del grupo de Auto Scaling deben tener instalado el agente de CodeDeploy para su

uso en las implementaciones de CodeDeploy. Instale el agente de CodeDeploy mediante la llamadaal comando create-association desde AWS Administrador de sistemas con las etiquetas que seagregaron al crear el grupo de Amazon EC2 Auto Scaling.

aws ssm create-association \ --name AWS-ConfigureAWSPackage \ --targets Key=tag:Name,Values=CodeDeployDemo \ --parameters action=Install, name=AWSCodeDeployAgent \ --schedule-expression "cron(0 2 ? * SUN *)"

Este comando crea una asociación en el Administrador de estados de Administrador de sistemas queinstalará el agente de CodeDeploy en todas las instancias del grupo de Amazon EC2 Auto Scaling y,a continuación, intentará actualizarla a las 2:00 todos los domingos por la mañana. Para obtener másinformación sobre el agente de CodeDeploy, consulte Trabajar con el agente de CodeDeploy. Paraobtener más información sobre Administrador de sistemas, consulte ¿Qué es AWS Administrador desistemas?.

Para crear y configurar el grupo de Amazon EC2 Auto Scaling(consola)1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

Versión de API 2014-10-06114

Page 124: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Crear y configurar el grupo

de Amazon EC2 Auto Scaling

2. En la barra de navegación global, asegúrese de que esté seleccionada una de las regionesenumeradas en Regiones y puntos de enlace en la AWS General Reference. Los recursos deAmazon EC2 Auto Scaling están asociados a la región especificada y CodeDeploy solo se admite endeterminadas regiones.

3. En la barra de navegación, en Auto Scaling, elija Launch Configurations (Configuraciones delanzamiento).

4. Elija Create launch configuration.5. En la pestaña Quick Start (Inicio rápido) de la página Choose AMI (Elegir AMI), junto a Amazon Linux

AMI (AMI de Amazon Linux), Red Hat Enterprise Linux 7.2, Ubuntu Server 14.04 LTS o MicrosoftWindows Server 2012 R2 Base, elija Select (Seleccionar).

Note

Si dispone de una versión personalizada de una AMI que ya tenga el agente CodeDeployinstalado, elíjala aquí. Para obtener información sobre el uso de una AMI personalizadacon CodeDeploy y Amazon EC2 Auto Scaling, consulte Uso de una AMI personalizada conCodeDeploy y Amazon EC2 Auto Scaling (p. 57).

6. En la página Choose Instance Type, deje los valores predeterminados y seleccione Next: Configuredetails.

7. En la página Configure details (Configurar detalles), en Name (Nombre), escriba CodeDeployDemo-AS-Configuration. En IAM role (Rol de IAM), elija el perfil de instancia de IAM que ha creadoanteriormente (CodeDeployDemo-EC2-Instance-Profile).

Deje el resto de las opciones predeterminadas y elija Skip to review.8. En la página Review, elija Create launch configuration.

Note

En un entorno de producción, recomendamos restringir el acceso a las instancias AmazonEC2. Para obtener más información, consulte Sugerencias para proteger la instancia EC2.

9. En el cuadro de diálogo Select an existing key pair or create a new key pair, seleccione Choosean existing key pair. En la lista desplegable Select a key pair (Seleccionar un par de claves), elijael par de claves de la instancia Amazon EC2 que ha creado o utilizado en los pasos anteriores.Seleccione I acknowledge that I have access to the selected private key file (nombre de archivode clave.pem), and that without this file, I won't be able to log into my instance y luego elija Createlaunch configuration.

10. Elija Create an Auto Scaling group using this launch configuration (Crear un grupo de Auto Scaling conesta configuración de lanzamiento).

11. En la página Configure Auto Scaling group details (Configurar detalles del grupo de Auto Scaling),haga lo siguiente:

a. En Group Name (Nombre de grupo), escriba CodeDeployDemo-AS-Group.b. En este tutorial, mantenga Group size (Tamaño del grupo) en el valor predeterminado de 1.c. En Network (Red), elija Launch into EC2-Classic (Lanzar en EC2-Classic). Si no aparece y no

puede seleccionar una nube virtual privada (VPC) predeterminada, elija o cree una VPC y unasubred. Para obtener más información, consulte VPC y subredes.

d. En Subnet (Subred), elija una subred para la VPC.

Note

Puede elegir la zona de disponibilidad de la instancia eligiendo su subredpredeterminada correspondiente.

e. Elija Next: Configure scaling policies (Siguiente: Configurar políticas de escalado).Versión de API 2014-10-06

115

Page 125: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Implementar la aplicación enel grupo Amazon EC2 Auto Scaling

12. En la página Configure scaling policies (Configurar políticas de escalado), deje seleccionada laopción Keep this group at its initial size (Mantener este grupo en su tamaño inicial) y seleccione Next:Configure Notifications (Siguiente: Configurar notificaciones).

13. Omita el paso para configurar las notificaciones y elija Siguiente: Configurar etiquetas.14. En Key (Clave), introduzca Name. En Valor, escriba CodeDeployDemo. La etiqueta se usará al instalar

el agente de CodeDeploy más adelante.15. Elija Create Auto Scaling group (Crear grupo de Auto Scaling) y, a continuación, elija Close (Cerrar).16. En la barra de navegación, con Auto Scaling Groups (Grupos de Auto Scaling) seleccionado, elija

CodeDeployDemo-AS-Group y, a continuación, elija la pestaña Instances (Instancias). No continúehasta que aparezca el valor InService en la columna Lifecycle y el valor Healthy en la columna HealthStatus.

17. Instale el agente de CodeDeploy mediante los pasos descritos en Instalación del agente deCodeDeploy y utilizando las etiquetas de instancia de Name=CodeDeployDemo.

Paso 2: Implementar la aplicación en el grupo AmazonEC2 Auto ScalingEn este paso, implementará la revisión en la única instancia Amazon EC2 del grupo de Amazon EC2 AutoScaling.

Temas• Para crear la implementación (CLI) (p. 116)• Para crear la implementación (consola) (p. 118)

Para crear la implementación (CLI)1. Ejecute el comando create-application para crear una aplicación denominada SimpleDemoApp:

aws deploy create-application --application-name SimpleDemoApp

2. Ya debe haber creado un rol de servicio siguiendo las instrucciones del Paso 3: Crear un rol deservicio para CodeDeploy (p. 39). El rol de servicio dará a CodeDeploy permiso para obtener accesoa las instancias Amazon EC2 y expandir (leer) las etiquetas. Necesitará el rol de servicio ARN. Paraobtener el rol de servicio ARN, siga las instrucciones de Obtención del ARN del rol de servicio (CLI) (p. 44).

3. Ahora que tiene un ARN de rol de servicio, ejecute el comando create-deployment-group para crear ungrupo de implementaciones denominado SimpleDemoDG asociado a la aplicación SimpleDemoApp,utilizando el grupo de Amazon EC2 Auto Scaling CodeDeployDemo-AS-Group y la configuración deimplementación CodeDeployDefault.OneAtATime con el ARN del rol de servicio especificado.

Note

El comando create-deployment-group permite la creación de desencadenadores que dancomo resultado el envío de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especificados en las implementaciones e instancias. El comando también admiteopciones para la restauración automática de implementaciones y la configuración de alarmaspara detener las implementaciones cuando se alcanzan los umbrales de monitorización delas alarmas de Amazon CloudWatch. Los comandos de estas acciones no se incluyen eneste tutorial.

En los equipos locales con Linux, macOS, or Unix:Versión de API 2014-10-06

116

Page 126: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Implementar la aplicación enel grupo Amazon EC2 Auto Scaling

aws deploy create-deployment-group \ --application-name SimpleDemoApp \ --auto-scaling-groups CodeDeployDemo-AS-Group \ --deployment-group-name SimpleDemoDG \ --deployment-config-name CodeDeployDefault.OneAtATime \ --service-role-arn service-role-arn

En los equipos locales con Windows:

aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn

4. Ejecute el comando create-deployment para crear una implementación asociada a la aplicaciónSimpleDemoApp, la configuración de implementación CodeDeployDefault.OneAtATime y elgrupo de implementaciones SimpleDemoDG, utilizando la revisión que se encuentra en el lugarespecificado.

Para las instancias Amazon EC2 con Amazon Linux y RHEL que se ejecutan desde equipos Linux,macOS, or Unix locales

aws deploy create-deployment \ --application-name SimpleDemoApp \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name SimpleDemoDG \ --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. Por ejemplo, para Región EE.UU Este (Ohio), reemplace bucket-namepor aws-codedeploy-us-east-2. Para obtener una lista de nombres de bucket, consulte Nombresde bucket del kit de recursos por región (p. 441).

Para las instancias Amazon EC2 con Amazon Linux y RHEL que se ejecutan desde equipos Windowslocales

aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. Por ejemplo, para Región EE.UU Este (Ohio), reemplace bucket-namepor aws-codedeploy-us-east-2. Para obtener una lista de nombres de bucket, consulte Nombresde bucket del kit de recursos por región (p. 441).

Para las instancias Amazon EC2 con Windows Server que se ejecutan desde equipos Linux, macOS,or Unix locales

aws deploy create-deployment \ --application-name SimpleDemoApp \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name SimpleDemoDG \ --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip

Versión de API 2014-10-06117

Page 127: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Implementar la aplicación enel grupo Amazon EC2 Auto Scaling

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. Por ejemplo, para Región EE.UU Este (Ohio), reemplace bucket-namepor aws-codedeploy-us-east-2. Para obtener una lista de nombres de bucket, consulte Nombresde bucket del kit de recursos por región (p. 441).

Para las instancias Amazon EC2 con Windows Server que se ejecutan desde equipos Windowslocales

aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. Por ejemplo, para Región EE.UU Este (Ohio), reemplace bucket-namepor aws-codedeploy-us-east-2. Para obtener una lista de nombres de bucket, consulte Nombresde bucket del kit de recursos por región (p. 441).

Note

Actualmente, CodeDeploy no ofrece una revisión de ejemplo para implementarla eninstancias Amazon EC2 con Ubuntu Server. Para crear su propia revisión, consulte Gestiónde revisiones de aplicaciones en CodeDeploy (p. 304).

5. Ejecute el comando get-deployment para asegurarse de que la implementación se ha realizadocorrectamente.

Antes de ejecutar este comando, necesitará el ID de la implementación, que debe haberobtenido tras ejecutar el comando create-deployment. Si necesita obtener de nuevo el ID de laimplementación, ejecute el comando list-deployments para la aplicación SimpleDemoApp y el grupode implementaciones SimpleDemoDG:

aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text

Llame ahora al comando get-deployment utilizando el ID de la implementación:

aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.status" --output text

No continúe hasta que el valor devuelto sea Succeeded.

Para crear la implementación (consola)1. Ya debe haber creado un rol de servicio siguiendo las instrucciones del Paso 3: Crear un rol de

servicio para CodeDeploy (p. 39). El rol de servicio dará a CodeDeploy permiso para acceder asus instancias y expandir (leer) sus etiquetas. Antes de utilizar la consola de CodeDeploy paraimplementar la revisión de la aplicación, necesitará el rol de servicio ARN. Para obtener el rol deservicio ARN, siga las instrucciones de Obtención del ARN del rol de servicio (consola) (p. 43).

2. Ahora que tiene el rol de servicio ARN, puede utilizar la consola de CodeDeploy para implementar larevisión de la aplicación.

Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Versión de API 2014-10-06118

Page 128: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Implementar la aplicación enel grupo Amazon EC2 Auto Scaling

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

3. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).4. Elija Create application.5. Elija Custom application (Aplicación personalizada).6. En Application name (Nombre de aplicación), escriba SimpleDemoApp.7. En Compute platform (Plataforma de computación), elija EC2/On-Premises.8. Elija Create application.9. En la pestaña Deployment groups (Grupos de implementaciones), elija Create deployment group

(Crear grupo de implementaciones).10. En Deployment group name (Nombre de grupo de implementación), escriba SimpleDemoDG.11. En Service Role (Rol de servicio), elija el nombre del rol de servicio.12. En Deployment type (Tipo de implementación), elija In-place (In situ).13. En Environment configuration (Configuración del entorno) seleccione Amazon EC2 Auto Scaling

groups (Grupos de Amazon EC2 Auto Scaling) y, a continuación, elija CodeDeployDemo-AS-Group.14. En Deployment configuration (Configuración de implementación), elija

CodeDeployDefault.OneAtATime.15. Desactive Enable load balancing (Habilitar balanceo de carga).16. Elija Create deployment group.17. En la página del grupo de implementaciones, elija Create deployment (Crear implementación).18. En Revision type (Tipo de revisión), elija My application is stored in Amazon S3 (Mi aplicación está

almacenada en Amazon S3).19. En Revision location (Ubicación de la revisión), introduzca la ubicación de la aplicación de ejemplo

para el sistema operativo y la región.

Para las instancias Amazon EC2 con Amazon Linux y RHEL

Región Ubicación de aplicación de ejemplo

Región EE.UU Este (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip

Región EE.UU. Este (Norte de Virginia) http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip

EE.UU. Oeste (Norte de California) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip

Región EE.UU. Oeste (Oregón) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip

Región Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip

Versión de API 2014-10-06119

Page 129: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Implementar la aplicación enel grupo Amazon EC2 Auto Scaling

Región Ubicación de aplicación de ejemplo

Región de Europa (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip

Región de Europa (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip

Región de Europa (Fráncfort) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip

Región Asia Pacífico (Hong Kong) http://s3-ap-east-1.amazonaws.com/aws-codedeploy-ap-east-1/samples/latest/SampleApp_Linux.zip

Región Asia Pacífico (Tokio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip

Región Asia Pacífico (Seúl) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip

Región Asia Pacífico (Singapur) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip

Región Asia Pacífico (Sídney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip

Región Asia Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip

Región América del Sur (São Paulo) http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip

Para las instancias Amazon EC2 con Windows Server

Versión de API 2014-10-06120

Page 130: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Implementar la aplicación enel grupo Amazon EC2 Auto Scaling

Región Ubicación de aplicación de ejemplo

Región EE.UU Este (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip

Región EE.UU. Este (Norte de Virginia) http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip

EE.UU. Oeste (Norte de California) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip

Región EE.UU. Oeste (Oregón) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip

Región Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip

Región de Europa (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip

Región de Europa (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Windows.zip

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/samples/latest/SampleApp_Windows.zip

Región de Europa (Fráncfort) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip

Región Asia Pacífico (Hong Kong) http://s3-ap-east-1.amazonaws.com/aws-codedeploy-ap-east-1/samples/latest/SampleApp_Windows.zip

Región Asia Pacífico (Seúl) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip

Región Asia Pacífico (Singapur) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip

Región Asia Pacífico (Sídney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip

Versión de API 2014-10-06121

Page 131: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Comprobar los resultados

Región Ubicación de aplicación de ejemplo

Región Asia Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip

Región América del Sur (São Paulo) http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Windows.zip

Para las instancias Amazon EC2 con Ubuntu Server

Escriba la ubicación de la revisión de la aplicación personalizada almacenada en Amazon S3.20. Deje Deployment description (Descripción de implementación) en blanco.21. Expanda Advanced (Avanzadas).22. Elija Create deployment (Crear implementación).

Note

Si aparece Failed (Error) en lugar de Succeeded (Correcto), puede ser convenienteprobar alguna de las técnicas descritas en Monitorización y solución de problemas de laimplementación (p. 81) (utilizando SimpleDemoApp como nombre de la aplicación ySimpleDemoDG como nombre del grupo de implementaciones).

Paso 3: Comprobar los resultadosEn este paso, comprobará que CodeDeploy ha instalado la revisión SimpleDemoApp en la única instanciaAmazon EC2 del grupo de Amazon EC2 Auto Scaling.

Temas• Para comprobar los resultados (CLI) (p. 122)• Para comprobar los resultados (consola) (p. 123)

Para comprobar los resultados (CLI)En primer lugar, necesitará el DNS público de la instancia Amazon EC2.

Utilice la AWS CLI para obtener el DNS público de la instancia Amazon EC2 del grupo de Amazon EC2Auto Scaling ejecutando el comando describe-instances.

Antes de ejecutar este comando, necesitará el ID de la instancia Amazon EC2. Para obtener el ID, ejecuteel comando describe-auto-scaling-groups con CodeDeployDemo-AS-Group igual que hizo anteriormente:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text

Llame ahora al comando describe-instances:

aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text

El valor devuelto es el DNS público de la instancia Amazon EC2.

Versión de API 2014-10-06122

Page 132: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Aumentar el número de instancias Amazon

EC2 en el grupo de Amazon EC2 Auto Scaling

En un navegador web, muestre la revisión SimpleDemoApp implementada en la instancia Amazon EC2mediante una URL como la siguiente:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Si aparece la página de felicitación, habrá utilizado CodeDeploy correctamente para implementar unarevisión en una única instancia Amazon EC2 en un grupo de Amazon EC2 Auto Scaling.

A continuación, añadirá una instancia Amazon EC2 al grupo de Amazon EC2 Auto Scaling. Después deque Amazon EC2 Auto Scaling haya añadido la instancia Amazon EC2, CodeDeploy implementará larevisión en la instancia nueva.

Para comprobar los resultados (consola)En primer lugar, necesitará el DNS público de la instancia Amazon EC2.

Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

En el panel de navegación de Amazon EC2, en Auto Scaling, elija Auto Scaling Groups (Grupos) y, acontinuación, elija CodeDeployDemo-AS-Group.

En la pestaña Instances (Instancias), elija el ID de la instancia Amazon EC2 en la lista.

En la página Instances, en la pestaña Description, tome nota del valor de Public DNS. Debe tener unaspecto similar al siguiente: ec2-01-234-567-890.compute-1.amazonaws.com.

En un navegador web, muestre la revisión SimpleDemoApp implementada en la instancia Amazon EC2mediante una URL como la siguiente:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Si aparece la página de felicitación, habrá utilizado CodeDeploy correctamente para implementar unarevisión en una única instancia Amazon EC2 en un grupo de Amazon EC2 Auto Scaling.

A continuación, añade una instancia Amazon EC2 al grupo de Amazon EC2 Auto Scaling. Después de queAmazon EC2 Auto Scaling haya añadido la instancia Amazon EC2, CodeDeploy implementará la revisiónen la instancia Amazon EC2 nueva.

Paso 4: Aumentar el número de instancias AmazonEC2 en el grupo de Amazon EC2 Auto ScalingEn este paso, indica al grupo de Amazon EC2 Auto Scaling que cree una instancia Amazon EC2 adicional.Después de que Amazon EC2 Auto Scaling cree la instancia, CodeDeploy implementa la revisión en ella.

Temas• Para aumentar el número de instancias Amazon EC2 en el grupo de Amazon EC2 Auto Scaling

(CLI) (p. 123)• Para aumentar el número de instancias Amazon EC2 del grupo de implementaciones

(consola) (p. 124)

Para aumentar el número de instancias Amazon EC2 en el grupode Amazon EC2 Auto Scaling (CLI)1. Llame al comando update-auto-scaling-group para aumentar las instancias Amazon EC2 del grupo de

Amazon EC2 Auto Scaling denominado CodeDeployDemo-AS-Group de una a dos.

Versión de API 2014-10-06123

Page 133: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Comprobar los resultados de nuevo

En los equipos locales con Linux, macOS, or Unix:

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name CodeDeployDemo-AS-Group \ --min-size 2 \ --max-size 2 \ --desired-capacity 2

En los equipos locales con Windows:

aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --min-size 2 --max-size 2 --desired-capacity 2

2. Asegúrese de que el grupo de Amazon EC2 Auto Scaling tenga ahora dos instancias Amazon EC2.Ejecute el comando describe-auto-scaling-groups con CodeDeployDemo-AS-Group:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text

No continúe hasta que los dos valores devueltos indiquen Healthy y InService.

Para aumentar el número de instancias Amazon EC2 del grupode implementaciones (consola)1. En la barra de navegación de Amazon EC2, en Auto Scaling, elija Auto Scaling Groups (Grupos de

Auto Scaling) y, a continuación, elija CodeDeployDemo-AS-Group.2. Seleccione Actions y luego Edit.3. En la pestaña Details (Detalles), en los cuadros Desired (Objetivos), Min (Mínimo) y Max (Máximo),

escriba 2 y luego elija Save (Guardar).4. Seleccione la pestaña Instances. La nueva instancia Amazon EC2 debe aparecer en la lista. (Si

la instancia no aparece, puede que tenga que pulsar el botón Refresh varias veces). No continúehasta que aparezca el valor InService en la columna Lifecycle y el valor Healthy en la columna HealthStatus.

Paso 5: Comprobar los resultados de nuevoEn este paso comprobará que CodeDeploy ha instalado la revisión SimpleDemoApp en la instancia nuevadel grupo de Amazon EC2 Auto Scaling.

Temas• Para comprobar los resultados de la implementación automática (CLI) (p. 124)• Para comprobar los resultados de la implementación automática (consola) (p. 125)

Para comprobar los resultados de la implementación automática(CLI)1. Antes de ejecutar el comando get-deployment, necesitará el ID de la implementación automática. Para

obtener el ID, ejecute el comando list-deployments con la aplicación SimpleDemoApp y el grupo deimplementaciones SimpleDemoDG:

Versión de API 2014-10-06124

Page 134: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Comprobar los resultados de nuevo

aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text

Debe haber dos ID de implementación. Utilice el que aún no haya empleado en una llamada alcomando get-deployment:

aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text

Además del estado de la implementación, en la salida del comando debe aparecer autoScaling.(autoScaling significa que Amazon EC2 Auto Scaling ha creado la implementación).

No continúe hasta que el estado de la implementación aparezca como Succeeded.2. Antes de ejecutar el comando describe-instances, necesitará el ID de la instancia Amazon EC2

nueva. Para obtener este ID, ejecute de nuevo el comando describe-auto-scaling-groups conCodeDeployDemo-AS-Group:

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].InstanceId" --output text

Ahora ejecute el comando describe-instances:

aws ec2 describe-instances --instance-id instance-id --query "Reservations[0].Instances[0].PublicDnsName" --output text

En la salida del comando describe-instances, anote el DNS público de la instancia Amazon EC2nueva.

3. En un navegador web, muestre la revisión SimpleDemoApp implementada en la instancia AmazonEC2 mediante una URL como la siguiente:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Si aparece la página de felicitación, habrá utilizado CodeDeploy para implementar una revisión en unainstancia Amazon EC2 adicional de un grupo de Amazon EC2 Auto Scaling.

Para comprobar los resultados de la implementación automática(consola)1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Deployments(Implementaciones).

3. Elija el ID de la implementación que ha creado Amazon EC2 Auto Scaling.

.

Versión de API 2014-10-06125

Page 135: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Eliminación

4. La página Deployment (Implementación) muestra información sobre la implementación. Normalmente,debería crear una implementación por su cuenta, pero Amazon EC2 Auto Scaling ya ha creado unapor usted para implementar la revisión en la instancia Amazon EC2 nueva.

5. Cuando aparezca Succeeded (Correcto) en la parte superior de la página, compruebe los resultadosen la instancia. Primero debe obtener el DNS público de la instancia:

6. En el panel de navegación de Amazon EC2, en Auto Scaling, elija Auto Scaling Groups (Grupos) y, acontinuación, elija CodeDeployDemo-AS-Group.

7. En la pestaña Instances (Instancias), elija el ID de la instancia Amazon EC2 nueva.8. En la página Instances, en la pestaña Description, tome nota del valor de Public DNS. Debe tener un

aspecto similar al siguiente: ec2-01-234-567-890.compute-1.amazonaws.com.

Muestre la SimpleDemoApp revisión implementada en la instancia utilizando una URL como la siguiente:

http://ec2-01-234-567-890.compute-1.amazonaws.com

Si aparece la página de felicitación, habrá utilizado CodeDeploy para implementar una revisión en unainstancia Amazon EC2 adicional de un grupo de Amazon EC2 Auto Scaling.

Paso 6: EliminaciónEn este paso eliminará el grupo de Amazon EC2 Auto Scaling para evitar cargos recurrentes por losrecursos utilizados durante este tutorial. Si lo desea, puede eliminar la configuración de Amazon EC2 AutoScaling y los registros de los componentes de implementación de CodeDeploy.

Temas• Para limpiar los recursos (CLI) (p. 126)• Para limpiar los recursos (consola) (p. 127)

Para limpiar los recursos (CLI)1. Elimine el grupo de Amazon EC2 Auto Scaling ejecutando el comando delete-auto-scaling-group con

CodeDeployDemo-AS-Group. Esto también terminará las instancias Amazon EC2.

aws autoscaling delete-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --force-delete

2. Si lo desea, puede eliminar la configuración de lanzamiento de Amazon EC2 Auto Scaling ejecutandoel comando delete-launch-configuration con la configuración de lanzamiento CodeDeployDemo-AS-Configuration:

aws autoscaling delete-launch-configuration --launch-configuration-name CodeDeployDemo-AS-Configuration

3. Si lo desea, puede eliminar la aplicación de CodeDeploy ejecutando el comando delete-applicationcon la aplicación SimpleDemoApp. Esto también eliminará los registros de implementación, grupo deimplementaciones y revisión asociados.

aws deploy delete-application --application-name SimpleDemoApp

4. Para eliminar la asociación del Administrador de estados de Administrador de sistemas, llame alcomando delete-association.

aws ssm delete-association --assocation-id association-id

Versión de API 2014-10-06126

Page 136: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Eliminación

Para obtener el valor de id-asociación, llame al comando describe-association.

aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo

Para limpiar los recursos (consola)Para eliminar el grupo de Amazon EC2 Auto Scaling, con lo que también se terminan las instanciasAmazon EC2:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. En el panel de navegación de Amazon EC2, en Auto Scaling, elija Auto Scaling Groups (Grupos) y, acontinuación, elija CodeDeployDemo-AS-Group.

3. Elija Actions, seleccione Delete y luego seleccione Yes, Delete.

(Opcional) Para eliminar la configuración de lanzamiento:

1. En la barra de navegación, en Auto Scaling, elija Launch Configurations (Configuraciones delanzamiento) y, a continuación, elija CodeDeployDemo-AS-Configuration.

2. Elija Actions, seleccione Delete launch configuration y luego seleccione Yes, Delete.

1. Opcionalmente, puede eliminar la aplicación de CodeDeploy. Esto también eliminará los registros deimplementación, grupo de implementaciones y revisión asociados. Abra la consola de CodeDeploy enhttps://console.aws.amazon.com/codedeploy.

2. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la lista de aplicaciones, elija SimpleDemoApp.4. En la página Application details (Detalles de la aplicación), elija Delete application (Eliminar

aplicación).5. Cuando se le pregunte, escriba Delete y, a continuación, elija Delete (Eliminar).

Para eliminar la asociación del Administrador de estados de Administrador de sistemas:

1. Abra la consola de AWS Administrador de sistemas en https://console.aws.amazon.com/systems-manager.

2. En el panel de navegación, elija Administrador de estados.3. Elija la asociación que ha creado y, después, elija Eliminar.

Versión de API 2014-10-06127

Page 137: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de una aplicación desde GitHub

Tutorial: Uso de CodeDeploy para implementar unaaplicación desde GitHub

En este tutorial, usará CodeDeploy para implementar una revisión de la aplicación de ejemplo desdeGitHub en una sola instancia Amazon EC2 con Amazon Linux, en una sola instancia de Red Hat EnterpriseLinux (RHEL) o en una sola instancia de Windows Server. Para obtener información sobre la integración deGitHub con CodeDeploy, consulte Integración de CodeDeploy con GitHub (p. 64).

Note

También puede utilizar CodeDeploy para implementar una revisión de una aplicación desdeGitHub en una instancia de Ubuntu Server. Puede utilizar la revisión de ejemplo descrita en Paso2: Crear una revisión de aplicación de ejemplo (p. 105) en el Tutorial: Implementación de unaaplicación en una instancia on-premises con CodeDeploy (Windows Server Ubuntu Server oRed Hat Enterprise Linux) (p. 104), o bien crear una revisión compatible con una instancia deUbuntu Server y CodeDeploy. Para crear su propia revisión, consulte Planear una revisión paraCodeDeploy (p. 304) y Adición de un archivo de especificación de aplicación a una revisión paraCodeDeploy (p. 305).

Temas• Requisitos previos (p. 128)• Paso 1: Configurar una cuenta de GitHub (p. 128)• Paso 2: Crear un repositorio de GitHub (p. 129)• Paso 3: Cargar una aplicación de ejemplo en el repositorio de GitHub (p. 130)• Paso 4: Aprovisionar una instancia (p. 133)• Paso 5: Crear una aplicación y un grupo de implementaciones (p. 134)• Paso 6: Implementar la aplicación en la instancia (p. 135)• Paso 7: Monitorizar y comprobar la implementación (p. 138)• Paso 8: Limpieza (p. 139)

Requisitos previosAntes de empezar este tutorial, haga lo siguiente:

• Instale Git en su equipo local. Para instalar Git, consulte Git Downloads.• Complete los pasos indicados en Introducción a CodeDeploy (p. 37), incluida la instalación y

configuración de la AWS CLI. Esto es especialmente importante si desea utilizar la AWS CLI paraimplementar una revisión desde GitHub en la instancia.

Paso 1: Configurar una cuenta de GitHubNecesitará una cuenta de GitHub para crear un repositorio de GitHub en el que almacenar la revisión. Si yatiene una cuenta de GitHub, continúe en Paso 2: Crear un repositorio de GitHub (p. 129).

1. Vaya a https://github.com/join.2. Escriba un nombre de usuario, su dirección de correo electrónico y una contraseña.3. Elija Sign up for GitHub y siga las instrucciones.

Versión de API 2014-10-06128

Page 138: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Crear un repositorio de GitHub

Paso 2: Crear un repositorio de GitHubNecesitará un repositorio de GitHub para almacenar la revisión.

Si ya tiene un repositorio de GitHub, asegúrese de indicar su nombre donde aparezcaCodeDeployGitHubDemo en este tutorial y continúe en el Paso 3: Cargar una aplicación de ejemplo en elrepositorio de GitHub (p. 130).

1. En la página de inicio de GitHub, lleve a cabo alguna de las siguientes operaciones:

• En Your repositories, elija New repository.• En la barra de navegación, seleccione Create new (+) y luego elija New repository.

2. En la página Create a new repository, haga lo siguiente:

• En el cuadro Repository name (Nombre del repositorio), indique CodeDeployGitHubDemo.• Seleccione Public.

Note

La opción predeterminada Public implica que cualquiera puede ver el repositorio. Puedeseleccionar la opción Private (Privado) para limitar quién puede ver el repositorio yconfirmarlo.

• Desactive la casilla Initialize this repository with a README. En su lugar creará un archivoREADME.md manualmente en el siguiente paso.

• Elija Create repository.3. Siga las instrucciones correspondientes al tipo de su equipo local para crear el repositorio con la línea

de comandos.

Note

Si ha activado la autenticación de dos factores en GitHub, y se le solicita una contraseña,asegúrese de introducir su token de acceso personal en lugar de su contraseña de inicio desesión de GitHub. Para obtener información, consulte Providing Your 2FA AuthenticationCode.

En los equipos locales con Linux, macOS, or Unix:

1. Desde el terminal, ejecute sucesivamente los comandos siguientes, donde user-name es sunombre de usuario de GitHub:

mkdir /tmp/CodeDeployGitHubDemo

cd /tmp/CodeDeployGitHubDemo

touch README.md

git init

git add README.md

git commit -m "My first commit"Versión de API 2014-10-06

129

Page 139: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar una aplicación de

ejemplo en el repositorio de GitHub

git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git

git push -u origin master

2. Deje el terminal abierto en la ubicación /tmp/CodeDeployGitHubDemo.

En los equipos locales con Windows:

1. Desde el símbolo del sistema abierto como administrador, ejecute sucesivamente los comandossiguientes:

mkdir c:\temp\CodeDeployGitHubDemo

cd c:\temp\CodeDeployGitHubDemo

notepad README.md

2. En el Bloc de notas, guarde el archivo README.md. Cierre el Bloc de notas. Ejecutesucesivamente los comandos siguientes, donde user-name es su nombre de usuario de GitHub:

git init

git add README.md

git commit -m "My first commit"

git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git

git push -u origin master

3. Deje el símbolo del sistema abierto en la ubicación c:\temp\CodeDeployGitHubDemo.

Paso 3: Cargar una aplicación de ejemplo en elrepositorio de GitHubEn este paso, copiará una revisión de ejemplo de un bucket de Amazon S3 público en el repositoriode GitHub. (Para simplificar, las revisiones de ejemplo incluidas para este tutorial son páginas webindividuales).

Note

Si en lugar de nuestro ejemplo utiliza una revisión propia, esta deberá:

• Seguir las directrices de Planear una revisión para CodeDeploy (p. 304) y Adición de unarchivo de especificación de aplicación a una revisión para CodeDeploy (p. 305).

• Funcionar con el tipo de instancia correspondiente.• Ser accesible desde el panel de GitHub.

Versión de API 2014-10-06130

Page 140: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar una aplicación de

ejemplo en el repositorio de GitHub

Si su revisión cumple estos requisitos, continúe en Paso 5: Crear una aplicación y un grupo deimplementaciones (p. 134).Si va a realizar la implementación en una instancia de Ubuntu Server, tendrá que cargaren el repositorio de GitHub una revisión compatible con una instancia de Ubuntu Servery con CodeDeploy. Para obtener más información, consulte Planear una revisión paraCodeDeploy (p. 304) y Adición de un archivo de especificación de aplicación a una revisión paraCodeDeploy (p. 305).

Temas• Envío de una revisión de ejemplo desde un equipo local con Linux, macOS, or Unix (p. 131)• Envío de una revisión de ejemplo desde un equipo local con Windows (p. 132)

Envío de una revisión de ejemplo desde un equipo local conLinux, macOS, or UnixCon el terminal aún abierto, por ejemplo en la ubicación /tmp/CodeDeployGitHubDemo, ejecutesucesivamente los comandos siguientes:

Note

Si tiene previsto realizar la implementación en una instancia de Windows Server, sustituyaSampleApp_Windows.zip por SampleApp_Linux.zip en los comandos.

(Amazon S3 copy command)

unzip SampleApp_Linux.zip

rm SampleApp_Linux.zip

git add .

git commit -m "Added sample app"

git push

Donde (Amazon S3 copy command) es uno de los siguientes:

• aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip .--region us-east-2 para la región EE.UU. Este (Ohio)

• aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip .--region us-east-1 para la región US East (N. Virginia)

• aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip .--region us-west-1 para la EE.UU. Oeste (Norte de California)

• aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip .--region us-west-2 para la región EE.UU. Oeste (Oregón)

• aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip . --region ca-central-1 para la Región Canadá (Central)

• aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip .--region eu-west-1 para la región Europa (Irlanda)

• aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip .--region eu-west-2 para la región Europa (Londres)

Versión de API 2014-10-06131

Page 141: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Cargar una aplicación de

ejemplo en el repositorio de GitHub

• aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip .--region eu-west-3 para la región UE (París)

• aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip . --region eu-central-1 para la Región de Europa (Fráncfort)

• aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Linux.zip .--region ap-east-1 para la región Asia Pacífico (Hong Kong)

• aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip . --region ap-northeast-1 para la región Asia Pacífico (Tokio)

• aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip . --region ap-northeast-2 para la región Asia Pacífico (Seúl)

• aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip . --region ap-southeast-1 para la Región Asia Pacífico (Singapur)

• aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip . --region ap-southeast-2 para la región Asia Pacífico (Sídney)

• aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip .--region ap-south-1 para la región Asia Pacífico (Mumbai)

• aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip .--region sa-east-1 para la Región América del Sur (São Paulo)

Envío de una revisión de ejemplo desde un equipo local conWindowsCon el símbolo del sistema aún abierto, por ejemplo en la ubicación c:\temp\CodeDeployGitHubDemo,ejecute sucesivamente los comandos siguientes:

Note

Si tiene previsto realizar la implementación en una instancia de Amazon Linux o RHEL, sustituyaSampleApp_Linux.zip por SampleApp_Windows.zip en los comandos.

(Amazon S3 copy command)

Descomprima el contenido the del archivo ZIP directamente en el directorio local (por ejemplo c:\temp\CodeDeployGitHubDemo), no en un nuevo subdirectorio.

git add .

git commit -m "Added sample app"

git push

Donde (Amazon S3 copy command) es uno de los siguientes:

• aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip . --region us-east-2 para la región EE.UU. Este (Ohio)

• aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip . --region us-east-1 para la región US East (N. Virginia)

• aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip . --region us-west-1 para la EE.UU. Oeste (Norte de California)

• aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip . --region us-west-2 para la región EE.UU. Oeste (Oregón)

Versión de API 2014-10-06132

Page 142: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Aprovisionar una instancia

• aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip . --region ca-central-1 para la Región Canadá (Central)

• aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip . --region eu-west-1 para la región Europa (Irlanda)

• aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Windows.zip . --region eu-west-2 para la región Europa (Londres)

• aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Windows.zip . --region eu-west-3 para la región UE (París)

• aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip . --region eu-central-1 para la Región de Europa (Fráncfort)

• aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Windows.zip . --region ap-east-1 para la región Asia Pacífico (Hong Kong)

• aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Windows.zip . --region ap-northeast-1 para la región Asia Pacífico (Tokio)

• aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip . --region ap-northeast-2 para la región Asia Pacífico (Seúl)

• aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip . --region ap-southeast-1 para la Región Asia Pacífico (Singapur)

• aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip . --region ap-southeast-2 para la región Asia Pacífico (Sídney)

• aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip . --region ap-south-1 para la región Asia Pacífico (Mumbai)

• aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Windows.zip . --region sa-east-1 para la Región América del Sur (São Paulo)

Para enviar su propia revisión a una instancia de Ubuntu Server, copie la revisión en el repositorio local y,a continuación, ejecute lo siguiente:

git add .git commit -m "Added Ubuntu app"git push

Paso 4: Aprovisionar una instanciaEn este paso creará o configurará la instancia en la que va a implementar la aplicación de ejemplo. Puederealizar la implementación en una instancia Amazon EC2 o en una instancia on-premises basada en unode los sistemas operativos compatibles con CodeDeploy. Para obtener información, consulte Sistemasoperativos admitidos por el agente de CodeDeploy (p. 176). (Si ya tiene una instancia configuradas parasu uso en implementaciones con CodeDeploy, continúe en el paso siguiente).

Para crear o configurar una instancia, consulte Trabajar con instancias de CodeDeploy (p. 212) ydespués vuelva a esta página.

Note

Para crear rápidamente una instancia nueva para este tutorial, le recomendamos queutilice la consola de Amazon EC2. Consulte Lanzamiento de una instancia Amazon EC2(consola) (p. 212).

Para comprobar que el agente de CodeDeploy se está ejecutando en la instancia, consulte Comprobaciónde que el agente de CodeDeploy se está ejecutando (p. 184).

Una vez iniciada o configurada la instancia y comprobado que el agente de CodeDeploy se estáejecutando, vaya al siguiente paso.

Versión de API 2014-10-06133

Page 143: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Crear una aplicación yun grupo de implementaciones

Paso 5: Crear una aplicación y un grupo deimplementacionesEn este paso utilizará la consola de CodeDeploy o la AWS CLI para crear una aplicación y un grupo deimplementaciones que después usará para implementar la revisión de ejemplo desde el repositorio deGitHub.

Creación de una aplicación y un grupo de implementaciones(consola)1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. Seleccione Create application (Crear aplicación) y, a continuación, seleccione Custom application

(Aplicación personalizada).4. En Application name (Nombre de aplicación), escriba CodeDeployGitHubDemo-App.5. En Compute platform (Plataforma de computación), elija EC2/On-Premises.6. Elija Create application.7. En la pestaña Deployment groups (Grupos de implementaciones), elija Create deployment group

(Crear grupo de implementaciones).8. En Deployment group name (Nombre de grupo de implementación), escriba

CodeDeployGitHubDemo-DepGrp.9. En Service Role (Rol de servicio), elija el nombre del rol de servicio de CodeDeploy.10. En Deployment type (Tipo de implementación), elija In-place (In situ).11. En Environment configuration (Configuración del entorno), en función del tipo de instancia que utilice,

elija Amazon EC2 instances (Instancias Amazon EC2) u On-premises instances (Instancias on-premises). En Key (Clave) y Value (Valor), escriba la clave y el valor de la etiqueta de instancia que seaplicó a la instancia como parte de Paso 4: Aprovisionar una instancia (p. 133).

12. En Deployment configuration (Configuración de implementación), elija CodeDeployDefault.AllatOnce.13. En Load Balancer (Balanceador de carga), anule la selección de Enable load balancing (Habilitar

balanceo de carga).14. Expanda Advanced.15. En Alarms (Alarmas), seleccione Ignore alarm configuration (Ignorar las alarmas).16. Elija Create deployment group (Crear grupo de implementaciones) y vaya al paso siguiente.

Creación de una aplicación y un grupo de implementaciones(CLI)1. Ejecute el comando create-application para crear una aplicación de CodeDeploy denominada

CodeDeployGitHubDemo-App:

aws deploy create-application --application-name CodeDeployGitHubDemo-App

Versión de API 2014-10-06134

Page 144: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Implementar la aplicación en la instancia

2. Ejecute el comando create-deployment-group para crear un grupo de implementaciones denominadoCodeDeployGitHubDemo-DepGrp:

• Si va a realizar la implementación en una instancia Amazon EC2, ec2-tag-key es la clave dela etiqueta de instancia Amazon EC2 que se aplicó a la instancia Amazon EC2 en el Paso 4:Aprovisionar una instancia (p. 133).

• Si va a realizar la implementación en una instancia Amazon EC2, ec2-tag-value es el valorde la etiqueta de instancia Amazon EC2 que se aplicó a la instancia Amazon EC2 en el Paso 4:Aprovisionar una instancia (p. 133).

• Si va a implementar en una instancia on-premises, on-premises-tag-key es la clave de etiquetade instancia on-premises que se aplicó a la instancia on-premises en Paso 4: Aprovisionar unainstancia (p. 133).

• Si va a implementar en una instancia on-premises, on-premises-tag-value es el valor deetiqueta de instancia on-premises que se aplicó a la instancia on-premises en Paso 4: Aprovisionaruna instancia (p. 133).

• service-role-arn es un ARN de rol de servicio. (Siga las instrucciones de Obtención del ARNdel rol de servicio (CLI) (p. 44) para determinar el ARN del rol de servicio).

aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App --ec2-tag-filters Key=ec2-tag-key,Type=KEY_AND_VALUE,Value=ec2-tag-value --on-premises-tag-filters Key=on-premises-tag-key,Type=KEY_AND_VALUE,Value=on-premises-tag-value --deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn

Note

El comando create-deployment-group permite la creación de desencadenadores que dancomo resultado el envío de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especificados en las implementaciones e instancias. El comando también admiteopciones para la restauración automática de implementaciones y la configuración de alarmaspara detener las implementaciones cuando se alcanzan los umbrales de monitorización delas alarmas de Amazon CloudWatch. Los comandos de estas acciones no se incluyen eneste tutorial.

Paso 6: Implementar la aplicación en la instanciaEn este paso, utiliza la consola de CodeDeploy o la AWS CLI para implementar la revisión de ejemplodesde el repositorio de GitHub en la instancia.

Para implementar la revisión (consola)1. En la página Deployment group details (Detalles del grupo de implementaciones), elija Create

deployment (Crear implementación).2. En Deployment group (Grupo de implementación), elija CodeDeployGitHubDemo-DepGrp.3. En Revision type (Tipo de revisión), elija GitHub.4. En Connect to GitHub, realice una de las siguientes acciones:

• Para crear una conexión entre aplicaciones de CodeDeploy y una cuenta de GitHub, cierre la sesiónde GitHub en otra pestaña del navegador web. En GitHub account (Cuenta de GitHub), introduzcaun nombre para identificar esta conexión y luego elija Connect to GitHub (Conectar a GitHub). Lapágina web le pedirá que autorice a CodeDeploy para interactuar con GitHub para la aplicaciónCodeDeployGitHubDemo-App. Continúe en el paso 5.

• Para utilizar una conexión que haya creado previamente, seleccione su nombre en GitHub accounty, a continuación, elija Connect to GitHub. Continúe en el paso 7.

Versión de API 2014-10-06135

Page 145: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Implementar la aplicación en la instancia

• Para crear una conexión con una cuenta de GitHub distinta, cierre la sesión de GitHub en otrapestaña del navegador web. Elija Connect to a different GitHub account y, a continuación, elijaConnect to GitHub. Continúe en el paso 5.

5. Siga las instrucciones de la página Sign in para iniciar sesión con su cuenta de GitHub.6. En la página Authorize application, elija Authorize application.7. En la página Create deployment (Crear implementación) de CodeDeploy, en el cuadro Repository

name (Nombre del repositorio), introduzca el nombre de usuario de GitHub que ha utilizado para iniciarsesión, seguido de una barra inclinada (/) y del nombre del repositorio en el que ha almacenado larevisión de la aplicación (por ejemplo, my-github-user-name/CodeDeployGitHubDemo).

Si no está seguro del valor que debe introducir o si desea especificar un repositorio diferente:

a. En otra pestaña del navegador web, abra el Panel de GitHub.b. En Your repositories, pase el cursor sobre el nombre del repositorio de destino. Aparecerá un

mensaje informativo con el nombre de usuario de GitHub o el nombre de la organización seguidode una barra inclinada (/) y del nombre del repositorio. Escriba este valor en Repository name(Nombre del repositorio).

Note

Si el nombre de repositorio de destino no se muestra en Your repositories (Susrepositorios), use el cuadro Search GitHub (Buscar GitHub) para buscar el repositorio deGitHub de destino y el nombre de usuario o nombre de organización de GitHub.

8. En el cuadro Commit ID (ID de confirmación), introduzca el ID de la confirmación asociada alalmacenamiento de la revisión de la aplicación en GitHub.

Si no está seguro del valor que debe introducir:

a. En otra pestaña del navegador web, abra el Panel de GitHub.b. En Your repositories (Sus repositorios), elija CodeDeployGitHubDemo.c. En la lista de confirmaciones, encuentre y copie el ID de la confirmación asociada al

almacenamiento de la revisión de la aplicación en GitHub. Este ID suele tener 40 caracteres y secompone de letras y números. (No utilice la versión corta del ID de confirmación, que suele ser losprimeros 10 caracteres de la versión larga).

d. Pegue el ID de confirmación en el cuadro Commit ID.9. Elija Deploy y continúe con el paso siguiente.

Para implementar la revisión (CLI)Para poder ejecutar cualquier comando de la AWS CLI que interactúe con GitHub (como el comandocreate-deployment que ejecutará a continuación), antes debe conceder a CodeDeploy permiso para utilizarsu cuenta de usuario de GitHub para interactuar con GitHub para la aplicación CodeDeployGitHubDemo-App. Actualmente esto debe hacerse en la consola de CodeDeploy.

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. Elija CodeDeployGitHubDemo-App.4. En la pestaña Deployments (Implementaciones), elija Create deployment (Crear implementación).

Versión de API 2014-10-06136

Page 146: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Implementar la aplicación en la instancia

Note

No va a crear una nueva implementación. Actualmente esta es la única manera de concedera CodeDeploy el permiso para interactuar con GitHub en nombre de su cuenta de usuario deGitHub.

5. En Deployment group (Grupo de implementación), elija CodeDeployGitHubDemo-DepGrp.6. En Revision type (Tipo de revisión), elija GitHub.7. En Connect to GitHub, realice una de las siguientes acciones:

• Para crear una conexión entre aplicaciones de CodeDeploy y una cuenta de GitHub, cierre lasesión de GitHub en otra pestaña del navegador web. En GitHub account, escriba el nombre paraidentificar esta conexión y luego elija Connect to GitHub. La página web le pedirá que autoricea CodeDeploy para interactuar con GitHub para la aplicación CodeDeployGitHubDemo-App.Continúe en el paso 8.

• Para utilizar una conexión que haya creado previamente, seleccione su nombre en GitHub accounty, a continuación, elija Connect to GitHub. Continúe en el paso 10.

• Para crear una conexión con una cuenta de GitHub distinta, cierre la sesión de GitHub en otrapestaña del navegador web. Elija Connect to a different GitHub account y, a continuación, elijaConnect to GitHub. Continúe en el paso 8.

8. Siga las instrucciones de la página Sign in para iniciar sesión con su nombre de usuario de GitHub osu dirección de correo electrónico y la contraseña correspondiente.

9. En la página Authorize application, elija Authorize application.10. En la página Create deployment (Crear implementación) de CodeDeploy, elija Cancel (Cancelar).11. Ejecute el comando create-deployment para implementar la revisión en la instancia desde el

repositorio de GitHub, donde:

• repository es el nombre de cuenta de GitHub seguido de una barra inclinada (/) y delnombre del repositorio (CodeDeployGitHubDemo), por ejemplo MyGitHubUserName/CodeDeployGitHubDemo.

Si no está seguro del valor que debe indicar o si desea especificar un repositorio diferente:

1. En otra pestaña del navegador web, abra el Panel de GitHub.2. En Your repositories, pase el cursor sobre el nombre del repositorio de destino. Aparecerá

un mensaje informativo con el nombre de usuario de GitHub o el nombre de la organizaciónseguido de una barra inclinada (/) y del nombre del repositorio. Este es el valor que debe usar.

Note

Si el nombre de repositorio de destino no aparece en Your repositories, use el cuadroSearch GitHub para buscar repositorio de GitHub de destino y el nombre de usuario onombre de organización de GitHub correspondiente.

• commit-id es la confirmación asociada al almacenamiento de la versión de la revisión de laaplicación en el repositorio (por ejemplo, f835159a...528eb76f).

Si no está seguro del valor que debe usar:

1. En otra pestaña del navegador web, abra el Panel de GitHub.2. En Your repositories (Sus repositorios), elija CodeDeployGitHubDemo.3. En la lista de confirmaciones, busque el ID de la confirmación asociada al almacenamiento de

la revisión de la aplicación en GitHub. Este ID suele tener 40 caracteres y se compone de letrasy números. (No utilice la versión corta del ID de confirmación, que suele ser los primeros 10caracteres de la versión larga). Utilice este valor.

Versión de API 2014-10-06137

Page 147: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 7: Monitorizar y comprobar la implementación

Si se encuentra en un equipo local con Linux, macOS, or Unix:

aws deploy create-deployment \ --application-name CodeDeployGitHubDemo-App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name CodeDeployGitHubDemo-DepGrp \ --description "My GitHub deployment demo" \ --github-location repository=repository,commitId=commit-id

Si se encuentra en un equipo local con Windows:

aws deploy create-deployment --application-name CodeDeployGitHubDemo-App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description "My GitHub deployment demo" --github-location repository=repository,commitId=commit-id

Paso 7: Monitorizar y comprobar la implementaciónEn este paso utilizará la consola de CodeDeploy o la AWS CLI para comprobar que la implementación seha efectuado correctamente. Utilizará el navegador web para ver la página implementada en la instanciaque ha creado o configurado.

Note

Si se trata de una implementación en una instancia de Ubuntu Server, utilice su propia estrategiade pruebas para determinar si la revisión implementada funciona según lo previsto en la instanciay, a continuación, continúe en el paso siguiente.

Para monitorizar y comprobar la implementación (consola)

1. En el panel de navegación, expanda Deploy (Implementar) y después elija Deployments(Implementaciones).

2. En la lista de implementaciones, busque la fila con un valor de Application (Aplicación) deCodeDeployGitHubDemo-App y un valor de Deployment Group (Grupo de implementación) deCodeDeployGitHubDemo-DepGrp. Si no aparece Succeeded o Failed en la columna Status, pulse elbotón Refresh periódicamente.

3. Si aparece Failed en la columna Status, siga las instrucciones de Ver detalles de la instancia(consola) (p. 254) para resolver los problemas de la implementación.

4. Si aparece Succeeded en la columna Status, ya puede comprobar la implementación en el navegadorweb. Nuestra revisión de ejemplo implementa una única página web en la instancia. Si la realiza laimplementación en una instancia Amazon EC2, en el navegador web, vaya a http://public-dnspara la instancia (por ejemplo, http://ec2-01-234-567-890.compute-1.amazonaws.com).

5. Si puede ver la página web, ¡enhorabuena! Ahora que ha conseguido implementar una revisión desdeGitHub con AWS CodeDeploy, puede ir directamente al Paso 8: Limpieza (p. 139).

Para monitorizar y comprobar la implementación (CLI)

1. Para obtener el ID de implementación, ejecute el comando list-deployments con la aplicaciónCodeDeployGitHubDemo-App y el grupo de implementaciones CodeDeployGitHubDemo-DepGrp:

aws deploy list-deployments --application-name CodeDeployGitHubDemo-App --deployment-group-name CodeDeployGitHubDemo-DepGrp --query "deployments" --output text

Versión de API 2014-10-06138

Page 148: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 8: Limpieza

2. Ejecute el comando get-deployment indicando el ID de la implementación obtenido en la salida delcomando list-deployments:

aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text

3. Si el resultado es Failed, siga las instrucciones de Ver detalles de la instancia (consola) (p. 254) pararesolver los problemas de la implementación.

4. Si el resultado es Succeeded, ya puede comprobar la implementación en el navegador web.Nuestra revisión de ejemplo implementa una única página web en la instancia. Si realiza laimplementación en una instancia Amazon EC2, puede ver la página en el navegador weben la dirección http://public-dns para instancia Amazon EC2 (por ejemplo, http://ec2-01-234-567-890.compute-1.amazonaws.com).

5. Si puede ver la página web, ¡enhorabuena! Ha conseguido implementar con AWS CodeDeploy desdeun repositorio de GitHub.

Paso 8: LimpiezaPara evitar cargos adicionales por los recursos que ha utilizado en este tutorial, debe terminar la instanciaAmazon EC2 y sus recursos asociados. De forma opcional, puede eliminar los registros en CodeDeploy delos componentes de la implementación asociados a este tutorial. Si el repositorio de GitHub era solo paraeste tutorial, puede eliminarlo ahora también.

Para eliminar una pila de AWS CloudFormation (si ha utilizadola plantilla de AWS CloudFormation para crear una instanciaAmazon EC2)1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation en

https://console.aws.amazon.com/cloudformation.2. En la columna Stacks (Pilas) elija la pila que comience por CodeDeploySampleStack.3. Elija Eliminar.4. Cuando se le solicite, elija Delete stack (Eliminar pila). Se eliminará la instancia Amazon EC2 y el perfil

de instancia de IAM y el rol de servicio asociados.

Para anular el registro y limpiar manualmente una instancia on-premises (si ha aprovisionado una instancia on-premises)1. Utilice la AWS CLI para ejecutar el comando deregister para la instancia on-premises representada

aquí por your-instance-name y la región representada por your-region:

aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region

2. Desde la instancia on-premises, ejecute el comando uninstall:

aws deploy uninstall

Versión de API 2014-10-06139

Page 149: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de un servicio de Amazon ECS

Para terminar manualmente una instancia Amazon EC2 (si hainiciado manualmente una instancia Amazon EC2)1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://

console.aws.amazon.com/ec2/.2. En el panel de navegación, bajo Instances, elija Instances.3. Seleccione la casilla junto a la instancia Amazon EC2 que desea terminar. En el menú Actions,

seleccione Instance State y elija Terminate.4. Cuando se le pregunte, elija Yes, Terminate.

Para eliminar los registros de los componentes deimplementación en CodeDeploy1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. Elija CodeDeployGitHubDemo-App.4. Seleccione Delete application (Eliminar aplicación).5. Cuando se le pregunte, escriba Delete y, a continuación, elija Delete (Eliminar).

Para eliminar el repositorio de GitHubConsulte cómo eliminar un repositorio en la ayuda de GitHub.

Tutorial: Implementación de un servicio de AmazonECS

En este tutorial, aprenderá a implementar una aplicación de Amazon ECS. Comience con una aplicaciónde Amazon ECS ya creada. El primer paso consiste en actualizar la aplicación modificando su archivode definición de tareas con una nueva etiqueta. A continuación, utilice CodeDeploy para implementar laactualización. Durante la implementación, CodeDeploy instala la actualización en un nuevo conjunto detareas de sustitución. A continuación, desvía el tráfico de producción de la versión original del servicio deAmazon ECS, que se encuentra en su conjunto de tareas original, a la versión actualizada en el conjuntode tareas de sustitución.

Note

Actualmente, CodeDeploy no es compatible con el proveedor de capacidad de Amazon ECS.

Durante una implementación de Amazon ECS, CodeDeploy utiliza un balanceador de carga configuradocon dos grupos de destino y un agente de escucha de tráfico de producción. En el siguiente diagramase muestra cómo están relacionados el balanceador de carga, el agente de escucha de producción, losgrupos de destino y la aplicación de Amazon ECS antes de que comience la implementación. En estetutorial se utiliza un Balanceador de carga de aplicaciones. También puede utilizar Network Load Balancer.

Versión de API 2014-10-06140

Page 150: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de un servicio de Amazon ECS

Después de una implementación correcta, el agente de escucha de tráfico de producción ofrece eltráfico al nuevo conjunto de tareas de sustitución y se termina el conjunto de tareas original. En elsiguiente diagrama se muestra cómo están relacionados los recursos después de una implementacióncorrecta. Para obtener más información, consulte ¿Qué sucede durante una implementación de AmazonECS? (p. 24).

Para obtener información sobre cómo utilizar la AWS CLI para implementar un servicio de AmazonECS, consulte Tutorial: Creación de un servicio mediante una implementación blue/green. Para obtenerinformación sobre cómo utilizar CodePipeline para detectar e implementar automáticamente cambios en unservicio de Amazon ECS con CodeDeploy, consulte Tutorial: Creación de una canalización con un origende Amazon ECR y la implementación de ECS-to-CodeDeploy.

Después de completar este tutorial, puede utilizar la aplicación de CodeDeploy y el grupo deimplementaciones que ha creado para añadir una prueba de validación de implementación en Tutorial:Implementación de un servicio de Amazon ECS con una prueba de validación (p. 148).

Temas• Requisitos previos (p. 142)• Paso 1: Actualización de la aplicación de Amazon ECS (p. 142)

Versión de API 2014-10-06141

Page 151: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos

• Paso 2: Creación del archivo AppSpec (p. 143)• Paso 3: Uso de la consola de CodeDeploy para implementar el servicio de Amazon ECS (p. 144)• Paso 4: Eliminación (p. 147)

Requisitos previosPara completar este tutorial, primero debe realizar el siguiente procedimiento:

• Realice los pasos 2 y 3 de Introducción a CodeDeploy (p. 37).• Cree un Balanceador de carga de aplicaciones configurado con dos grupos de destino y un agente de

escucha. Para obtener información sobre la creación un balanceador de carga mediante la consola,consulte Configuración de un balanceador de carga, grupos de destino y agentes de escucha para laimplementación de Amazon ECS de CodeDeploy (p. 293). Para obtener información sobre la creaciónde un balanceador de carga mediante la AWS CLI, consulte Paso 1: Creación de un balanceador decarga de aplicaciones en la Guía de usuario de Amazon Elastic Container Service. Cuando cree elbalanceador de carga, anote lo siguiente para este tutorial:• Nombre del balanceador de carga.• Los nombres de los grupos de destino.• El puerto utilizado por el agente de escucha del balanceador de carga.

• Cree un servicio y un clúster de Amazon ECS. Para obtener más información, consulte los pasos 2, 3 y 4del Tutorial: Creación de un servicio mediante una implementación blue/green en la Guía de usuario deAmazon Elastic Container Service. Anote lo siguiente para este tutorial:• El nombre del clúster de Amazon ECS.• El ARN de la definición de tarea utilizada por el servicio de Amazon ECS.• El nombre del contenedor utilizado por el servicio de Amazon ECS.

• Cree un bucket de Amazon S3 para el código de AppSpec file.

Paso 1: Actualización de la aplicación de AmazonECSEn esta sección, actualizará la aplicación de Amazon ECS con una nueva revisión de su definición detarea. La revisión actualizada añade un nuevo par de claves y etiquetas. En Paso 3: Uso de la consola deCodeDeploy para implementar el servicio de Amazon ECS (p. 144), implemente la versión actualizada dela aplicación de Amazon ECS.

Para actualizar la definición de tarea, realice el siguiente procedimiento:

1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.2. En el panel de navegación, elija Task Definitions.3. Seleccione la casilla de verificación de la definición de tarea utilizada por el servicio de Amazon ECS.4. Elija Create new revision (Crear nueva revisión).5. En este tutorial, realice una pequeña actualización de la definición de la tarea añadiendo una etiqueta.

En la parte inferior de la página, en Tags (Etiquetas), cree una nueva etiqueta escribiendo un nuevopar de clave y valor.

6. Seleccione Create. Debería ver que el número de revisión de la definición de la tarea se haincrementado en uno.

7. Seleccione la pestaña JSON. Anote lo siguiente, ya que necesitará esa información en el siguientepaso.

Versión de API 2014-10-06142

Page 152: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Creación del archivo AppSpec

• El valor de taskDefinitionArn. Su formato es arn:aws:ecs:aws-region: account-id:task-definition/task-definition-family: task-definition-revision. Este esel ARN de la definición de tarea actualizada.

• En el elemento containerDefinitions, el valor de name. Este es el nombre del contenedor.• En el elemento portMappings, el valor de containerPort. Este es el puerto del contenedor.

Paso 2: Creación del archivo AppSpecEn esta sección, creará su AppSpec file y lo cargará en el bucket de Amazon S3 que creó en la secciónRequisitos previos (p. 142). El AppSpec file de una implementación de Amazon ECS especifica ladefinición de tarea, el nombre del contenedor y el puerto del contenedor. Para obtener más información,consulte AppSpec File Ejemplo de una implementación de Amazon ECS (p. 429) y Sección "resources"de AppSpec para implementaciones de Amazon ECS (p. 410).

Para crear su AppSpec file, realice el siguiente procedimiento:

1. Si desea crear su AppSpec file mediante YAML, cree un archivo denominado appspec.yml. Si deseacrear su AppSpec file con JSON, cree un archivo denominado appspec.json.

2. Elija la pestaña adecuada, en función de si utiliza YAML o JSON para su AppSpec file, y copie sucontenido en el AppSpec file que acaba de crear. Para la propiedad TaskDefinition, utilice el ARNde definición de tarea que anotó en la sección Paso 1: Actualización de la aplicación de AmazonECS (p. 142).

JSON AppSpec

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id::task-definition/ecs-demo-task-definition:revision-number", "LoadBalancerInfo": { "ContainerName": "your-container-name", "ContainerPort": your-container-port } } } } ]}

YAML AppSpec

version: 0.0Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id::task-definition/ecs-demo-task-definition:revision-number" LoadBalancerInfo: ContainerName: "your-container-name" ContainerPort: your-container-port

Versión de API 2014-10-06143

Page 153: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Uso de la consola de CodeDeploy

para implementar el servicio de Amazon ECS

Note

El conjunto de tareas de sustitución hereda la subred, el grupo de seguridad, la versión dela plataforma y los valores de IP públicas asignados del conjunto de tareas original. Puedeanular estos valores para el conjunto de tareas de sustitución estableciendo sus propiedadesopcionales en su AppSpec file. Para obtener más información, consulte Sección "resources"de AppSpec para implementaciones de Amazon ECS (p. 410) y AppSpec File Ejemplo deuna implementación de Amazon ECS (p. 429).

3. Cargue su AppSpec file en el bucket de S3 que ha creado como requisito previo para este tutorial.

Paso 3: Uso de la consola de CodeDeploy paraimplementar el servicio de Amazon ECSEn esta sección, creará una aplicación de CodeDeploy y un grupo de implementaciones para implementarla aplicación de Amazon ECS actualizada. Durante la implementación, CodeDeploy desvía el tráficode producción de la aplicación Amazon ECS a su nueva versión en un nuevo conjunto de tareas desustitución. Para completar este ejemplo, necesita lo siguiente:

• El nombre del clúster de Amazon ECS.• El nombre de servicio de Amazon ECS.• El nombre de Balanceador de carga de aplicaciones.• El puerto del agente de escucha de producción.• Los nombres de grupo de destino.• El nombre del bucket de S3 que creó.

Para crear una aplicación de CodeDeploy

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CodeDeploy en https://console.aws.amazon.com/codepipeline/.

2. Elija Create application (Crear aplicación).3. En Application name (Nombre de aplicación), especifique ecs-demo-codedeploy-app.4. En Compute platform (Plataforma de computación), elija Amazon ECS.5. Elija Create application.

Para crear un grupo de implementaciones de CodeDeploy

1. En la pestaña Deployment groups (Grupos de implementaciones) de la página de la aplicación, elijaCreate deployment group (Crear grupo de implementaciones).

2. En Deployment group name (Nombre de grupo de implementaciones), escriba ecs-demo-dg.3. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy a Amazon

ECS. Para obtener más información, consulte Administración de identidades y accesos en AWSCodeDeploy (p. 376).

4. En Environment configuration (Configuración de entorno), elija el nombre del clúster y el nombre delservicio de Amazon ECS.

5. En Load balancers (Balanceadores de carga), seleccione el nombre del balanceador de carga quesirve el tráfico a su servicio de Amazon ECS.

6. En Production listener port (Puerto del agente de escucha de producción), elija el puerto y el protocolodel agente de escucha que ofrece el tráfico de producción a su servicio de Amazon ECS (por ejemplo,

Versión de API 2014-10-06144

Page 154: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Uso de la consola de CodeDeploy

para implementar el servicio de Amazon ECS

HTTP: 80). Este tutorial no incluye un agente de escucha de prueba opcional, por lo que no elija unpuerto en Test listener port (Puerto de agente de escucha de prueba).

7. En Target group 1 name (Nombre de grupo de destino 1) y Target group 2 name (Nombre de grupode destino 2), elija dos grupos de destino diferentes para dirigir el tráfico durante su implementación.Asegúrese de que se trata de los grupos de destino que ha creado para el balanceador de carga. Noimporta el que se utilice para el grupo de destino 1 y el que se utilice para el grupo de destino 2.

8. Elija Reroute traffic immediately (Redirigir el tráfico de forma inmediata).9. En Original revision termination (Terminación de revisión original), elija 0 days (0 días), 0 hours (0

horas) y 5 minutes (5 minutos). Esto le permite ver que la implementación se completa más rápido quesi utiliza el valor predeterminado (1 hora).

Versión de API 2014-10-06145

Page 155: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Uso de la consola de CodeDeploy

para implementar el servicio de Amazon ECS

Versión de API 2014-10-06146

Page 156: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Eliminación

10. Elija Create deployment group.

Para implementar la aplicación en Amazon ECS, realice el siguiente procedimiento:

1. En la página de la consola del grupo de implementaciones, elija Create deployment (Crearimplementación).

2. En Deployment group (Grupo de implementaciones), elija ecs-demo-dg.3. En Revision type (Tipo de revisión), elija My application is stored in Amazon S3 (Mi aplicación está

almacenada en Amazon S3). En Revision location (Ubicación de la revisión), escriba el nombre de subucket de S3.

4. En Revision file type (Tipo de archivo de revisión), elija .json o .yaml, según corresponda.5. En el cuadro Deployment description (Descripción de la implementación), especifique una descripción

para la implementación (opcional).6. Elija Create deployment (Crear implementación).7. En Deployment status (Estado de implementación), puede monitorizar la implementación. Después

de que el 100 % del tráfico de producción se dirija al conjunto de tareas de sustitución y antes de quetranscurra el tiempo de espera de cinco minutos, puede elegir Terminate original task set (Terminarconjunto de tareas original) para terminar inmediatamente el conjunto de tareas original. Si no eligeTerminate original task set (Terminar conjunto de tareas original), el conjunto de tareas original terminadespués de que transcurra el tiempo de espera de cinco minutos especificado.

Paso 4: EliminaciónEl siguiente tutorial, Tutorial: Implementación de un servicio de Amazon ECS con una prueba devalidación (p. 148), se basa en este tutorial y utiliza la aplicación de CodeDeploy y el grupo deimplementaciones que ha creado. Si desea seguir los pasos de ese tutorial, omita este paso y no eliminelos recursos que ha creado.

Versión de API 2014-10-06147

Page 157: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de un servicio de

Amazon ECS con una prueba de validación

Note

Su cuenta de AWS no genera gastos por los recursos de CodeDeploy que ha creado.

Los nombres de recursos de estos pasos son los nombres sugeridos en este tutorial (por ejemplo, ecs-demo-codedeploy-app para el nombre de la aplicación de CodeDeploy). Si utilizó nombres diferentes,asegúrese de usarlos en el borrado.

1. Utilice el comando delete-deployment-group para eliminar el grupo de implementación deCodeDeploy.

aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id

2. Utilice el comando delete-application para eliminar la aplicación de CodeDeploy.

aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id

Tutorial: Implementación de un servicio de AmazonECS con una prueba de validación

En este tutorial, aprenderá a utilizar una función de Lambda para validar parte de la implementación de unaaplicación de Amazon ECS actualizada. En este tutorial se utiliza la aplicación de CodeDeploy, el grupo deimplementaciones de CodeDeploy y la aplicación de Amazon ECS que utilizó en Tutorial: Implementaciónde un servicio de Amazon ECS (p. 140). Complete ese tutorial antes de comenzar este.

Para añadir una prueba de validación, primero debe implementar la prueba en una función de Lambda. Acontinuación, en el AppSpec file de implementación, debe especificar la función de Lambda para el enlacede ciclo de vida que desee probar. Si se produce un error en una prueba de validación, la implementaciónse detiene, se revisa y se marca como errónea. Si la prueba se realiza correctamente, la implementacióncontinúa con el siguiente evento o enlace del ciclo de vida de la implementación.

Durante una implementación de Amazon ECS con pruebas de validación, CodeDeploy utiliza unbalanceador de carga configurado con dos grupos de destino: un agente de escucha de tráfico deproducción y un agente de escucha de tráfico de prueba. En el siguiente diagrama se muestra cómo estánrelacionados el balanceador de carga, los agentes de escucha de producción y prueba, los grupos dedestino y la aplicación de Amazon ECS antes de que comience la implementación. En este tutorial seutiliza un Balanceador de carga de aplicaciones. También puede utilizar Network Load Balancer.

Versión de API 2014-10-06148

Page 158: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de un servicio de

Amazon ECS con una prueba de validación

Durante una implementación de Amazon ECS implementación, existen cinco enlaces de ciclo de vida parapruebas. En este tutorial se implementa una prueba durante el tercer enlace de implementación de ciclode vida, AfterAllowTestTraffic. Para obtener más información, consulte Lista de enlaces de eventosdel ciclo de vida para una implementación de Amazon ECS (p. 416). Después de una implementacióncorrecta, el agente de escucha de tráfico de producción ofrece el tráfico al nuevo conjunto de tareas desustitución y se termina el conjunto de tareas original. En el siguiente diagrama se muestra cómo estánrelacionados los recursos después de una implementación correcta. Para obtener más información,consulte ¿Qué sucede durante una implementación de Amazon ECS? (p. 24).

Note

El uso de este tutorial puede producir cargos en su cuenta de AWS. Entre estos se incluyenposibles cargos por CodeDeploy, AWS Lambda y CloudWatch. Para obtener más información,consulte Precios de AWS CodeDeploy, Precios de AWS Lambda y Precios de AmazonCloudWatch.

Temas• Requisitos previos (p. 150)• Paso 1: Creación de un agente de escucha de prueba (p. 150)

Versión de API 2014-10-06149

Page 159: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos

• Paso 2: Actualización de la aplicación de Amazon ECS (p. 150)• Paso 3: Creación de una función de Lambda de enlace de ciclo de vida (p. 151)• Paso 4: Actualización del archivo AppSpec (p. 153)• Paso 5: Uso de la consola de CodeDeploy para implementar el servicio de Amazon ECS (p. 154)• Paso 6: Visualización de la salida de la función de enlace de Lambda en CloudWatch Logs (p. 155)• Paso 7: Eliminación (p. 156)

Requisitos previosPara completar correctamente este tutorial, primero debe realizar el siguiente procedimiento:

• Cumpla los requisitos previos de Requisitos previos (p. 142) para Tutorial: Implementación de unservicio de Amazon ECS (p. 140).

• Realice los pasos que se indican en Tutorial: Implementación de un servicio de Amazon ECS (p. 140).Anote lo siguiente:• Nombre del balanceador de carga.• Los nombres de los grupos de destino.• El puerto utilizado por el agente de escucha del balanceador de carga.• El ARN del balanceador de carga. Puede utilizarlo para crear un nuevo agente de escucha.• El ARN de uno de los grupos de destino. Puede utilizarlo para crear un nuevo agente de escucha.• La aplicación de CodeDeploy y el grupo de implementaciones que cree.• El AppSpec file que cree utilizado en la implementación de CodeDeploy. Puede editar este archivo en

este tutorial.

Paso 1: Creación de un agente de escucha de pruebaUna implementación de Amazon ECS con pruebas de validación requiere un segundo agente deescucha. Este agente de escucha se utiliza para ofrecer tráfico de prueba a la aplicación de Amazon ECSactualizada en un conjunto de tareas de sustitución. Las pruebas de validación se ejecutan en el tráfico deprueba.

El agente de escucha del tráfico de prueba puede utilizar cualquiera de los grupos de destino. Utiliceel comando de la AWS CLI create-listener para crear un segundo agente de escucha con una reglapredeterminada que reenvíe el tráfico de prueba al puerto 8080. Utilice el ARN del balanceador de carga yel ARN de uno de los grupos de destino.

aws elbv2 create-listener --load-balancer-arn your-load-balancer-arn \--protocol HTTP --port 8080 \--default-actions Type=forward,TargetGroupArn=your-target-group-arn --region your-aws-region

Paso 2: Actualización de la aplicación de AmazonECSEn esta sección, actualizará la aplicación de Amazon ECS para que utilice una nueva revisión de sudefinición de tarea. Puede crear la nueva revisión y añadirle una actualización secundaria añadiendo unaetiqueta.

Versión de API 2014-10-06150

Page 160: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Creación de una función deLambda de enlace de ciclo de vida

Para actualizar la definición de tarea, realice el siguiente procedimiento:

1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.2. En el panel de navegación, elija Task Definitions.3. Seleccione la casilla de verificación de la definición de tarea utilizada por el servicio de Amazon ECS.4. Elija Create new revision (Crear nueva revisión).5. Realice una pequeña actualización de la definición de la tarea añadiendo una etiqueta. En la parte

inferior de la página, en Tags (Etiquetas), cree una nueva etiqueta escribiendo un nuevo par de clave yvalor.

6. Seleccione Create. Debería ver que el número de revisión de la definición de la tarea se haincrementado en uno.

7. Seleccione la pestaña JSON. Anote el valor de taskDefinitionArn. Su formato esarn:aws:ecs:aws-region: account-id:task-definition/task-definition-family:task-definition-revision. Este es el ARN de la definición de tarea actualizada.

Paso 3: Creación de una función de Lambda deenlace de ciclo de vidaEn esta sección, implementará una función de Lambda para el enlace de AfterAllowTestTrafficde la implementación de Amazon ECS. La función de Lambda ejecuta una prueba de validación antesde instalar la aplicación de Amazon ECS actualizada. En este tutorial, la función de Lambda devuelveSucceeded. Durante una implementación real, las pruebas de validación devuelven Succeeded oFailed, en función del resultado de la prueba de validación. También durante una implementaciónreal, puede implementar una función de prueba de Lambda para uno o varios de los demás enlaces deeventos del ciclo de vida de la implementación de Amazon ECS (BeforeInstall, AfterInstall,BeforeAllowTraffic, y AfterAllowTraffic). Para obtener más información, consulte Lista deenlaces de eventos del ciclo de vida para una implementación de Amazon ECS (p. 416).

Se requiere un rol de IAM para crear la función de Lambda. El rol concede a la función de Lambda permisopara escribir en CloudWatch Logs y establecer el estado de un enlace de ciclo de vida de CodeDeploy.

Para crear un rol de IAM

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, seleccione Roles y, a continuación, Create role (Crear rol).3. Cree un rol con las propiedades siguientes:

• Trusted entity (Entidad de confianza): AWS Lambda.• Permissions (Permisos): AWSLambdaBasicExecutionRole. Esto concede a la función de Lambda

permiso para escribir en CloudWatch Logs.• Role name (Nombre de rol): lambda-cli-hook-role.

Para obtener más información, consulte Creación de un rol de ejecución de AWS Lambda.4. Asocie el permiso codedeploy:PutLifecycleEventHookExecutionStatus al rol que ha

creado. Esto concede a las funciones de Lambda permiso para establecer el estado de un enlacede ciclo de vida de CodeDeploy durante una implementación. Para obtener más información,consulte Adición de permisos de identidad de IAM en la Guía del usuario de AWS Identity and AccessManagement y PutLifecycleEventHookExecutionStatus en la Referencia de la API de CodeDeploy.

Versión de API 2014-10-06151

Page 161: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Creación de una función deLambda de enlace de ciclo de vida

Para crear una función de Lambda del enlace de AfterAllowTestTraffic, realice el siguienteprocedimiento:

1. Cree un archivo denominado AfterAllowTestTraffic.js con el siguiente contenido.

'use strict'; const AWS = require('aws-sdk'); const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'}); exports.handler = (event, context, callback) => { console.log("Entering AfterAllowTestTraffic hook."); // Read the DeploymentId and LifecycleEventHookExecutionId from the event payload var deploymentId = event.DeploymentId; var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId; var validationTestResult = "Failed"; // Perform AfterAllowTestTraffic validation tests here. Set the test result // to "Succeeded" for this tutorial. console.log("This is where AfterAllowTestTraffic validation tests happen.") validationTestResult = "Succeeded"; // Complete the AfterAllowTestTraffic hook by sending CodeDeploy the validation status var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: validationTestResult // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. console.log('AfterAllowTestTraffic validation tests failed'); console.log(err, err.stack); callback("CodeDeploy Status update failed"); } else { // Validation succeeded. console.log("AfterAllowTestTraffic validation tests succeeded"); callback(null, "AfterAllowTestTraffic validation tests succeeded"); } }); }

2. Cree un paquete de implementación de Lambda.

zip AfterAllowTestTraffic.zip AfterAllowTestTraffic.js

3. Utilice el comando create-function para crear una función de Lambda para el enlace deAfterAllowTestTraffic.

aws lambda create-function --function-name AfterAllowTestTraffic \ --zip-file fileb://AfterAllowTestTraffic.zip \ --handler AfterAllowTestTraffic.handler \ --runtime nodejs10.x \ --role arn:aws:iam::aws-account-id:role/lambda-cli-hook-role

Versión de API 2014-10-06152

Page 162: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Actualización del archivo AppSpec

4. Anote el ARN de la función de Lambda en la respuesta de create-function. Utilizará este ARNcuando actualice AppSpec file en la implementación CodeDeploy en el siguiente paso.

Paso 4: Actualización del archivo AppSpecEn esta sección, actualizará su AppSpec file con una sección Hooks. En la sección Hooks, debeespecificar una función de Lambda para el enlace de ciclo de vida AfterAllowTestTraffic.

Para actualizar su AppSpec file, realice el siguiente procedimiento:

1. Abra el archivo AppSpec file archivo que creó en Paso 2: Creación del archivo AppSpec (p. 143) deTutorial: Implementación de un servicio de Amazon ECS (p. 140).

2. Actualice la propiedad TaskDefinition con el ARN de definición de tarea que anotó en Paso 2:Actualización de la aplicación de Amazon ECS (p. 150).

3. Copie y pegue la sección Hooks en el archivo AppSpec file. Actualice el ARN después deAfterAllowTestTraffic con el ARN de la función de Lambda que anotó en Paso 3: Creación deuna función de Lambda de enlace de ciclo de vida (p. 151).

JSON AppSpec

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "arn:aws:ecs:aws-region-id:aws-account-id::task-definition/ecs-demo-task-definition:revision-number", "LoadBalancerInfo": { "ContainerName": "sample-website", "ContainerPort": 80 } } } } ], "Hooks": [ { "AfterAllowTestTraffic": "arn:aws:lambda:aws-region-id:aws-account-id:function:AfterAllowTestTraffic" } ]}

YAML AppSpec

version: 0.0Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "arn:aws:ecs:aws-region-id:aws-account-id::task-definition/ecs-demo-task-definition:revision-number" LoadBalancerInfo: ContainerName: "sample-website" ContainerPort: 80Hooks:

Versión de API 2014-10-06153

Page 163: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Uso de la consola de CodeDeploy

para implementar el servicio de Amazon ECS

- AfterAllowTestTraffic: "arn:aws:lambda:aws-region-id:aws-account-id:function:AfterAllowTestTraffic"

4. Guarde su AppSpec file y cárguelo en su bucket de S3.

Paso 5: Uso de la consola de CodeDeploy paraimplementar el servicio de Amazon ECSEn esta sección, debe actualizar el grupo de implementaciones especificando el puerto para el agente deescucha de prueba. Este es el agente de escucha que creó en Paso 1: Creación de un agente de escuchade prueba (p. 150). Durante la implementación, CodeDeploy ejecuta la prueba de validación durante elenlace de ciclo de vida de la implementación de AfterAllowTestTraffic utilizando el tráfico de pruebaservido al conjunto de tareas de sustitución mediante el agente de escucha de prueba. La prueba devalidación devuelve el resultado Succeeded, por lo que la implementación avanza con el siguiente eventodel ciclo de vida de la implementación. En un escenario real, la función de prueba devuelve Succeeded oFailed.

Para añadir un agente de escucha de prueba a su grupo de implementaciones, realice el siguienteprocedimiento:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CodeDeploy en https://console.aws.amazon.com/codepipeline/.

2. En el panel de navegación, elija Applications (Aplicaciones).3. Elija la aplicación que ha creado en Tutorial: Implementación de un servicio de Amazon

ECS (p. 140). Si utilizó el nombre sugerido, es ecs-demo-codedeploy-app.4. En Deployment groups (Grupos de implementaciones), elija el grupo de implementaciones que creó en

Tutorial: Implementación de un servicio de Amazon ECS (p. 140). Si utilizó el nombre recomendado,es ecs-demo-dg.

5. Elija Edit (Editar).6. En Test listener port (Puerto de agente de escucha de prueba), elija el puerto y el protocolo del agente

de escucha de prueba que creó anteriormente en este tutorial. Debe ser HTTP: 8080.7. Elija Save changes.

Para implementar la aplicación en Amazon ECS, realice el siguiente procedimiento:

1. En la página de la consola del grupo de implementaciones, elija Create deployment (Crearimplementación).

2. En Deployment group (Grupo de implementaciones), elija ecs-demo-dg.3. En Revision type (Tipo de revisión), elija My application is stored in Amazon S3 (Mi aplicación está

almacenada en Amazon S3). En Revision location (Ubicación de la revisión), escriba el nombre de subucket de S3 y AppSpec file (por ejemplo, s3://my-s3-bucket/appspec.json).

4. En Revision file type (Tipo de archivo de revisión), elija .json o .yaml, según corresponda.5. En el cuadro Deployment description (Descripción de la implementación), especifique una descripción

para la implementación (opcional).6. Elija Create deployment (Crear implementación).

Puede monitorizar la implementación en Deployment status (Estado de implementación). Después de queel 100 % del tráfico de producción se dirija al conjunto de tareas de sustitución, puede elegir Terminateoriginal task set (Terminar conjunto de tareas original) para terminar inmediatamente el conjunto de tareasoriginal. Si no elige Terminate original task set (Terminar conjunto de tareas original), el conjunto de tareasoriginal termina después de la duración especificada al crear el grupo de implementaciones.

Versión de API 2014-10-06154

Page 164: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 6: Visualización de la salida de la función

de enlace de Lambda en CloudWatch Logs

Paso 6: Visualización de la salida de la función deenlace de Lambda en CloudWatch LogsSi la implementación de CodeDeploy se realiza correctamente, las pruebas de validación en las funcionesde enlace de Lambda también se realizan correctamente. Puede confirmarlo consultando el registro de lafunción de enlace en CloudWatch Logs.

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, elija Logs (Registros). Debería ver un nuevo grupo de registros para la

función de enlace de Lambda que ha especificado en AppSpec file.

3. Elija el nuevo grupo de registros. Debe ser /aws/lambda/AfterAllowTestTrafficHook.4. Elija el flujo de registros. Si ve más de un flujo de registros, elija el que tenga la fecha y la hora más

recientes en Last Event Time (Hora del último evento).5. Expanda los eventos del flujo de registros para confirmar que la función de enlace de Lambda escribió

mensajes de éxito en el registro. A continuación se muestra cómo la función de enlace de LambdaAfterAllowTraffic se ha realizado correctamente.

Versión de API 2014-10-06155

Page 165: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 7: Eliminación

Paso 7: EliminaciónCuando termine este tutorial, debe limpiar los recursos asociados para evitar incurrir en cargos porrecursos que no está utilizando. Los nombres de recursos de este paso son los nombres sugeridos en estetutorial (por ejemplo, ecs-demo-codedeploy-app para el nombre de la aplicación de CodeDeploy). Siutilizó nombres diferentes, asegúrese de usarlos en el borrado.

Para borrar los recursos del tutorial, realice el siguiente procedimiento:

1. Utilice el comando delete-deployment-group para eliminar el grupo de implementación deCodeDeploy.

aws deploy delete-deployment-group --application-name ecs-demo-deployment-group --deployment-group-name ecs-demo-dg --region aws-region-id

2. Utilice el comando delete-application para eliminar la aplicación de CodeDeploy.

aws deploy delete-application --application-name ecs-demo-deployment-group --region aws-region-id

3. Utilice el comando delete-function para eliminar la función de enlace de Lambda.

aws lambda delete-function --function-name AfterAllowTestTraffic

4. Utilice el comando delete-log-group para eliminar el grupo de registros de CloudWatch.

aws logs delete-log-group --log-group-name /aws/lambda/AfterAllowTestTraffic

Versión de API 2014-10-06156

Page 166: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTutorial: Implementación de una función

de Lambda mediante AWS SAM

Tutorial: Implementación de una función deLambda actualizada con CodeDeploy y Modelo deaplicación sin servidor de AWS

AWS SAM es un marco de código abierto para crear aplicaciones sin servidor. Permite transformar yampliar la sintaxis YAML de una plantilla de AWS SAM en la sintaxis de AWS CloudFormation para crearaplicaciones sin servidor, como una función de Lambda. Para obtener más información, consulte ¿Qué esModelo de aplicación sin servidor de AWS?

En este tutorial, utilizará AWS SAM para crear una solución que realizará los siguientes procedimientos:

• Crea la función de Lambda.• Crea la aplicación de CodeDeploy y el grupo de implementaciones.• Crea dos funciones de Lambda que ejecutan pruebas de validación de la implementación durante los

enlaces de ciclo de vida de CodeDeploy.• Detecta cuándo se actualiza la función de Lambda. La actualización de la función de Lambda activa una

implementación de CodeDeploy que desvía de forma incremental el tráfico de producción de la versiónoriginal de la función de Lambda a la versión actualizada.

Note

Este tutorial requiere que cree recursos de que podrían dar lugar a cargos en su cuenta de AWS.Entre estos se incluyen posibles cargos por CodeDeploy, Amazon CloudWatch y AWS Lambda.Para obtener más información, consulte Precios de CodeDeploy, Precios de Amazon CloudWatchy Precios de AWS Lambda.

Temas• Requisitos previos (p. 157)• Paso 1: Configuración de la infraestructura (p. 157)• Paso 2: Actualización de la función de Lambda (p. 168)• Paso 3: Implementación de la función Lambda actualizada (p. 169)• Paso 4: Visualización de los resultados de la implementación (p. 172)• Paso 5: Eliminación (p. 174)

Requisitos previosPara completar este tutorial, primero debe realizar el siguiente procedimiento:

• Realice los pasos que se indican en Introducción a CodeDeploy (p. 37).• Instale la CLI de Modelo de aplicación sin servidor de AWS. Para obtener información, consulte

Instalación de la CLI de AWS SAM.• Cree un bucket de S3. AWS SAM carga los artefactos a los que se hace referencia en la plantilla de

AWS SAM en este bucket.

Paso 1: Configuración de la infraestructuraEn este tema se muestra cómo utilizar AWS SAM para crear archivos para su plantilla de AWS SAM y susfunciones de Lambda. A continuación, utilice los comandos AWS SAM package y deploy para generar

Versión de API 2014-10-06157

Page 167: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

los componentes en su infraestructura. Cuando la infraestructura esté lista, dispondrá de una aplicación deCodeDeploy y un grupo de implementaciones, la función de Lambda que se va a actualizar e implementary dos funciones de Lambda que contienen pruebas de validación que se ejecutan al implementar la funciónde Lambda. Cuando haya finalizado, podrá utilizar AWS CloudFormation para ver los componentes y laconsola de Lambda o la AWS CLI para probar la función de Lambda.

Temas• Creación de archivos (p. 158)• Creación de paquete de la aplicación AWS SAM (p. 165)• Implemente la aplicación AWS SAM. (p. 166)• Inspección y prueba de la infraestructura (opcional) (p. 166)

Creación de archivosPara crear su infraestructura, debe crear los siguientes archivos:

• template.yml

• myDateTimeFunction.js

• beforeAllowTraffic.js

• afterAllowTraffic.js

Temas• Creación de la plantilla AWS SAM (p. 158)• Creación de un archivo para la función de Lambda (p. 161)• Creación de un archivo para la función de Lambda BeforeAllowTraffic (p. 163)• Creación de un archivo para la función de Lambda AfterAllowTraffic (p. 164)

Creación de la plantilla AWS SAMCree un archivo de plantilla AWS SAM que especifique los componentes de su infraestructura.

Para crear la plantilla AWS SAM, realice el siguiente procedimiento:

1. Cree un directorio denominado SAM-Tutorial.2. En el directorio SAM-Tutorial, cree un archivo denominado template.yml.3. Copie el código YAML siguiente en template.yml. Esta es la plantilla de AWS SAM.

AWSTemplateFormatVersion : '2010-09-09'Transform: AWS::Serverless-2016-10-31Description: A sample SAM template for deploying Lambda functions.

Resources:✔ Details about the myDateTimeFunction Lambda function myDateTimeFunction: Type: AWS::Serverless::Function Properties: Handler: myDateTimeFunction.handler Runtime: nodejs10.x✔ Instructs your myDateTimeFunction is published to an alias named "live". AutoPublishAlias: live✔ Grants this function permission to call lambda:InvokeFunction Policies: - Version: "2012-10-17" Statement:

Versión de API 2014-10-06158

Page 168: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

- Effect: "Allow" Action: - "lambda:InvokeFunction" Resource: '*' DeploymentPreference:✔ Specifies the deployment configuration Type: Linear10PercentEvery1Minute✔ Specifies Lambda functions for deployment lifecycle hooks Hooks: PreTraffic: !Ref beforeAllowTraffic PostTraffic: !Ref afterAllowTraffic ✔ Specifies the BeforeAllowTraffic lifecycle hook Lambda function beforeAllowTraffic: Type: AWS::Serverless::Function Properties: Handler: beforeAllowTraffic.handler Policies: - Version: "2012-10-17"✔ Grants this function permission to call codedeploy:PutLifecycleEventHookExecutionStatus Statement: - Effect: "Allow" Action: - "codedeploy:PutLifecycleEventHookExecutionStatus" Resource: !Sub 'arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:${ServerlessDeploymentApplication}/*' - Version: "2012-10-17"✔ Grants this function permission to call lambda:InvokeFunction Statement: - Effect: "Allow" Action: - "lambda:InvokeFunction" Resource: !Ref myDateTimeFunction.Version Runtime: nodejs10.x✔ Specifies the name of the Lambda hook function FunctionName: 'CodeDeployHook_beforeAllowTraffic' DeploymentPreference: Enabled: false Timeout: 5 Environment: Variables: NewVersion: !Ref myDateTimeFunction.Version ✔ Specifies the AfterAllowTraffic lifecycle hook Lambda function afterAllowTraffic: Type: AWS::Serverless::Function Properties: Handler: afterAllowTraffic.handler Policies: - Version: "2012-10-17" Statement: ✔ Grants this function permission to call codedeploy:PutLifecycleEventHookExecutionStatus - Effect: "Allow" Action: - "codedeploy:PutLifecycleEventHookExecutionStatus" Resource: !Sub 'arn:aws:codedeploy:${AWS::Region}:${AWS::AccountId}:deploymentgroup:${ServerlessDeploymentApplication}/*' - Version: "2012-10-17" Statement: ✔ Grants this function permission to call lambda:InvokeFunction - Effect: "Allow" Action:

Versión de API 2014-10-06159

Page 169: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

- "lambda:InvokeFunction" Resource: !Ref myDateTimeFunction.Version Runtime: nodejs10.x✔ Specifies the name of the Lambda hook function FunctionName: 'CodeDeployHook_afterAllowTraffic' DeploymentPreference: Enabled: false Timeout: 5 Environment: Variables: NewVersion: !Ref myDateTimeFunction.Version

Esta plantilla especifica lo siguiente. Para obtener más información, consulte Conceptos de la plantilla deAWS SAM.

Una función de Lambda denominada myDateTimeFunction

Cuando se publica esta función de Lambda, la línea de AutoPublishAlias de la plantilla la vinculaa un alias denominado live. Más adelante en este tutorial, una actualización de esta funcióndesencadena una implementación de AWS CodeDeploy que desvía gradualmente el tráfico deproducción de la versión original a la versión actualizada.

Dos funciones de validación de implementación de Lambda

Las siguientes funciones de Lambda se ejecutan durante los enlaces de ciclo de vida de CodeDeploy.Las funciones contienen código que valida la implementación de myDateTimeFunction actualizado.El resultado de las pruebas de validación se transfiere a CodeDeploy utilizando su método de la APIde PutLifecycleEventHookExecutionStatus. Si la prueba de validación falla, se produce unerror en la implementación y se revisa.• CodeDeployHook_beforeAllowTraffic se ejecuta durante el enlace deBeforeAllowTraffic.

• CodeDeployHook_afterAllowTraffic se ejecuta durante el enlace de AfterAllowTraffic.

El nombre de ambas funciones comienza por CodeDeployHook_. El rol deCodeDeployRoleForLambda permite llamadas al método de invoke de Lambda solo enfunciones de Lambda con nombres que comienzan con este prefijo. Para obtener más información,consulte Sección "hooks" de AppSpec para una implementación de AWS Lambda (p. 419) yPutLifecycleEventHookExecutionStatus en la Referencia de la API de CodeDeploy.

Detección automática de una función de Lambda actualizada

El término AutoPublishAlias indica al marco de trabajo que detecte cuándo cambia la función demyDateTimeFunction y, a continuación, la implementa con el alias live.

Una configuración de implementación

La configuración de implementación determina la velocidad a la que la aplicación CodeDeploy desvíael tráfico de la versión original de la función de Lambda función a la nueva versión. Esta plantillaespecifica la configuración de implementación predefinida Linear10PercentEvery1Minute.

Note

No puede especificar una configuración de implementación personalizada en una plantillaAWS SAM. Para obtener más información, consulte Creación de una configuración deimplementación (p. 265).

Funciones de enlace de ciclo de vida de implementación

La sección Hooks especifica las funciones que se van a ejecutar durante los enlaces deeventos del ciclo de vida. PreTraffic especifica la función que se ejecuta durante el enlaceBeforeAllowTraffic. PostTraffic especifica la función que se ejecuta durante el enlaceAfterAllowTraffic.

Versión de API 2014-10-06160

Page 170: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

Permisos para que Lambda invoque otra función de Lambda

El permisolambda:InvokeFunction especificado concede al rol utilizado por la aplicaciónAWS SAM para invocar una función de Lambda. Esto es necesario cuando las funcionesCodeDeployHook_beforeAllowTraffic y CodeDeployHook_afterAllowTraffic invocan lafunción de Lambda implementada durante las pruebas de validación.

Creación de un archivo para la función de LambdaCree el archivo para la función que actualizará e implementará más adelante en este tutorial.

Note

Una función de Lambda puede utilizar cualquier tiempo de ejecución admitido por AWS Lambda.Para obtener más información, consulte Tiempos de ejecución de AWS Lambda.

Para crear su función de Lambda, realice el siguiente procedimiento:

1. Cree un archivo de texto y guárdelo como myDateTimeFunction.js en el directorio SAM-Tutorial.

2. Copie el siguiente código Node.js en myDateTimeFunction.js.

'use strict'; exports.handler = function(event, context, callback) { if (event.body) { event = JSON.parse(event.body); } var sc; // Status code var result = ""; // Response payload switch(event.option) { case "date": switch(event.period) { case "yesterday": result = setDateResult("yesterday"); sc = 200; break; case "today": result = setDateResult(); sc = 200; break; case "tomorrow": result = setDateResult("tomorrow"); sc = 200; break; default: result = { "error": "Must specify 'yesterday', 'today', or 'tomorrow'." }; sc = 400; break; } break; /* Later in this tutorial, you update this function by uncommenting this section. The framework created by AWS SAM detects the update and triggers a deployment by CodeDeploy. The deployment shifts production traffic to the updated version of this function. case "time":

Versión de API 2014-10-06161

Page 171: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

var d = new Date(); var h = d.getHours(); var mi = d.getMinutes(); var s = d.getSeconds(); result = { "hour": h, "minute": mi, "second": s }; sc = 200; break; */ default: result = { "error": "Must specify 'date' or 'time'." }; sc = 400; break; } const response = { statusCode: sc, headers: { "Content-type": "application/json" }, body: JSON.stringify( result ) }; callback(null, response); function setDateResult(option) { var d = new Date(); // Today var mo; // Month var da; // Day var y; // Year switch(option) { case "yesterday": d.setDate(d.getDate() - 1); break; case "tomorrow": d.setDate(d.getDate() + 1); default: break; } mo = d.getMonth() + 1; // Months are zero offset (0-11) da = d.getDate(); y = d.getFullYear(); result = { "month": mo, "day": da, "year": y }; return result; } };

La función de Lambda devuelve el día, el mes y el año de ayer, hoy o mañana. Más adelante en estetutorial, quite el comentario del código que actualiza la función para devolver información sobre el día o la

Versión de API 2014-10-06162

Page 172: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

hora que especifique (por ejemplo, el día, el mes y el año, o la hora, minuto y segundo actuales). El marcode trabajo creado por AWS SAM detecta e implementa la versión actualizada de la función.

Note

Esta función de Lambda también se utiliza en un tutorial de AWS Cloud9. AWS Cloud9 es unentorno de desarrollo integrado basado en la nube. Para obtener información sobre cómo crear,ejecutar, actualizar y depurar esta función en AWS Cloud9, consulte el Tutorial de AWS Lambdapara AWS Cloud9.

Creación de un archivo para la función de Lambda BeforeAllowTraffic

Cree el archivo para la función de Lambda del enlace beforeAllowTraffic.

1. Cree un archivo de texto y guárdelo como beforeAllowTraffic.js en el directorio SAM-Tutorial.

2. Copie el siguiente código Node.js en beforeAllowTraffic.js. Esta función se ejecuta durante elenlace BeforeAllowTraffic de la implementación.

'use strict'; const AWS = require('aws-sdk'); const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'}); var lambda = new AWS.Lambda(); exports.handler = (event, context, callback) => { console.log("Entering PreTraffic Hook!"); // Read the DeploymentId and LifecycleEventHookExecutionId from the event payload var deploymentId = event.DeploymentId; var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId; var functionToTest = process.env.NewVersion; console.log("BeforeAllowTraffic hook tests started"); console.log("Testing new function version: " + functionToTest); // Create parameters to pass to the updated Lambda function that // include the newly added "time" option. If the function did not // update, then the "time" option is invalid and function returns // a statusCode of 400 indicating it failed. var lambdaParams = { FunctionName: functionToTest, Payload: "{\"option\": \"time\"}", InvocationType: "RequestResponse" }; var lambdaResult = "Failed"; // Invoke the updated Lambda function. lambda.invoke(lambdaParams, function(err, data) { if (err){ // an error occurred console.log(err, err.stack); lambdaResult = "Failed"; } else{ // successful response var result = JSON.parse(data.Payload); console.log("Result: " + JSON.stringify(result)); console.log("statusCode: " + result.statusCode); // Check if the status code returned by the updated // function is 400. If it is, then it failed. If // is not, then it succeeded. if (result.statusCode != "400"){

Versión de API 2014-10-06163

Page 173: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

console.log("Validation succeeded"); lambdaResult = "Succeeded"; } else { console.log("Validation failed"); } // Complete the PreTraffic Hook by sending CodeDeploy the validation status var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: lambdaResult // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. console.log("CodeDeploy Status update failed"); console.log(err, err.stack); callback("CodeDeploy Status update failed"); } else { // Validation succeeded. console.log("CodeDeploy status updated successfully"); callback(null, "CodeDeploy status updated successfully"); } }); } }); }

Creación de un archivo para la función de Lambda AfterAllowTraffic

Cree el archivo para la función de Lambda del enlace afterAllowTraffic.

1. Cree un archivo de texto y guárdelo como afterAllowTraffic.js en el directorio SAM-Tutorial.2. Copie el siguiente código Node.js en afterAllowTraffic.js. Esta función se ejecuta durante el

enlace AfterAllowTraffic de la implementación.

'use strict'; const AWS = require('aws-sdk'); const codedeploy = new AWS.CodeDeploy({apiVersion: '2014-10-06'}); var lambda = new AWS.Lambda(); exports.handler = (event, context, callback) => { console.log("Entering PostTraffic Hook!"); // Read the DeploymentId and LifecycleEventHookExecutionId from the event payload var deploymentId = event.DeploymentId; var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId; var functionToTest = process.env.NewVersion; console.log("AfterAllowTraffic hook tests started"); console.log("Testing new function version: " + functionToTest); // Create parameters to pass to the updated Lambda function that // include the original "date" parameter. If the function did not // update as expected, then the "date" option might be invalid. If // the parameter is invalid, the function returns // a statusCode of 400 indicating it failed.

Versión de API 2014-10-06164

Page 174: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

var lambdaParams = { FunctionName: functionToTest, Payload: "{\"option\": \"date\", \"period\": \"today\"}", InvocationType: "RequestResponse" }; var lambdaResult = "Failed"; // Invoke the updated Lambda function. lambda.invoke(lambdaParams, function(err, data) { if (err){ // an error occurred console.log(err, err.stack); lambdaResult = "Failed"; } else{ // successful response var result = JSON.parse(data.Payload); console.log("Result: " + JSON.stringify(result)); console.log("statusCode: " + result.statusCode); // Check if the status code returned by the updated // function is 400. If it is, then it failed. If // is not, then it succeeded. if (result.statusCode != "400"){ console.log("Validation of time parameter succeeded"); lambdaResult = "Succeeded"; } else { console.log("Validation failed"); } // Complete the PostTraffic Hook by sending CodeDeploy the validation status var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: lambdaResult // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. console.log("CodeDeploy Status update failed"); console.log(err, err.stack); callback("CodeDeploy Status update failed"); } else { // Validation succeeded. console.log("CodeDeploy status updated successfully"); callback(null, "CodeDeploy status updated successfully"); } }); } }); }

Creación de paquete de la aplicación AWS SAMAhora debería tener cuatro archivos en su directorio SAM-Tutorial:

• beforeAllowTraffic.js

• afterAllowTraffic.js

• myDateTimeFunction.js

• template.yml

Versión de API 2014-10-06165

Page 175: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

Ahora está listo para utilizar el comando sam package de AWS SAM para crear y empaquetar artefactospara las funciones de Lambda y la aplicación de CodeDeploy. Los artefactos se cargan en un bucket deS3. El resultado del comando es un nuevo archivo llamado package.yml. El comando sam deploy deAWS SAM utiliza este archivo en el siguiente paso.

Note

El comando sam package es un alias para el comando AWS CLI de aws cloudformationpackage. Para obtener más información, consulte Paquete en la Referencia de la CLI de AWSCloudFormation.

En el directorio SAM-Tutorial, ejecute el siguiente elemento.

sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucket your-S3-bucket

Para el parámetro s3-bucket, especifique el bucket de Amazon S3 que ha creado como requisitoprevio para este tutorial. output-template-file especifica el nombre del nuevo archivo que utiliza elcomando sam deploy de AWS SAM.

Implemente la aplicación AWS SAM.Utilice el comando sam deploy de AWS SAM con el archivo package.yml para crear las funciones deLambda y el grupo de implementaciones y aplicaciones de CodeDeploy mediante AWS CloudFormation.

Note

El comando sam deploy es un alias para el comando AWS CLI de aws cloudformation deploy.Para obtener más información, consulte Implementación en la Referencia de la CLI de AWSCloudFormation.

En el directorio SAM-Tutorial, ejecute el siguiente comando.

sam deploy \ --template-file package.yml \ --stack-name my-date-time-app \ --capabilities CAPABILITY_IAM

El parámetro --capabilities CAPABILITY_IAM es necesario para autorizar a AWS CloudFormation acrear roles de IAM.

Inspección y prueba de la infraestructura (opcional)En este tema se muestra cómo ver los componentes de la infraestructura y probar la función de Lambda.

Para ver el resultado de la pila después de ejecutar sam deploy, realice el siguienteprocedimiento:

1. Abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation.2. En el panel de navegación, seleccione Stacks. La pila my-date-time-app aparece en la parte

superior.3. Elija la pestaña Events (Eventos) para ver qué eventos se han completado. Puede ver los eventos

mientras la creación de la pila está en curso. Cuando se haya completado la creación de la pila, podráver todos los eventos de creación esta.

Versión de API 2014-10-06166

Page 176: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Configuración de la infraestructura

4. Con la pila seleccionada, elija Resources (Recursos). En la columna Type (Tipo), puede ver lasfunciones de Lambda, myDateTimeFunction, CodeDeployHook_beforeAllowTraffic yCodeDeployHook_afterAllowTraffic. La columna Physical ID (ID físico) de cada una de lasfunciones de Lambda contiene un enlace para ver las funciones en la consola de Lambda.

Note

El nombre de la función de Lambda myDateTimeFunction aparece antepuesto al nombrede la pila AWS CloudFormation y tiene un identificador añadido, por lo que tiene un aspectosimilar a my-date-time-app-myDateTimeFunction-123456ABCDEF.

5. Abra la consola de CodeDeploy en https://console.aws.amazon.com/codedeploy/.6. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).7. Debería ver una nueva aplicación de CodeDeploy creada por AWS CloudFormation con un nombre

que comienza por my-date-time-app-ServerlessDeploymentApplication. Elija estaaplicación.

8. Debería ver un grupo de implementaciones con un nombre que comienza por my-date-time-app-myDateTimeFunctionDeploymentGroup. Elija este grupo de implementaciones.

En Deployment configuration (Configuración de implementación), debería verCodeDeployDefault.LambdaLinear10PercentEvery1Minute.

Para probar la función (consola) (opcional), realice el siguiente procedimiento:

1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.2. En el panel de navegación, elija la función my-date-time-app-myDateTimeFunction. En la

consola, su nombre contiene un identificador, por lo que tendrá un aspecto similar a my-date-time-app-myDateTimeFunction-123456ABCDEF.

3. Elija Test.4. En Event name (Nombre del evento), escriba un nombre para el evento de prueba.5. Escriba lo siguiente para el evento de prueba y, a continuación, elija Create (Crear).

{ "option": "date", "period": "today"}

6. Elija Test. Solo debería ver el evento de prueba en la lista de eventos de prueba.

En Execution result (Resultado de ejecución), debería ver succeeded (correcto).7. En Execution result (Resultado de ejecución), expanda Details (Detalles) para ver los resultados.

Debería ver el mes, día y año actuales.

Para probar la función (AWS CLI) (opcional), realice el siguiente procedimiento:

1. Localice el ARN de la función de Lambda. Aparece en la parte superior de la consola de Lambdacuando se visualiza la función.

2. Ejecute el comando siguiente. Sustituya your-function-arn por el ARN de la función.

aws lambda invoke \--function your-function-arn \--payload "{\"option\": \"date\", \"period\": \"today\"}" out.txt

3. Abra out.txt para confirmar que el resultado contiene el mes, el día y el año actuales.Versión de API 2014-10-06

167

Page 177: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 2: Actualización de la función de Lambda

Paso 2: Actualización de la función de LambdaEn este tema, actualizará el archivo myDateTimeFunction.js. En el siguiente paso, utilizará el archivopara implementar la función actualizada. Esto activa CodeDeploy para realizar la implementación medianteel desvío del tráfico de producción de la versión actual de la función de Lambda a la versión actualizada.

Para actualizar la función de Lambda, realice el siguiente procedimiento:

1. Abrir myDateTimeFunction.js.2. Elimine los dos marcadores de comentario ("/*" y "*/") y el texto explicativo al principio y al final del

case denominado time en el bloque switch.

El código sin comentarios le permite transferir un nuevo parámetro, time, a la función. Si pasa time ala función actualizada, devuelve el valor actual hour, minute y second.

3. Guarde myDateTimeFunction.js. Debe parecerse a lo siguiente:

'use strict';

exports.handler = function(event, context, callback) {

if (event.body) { event = JSON.parse(event.body); }

var sc; // Status code var result = ""; // Response payload

switch(event.option) { case "date": switch(event.period) { case "yesterday": result = setDateResult("yesterday"); sc = 200; break; case "today": result = setDateResult(); sc = 200; break; case "tomorrow": result = setDateResult("tomorrow"); sc = 200; break; default: result = { "error": "Must specify 'yesterday', 'today', or 'tomorrow'." }; sc = 400; break; } break; case "time": var d = new Date(); var h = d.getHours(); var mi = d.getMinutes(); var s = d.getSeconds();

result = { "hour": h, "minute": mi, "second": s }; sc = 200;

Versión de API 2014-10-06168

Page 178: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Implementación de la función Lambda actualizada

break;

default: result = { "error": "Must specify 'date' or 'time'." }; sc = 400; break; }

const response = { statusCode: sc, headers: { "Content-type": "application/json" }, body: JSON.stringify( result ) };

callback(null, response);

function setDateResult(option) {

var d = new Date(); // Today var mo; // Month var da; // Day var y; // Year

switch(option) { case "yesterday": d.setDate(d.getDate() - 1); break; case "tomorrow": d.setDate(d.getDate() + 1); default: break; }

mo = d.getMonth() + 1; // Months are zero offset (0-11) da = d.getDate(); y = d.getFullYear();

result = { "month": mo, "day": da, "year": y };

return result; }};

Paso 3: Implementación de la función LambdaactualizadaEn este paso, utilizará el myDateTimeFunction.js actualizado para actualizar e iniciar laimplementación de la función de Lambda. Puede monitorizar el progreso de la implementación en laconsola de CodeDeploy o AWS Lambda.

La línea de AutoPublishAlias: live de la plantilla de AWS SAM hace que la infraestructuradetecte actualizaciones en funciones que utilizan el alias live. La actualización de la función activa unaimplementación de CodeDeploy que desvía el tráfico de producción de la versión original de la función a laversión actualizada.

Versión de API 2014-10-06169

Page 179: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Implementación de la función Lambda actualizada

Los comandos sam package y sam deploy se utilizan para actualizar y activar la implementación de lafunción de Lambda. Ha ejecutado estos comandos en Creación de paquete de la aplicación AWS SAM (p. 165) y Implemente la aplicación AWS SAM. (p. 166).

Para implementar la función de Lambda actualizada, realice el siguiente procedimiento:

1. En el directorio SAM-Tutorial, ejecute el siguiente comando.

sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucket your-S3-bucket

Esto crea un nuevo conjunto de artefactos que hacen referencia a la función de Lambda actualizadaen el bucket de S3.

2. En el directorio SAM-Tutorial, ejecute el siguiente comando.

sam deploy \ --template-file package.yml \ --stack-name my-date-time-app \ --capabilities CAPABILITY_IAM

Dado que el nombre de la pila sigue siendo my-date-time-app, AWS CloudFormation reconoceque se trata de una actualización de la pila. Para ver la pila actualizada, devuelva la consola de AWSCloudFormation y, en el panel de navegación, elija Stacks (Pilas).

Para ver el tráfico durante una implementación (consola de CodeDeploy) (opcional), realice elsiguiente procedimiento:

1. Abra la consola de CodeDeploy en https://console.aws.amazon.com/codedeploy/.2. En el panel de navegación, expanda Applications (Aplicaciones) y, a continuación, elija la aplicación

my-date-time-app-ServerlessDeploymentApplication.3. En Deployment groups (Grupos de implementaciones), elija el grupo de implementaciones de la

aplicación. Su estado debe ser In progress (En curso).4. En Deployment group history (Historial de grupos de implementaciones), elija la implementación que

está en curso.

La barra de progreso Traffic shifting (Desvío de tráfico) y los porcentajes de los cuadros Original yReplacement (Sustitución) de esta página muestran su progreso.

Versión de API 2014-10-06170

Page 180: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Implementación de la función Lambda actualizada

Para ver el tráfico durante una implementación (consola de Lambda) (opcional), realice elsiguiente procedimiento:

1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.2. En el panel de navegación, elija la función my-date-time-app-myDateTimeFunction. En la

consola, su nombre contiene un identificador, por lo que tendrá un aspecto similar a my-date-time-app-myDateTimeFunction-123456ABCDEF.

3. Elija Qualifiers (Cualificadores), Aliases (Alias) y, a continuación, live (activo).

Las ponderaciones situadas junto a la versión original de la función (versión 1) y la versión actualizadade la función (versión 2) muestran la cantidad de tráfico que se ofrece a cada versión en el momento enque se cargó esta página de la consola de AWS Lambda. La página no actualiza las ponderaciones con elpaso del tiempo. Si actualiza la página una vez al minuto, la ponderación de la versión 1 disminuye en un10 por ciento y la ponderación de la versión 2 aumenta en un 10 por ciento hasta que la ponderación de laversión 2 es 100.

Versión de API 2014-10-06171

Page 181: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Visualización de los

resultados de la implementación

Paso 4: Visualización de los resultados de laimplementaciónEn este paso, podrá ver los resultados de la implementación. Si la implementación se realizacorrectamente, puede confirmar que la función de Lambda actualizada recibe tráfico de producción. Sise produce un error en la implementación, puede utilizar CloudWatch Logs para ver el resultado de laspruebas de validación en la función de Lambda que se ejecuta durante los enlaces del ciclo de vida de laimplementación.

Temas• Prueba de la función implementada (p. 172)• Visualización de eventos de enlace en CloudWatch Logs (p. 173)

Prueba de la función implementadaEl comando sam deploy actualiza la función de Lambda my-date-time-app-myDateTimeFunction.La versión de la función se actualiza a 2 y se añade al alias live.

Para ver la actualización en la consola de Lambda, realice el siguiente procedimiento:

1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.2. En el panel de navegación, elija la función my-date-time-app-myDateTimeFunction. En la

consola, su nombre contiene un identificador, por lo que tendrá un aspecto similar a my-date-time-app-myDateTimeFunction-123456ABCDEF.

3. Elija Qualifiers (Cualificadores) y, a continuación, Aliases (Alias). Una vez completada laimplementación (aproximadamente 10 minutos), para el aliaslive alias, debería ver Version: 2(Versión: 2).

Versión de API 2014-10-06172

Page 182: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Visualización de los

resultados de la implementación

4. En Function code (Código de función), consulte el código fuente de la función. Deben aparecer loscambios.

5. Puede utilizar las instrucciones de prueba de Paso 2: Actualización de la función de Lambda (p. 168)para probar la función actualizada (opcional). Cree un nuevo evento de prueba con la siguiente cargay, a continuación, confirme que el resultado contiene la hora, el minuto y el segundo actuales.

{ "option": "time" }

Para utilizar la AWS CLI para probar la función actualizada, ejecute el siguiente comando y, acontinuación, abra out.txt para confirmar que el resultado contiene la hora, el minuto y el segundoactuales.

aws lambda invoke --function your-function-arn --payload "{\"option\": \"time\"}" out.txt

Note

Si utiliza la AWS CLI para probar la función antes de que se complete la implementación,es posible que reciba resultados inesperados. Esto se debe a que CodeDeploy desvíaprogresivamente el 10 por ciento del tráfico a la versión actualizada cada minuto. Durantela implementación, parte del tráfico sigue apuntando a la versión original, por lo queaws lambda invoke podría utilizar la versión original. Después de 10 minutos, laimplementación se ha completado y todo el tráfico apunta a la nueva versión de la función.

Visualización de eventos de enlace en CloudWatch LogsDurante el enlace BeforeAllowTraffic, CodeDeploy ejecuta la función de LambdaCodeDeployHook_beforeAllowTraffic. Durante el enlace AfterAllowTraffic, CodeDeployejecuta la función de Lambda CodeDeployHook_afterAllowTraffic. Cada función ejecuta unaprueba de validación que invoca la versión actualizada de la función mediante el nuevo parámetrotime. Si la actualización de la función Lambda se realiza correctamente, la opción time no provocaun error y la validación se realiza correctamente. Si la función no se ha actualizado, el parámetro noreconocido provoca un error y la validación falla. Estas pruebas de validación son solo para fines dedemostración. Puede escribir sus propias pruebas para validar la implementación. Puede utilizar la consolade CloudWatch Logs para ver las pruebas de validación.

Para ver los eventos de enlace de CodeDeploy, realice el siguiente procedimiento:

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, elija Logs (Registros).

Versión de API 2014-10-06173

Page 183: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Eliminación

3. En la lista de grupos de registros, elija /aws/lambda/CodeDeployHook_beforeAllowTraffic o /aws/lambda/CodeDeployHook_afterAllowTraffic.

4. Elija el flujo de registros. Debe ver solo uno.5. Expanda los eventos para ver sus detalles.

Paso 5: EliminaciónPara evitar cargos adicionales por los recursos que ha utilizado durante este tutorial, elimine los recursoscreados por la plantilla de AWS SAM y los registros de CloudWatch creados por las funciones devalidación de Lambda.

Para eliminar la pila de AWS CloudFormation

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

2. En la columna Stacks (Pilas), elija la pila de my-date-time-app y, a continuación, elija Delete(Eliminar).

3. Cuando se le solicite, elija Delete stack (Eliminar pila). Las funciones de Lambda, la aplicación deCodeDeploy y el grupo de implementaciones y los roles de IAM creados por AWS SAM se eliminan.

Para eliminar los registros en CloudWatch Logs, realice el siguiente procedimiento:

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, elija Logs (Registros).

Versión de API 2014-10-06174

Page 184: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 5: Eliminación

3. En la lista de grupos de registros, elija el botón situado junto a /aws/lambda/CodeDeployHook_beforeAllowTraffic.

4. En Actions (Acciones), elija Delete log group (Eliminar grupo de registros), y, a continuación, Yes,Delete (Sí, eliminar).

5. En la lista de grupos de registros, elija el botón situado junto a /aws/lambda/CodeDeployHook_afterAllowTraffic.

6. En Actions (Acciones), elija Delete log group (Eliminar grupo de registros), y, a continuación, Yes,Delete (Sí, eliminar).

Versión de API 2014-10-06175

Page 185: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSistemas operativos admitidos por el agente de CodeDeploy

Trabajar con el agente deCodeDeploy

El agente de CodeDeploy es un paquete de software que, una vez instalado y configurado en unainstancia, permite utilizar dicha instancia en implementaciones de CodeDeploy. Debe usar la versión1.0.1.1458 o una versión posterior. Si ejecuta una versión anterior, las implementaciones en las instanciaspodrían producir un error.

Note

El agente de CodeDeploy solo es necesario si se realiza la implementación en una EC2/On-Premises plataforma de computación. El agente no es necesario para las implementaciones queutilizan la plataforma de computación Amazon ECS o AWS Lambda.

Un archivo de configuración se coloca en la instancia cuando se instala el agente. Este archivo se utilizapara especificar cómo funciona el agente. Este archivo de configuración especifica las rutas de directorioy otros ajustes que usa AWS CodeDeploy cuando interactúa con la instancia. Puede cambiar algunasde las opciones de configuración en el archivo. Para obtener información sobre cómo trabajar con elarchivo de configuración del agente de CodeDeploy, consulte Referencia de configuración del agente deCodeDeploy (p. 435).

Para obtener más información sobre cómo usar el agente de CodeDeploy (por ejemplo, los pasospara instalar, actualizar y verificar versiones), consulte Gestión de las operaciones del agente deCodeDeploy (p. 184).

Temas• Sistemas operativos admitidos por el agente de CodeDeploy (p. 176)• Protocolo y puerto de comunicación para el agente de CodeDeploy (p. 177)• Historial de versiones del agente de CodeDeploy (p. 177)• Limpieza de revisiones de aplicación y archivos log (p. 181)• Archivos instalados por el agente de CodeDeploy (p. 182)• Gestión de las operaciones del agente de CodeDeploy (p. 184)

Sistemas operativos admitidos por el agente deCodeDeploy

Sistemas operativos de AMI de Amazon EC2compatiblesEl agente de CodeDeploy se ha probado en los siguientes sistemas operativos de AMI de Amazon EC2:

• Amazon Linux 2018.03.x, 2017.03.x, 2016.09.x, 2016.03.x, y 2014.09.x• Amazon Linux 2 (ARM, x86)• Ubuntu Server 18.04 LTS, 16.04 LTS y 14.04 LTS• Microsoft Windows Server 2019, 2016, 2012 R2, y 2008 R2• Red Hat Enterprise Linux (RHEL) 7.x

Versión de API 2014-10-06176

Page 186: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSistemas operativos on-premises compatibles

El agente de CodeDeploy está disponible como código abierto para que pueda adaptarlo a susnecesidades. Se puede utilizar con otros sistemas operativos de AMI de Amazon EC2. Para obtener másinformación, vaya al repositorio de Agente de CodeDeploy en GitHub.

Sistemas operativos on-premises compatiblesEl agente de CodeDeploy se ha probado en los siguientes sistemas operativos on-premises:

• Ubuntu Server 18.04 LTS, 16.04 LTS y 14.04 LTS• Microsoft Windows Server 2019, 2016, 2012 R2, y 2008 R2• Red Hat Enterprise Linux (RHEL) 7.x

El agente de CodeDeploy está disponible como código abierto para que pueda adaptarlo a susnecesidades. Se puede utilizar con otros sistemas operativos de instancias on-premises. Para obtener másinformación, vaya al repositorio de Agente de CodeDeploy en GitHub.

Protocolo y puerto de comunicación para el agentede CodeDeploy

El agente de CodeDeploy se comunica con el exterior a través de HTTPS en el puerto 443.

Cuando el agente de CodeDeploy se ejecuta en una instancia EC2, utilizará el punto de enlace demetadatos de EC2 para recuperar información relacionada con la instancia. Obtenga más informaciónsobre la limitación y la concesión de acceso al servicio de metadatos de instancia.

Historial de versiones del agente de CodeDeploySus instancias se deben ejecutar en una versión compatible del agente de CodeDeploy. La versiónmínima admitida actualmente es 1.0.1.1458. Si ejecuta una versión anterior, las implementaciones en lasinstancias podrían producir un error.

En la siguiente tabla se muestran todas las versiones del agente de CodeDeploy y las características ymejoras incluidas con cada versión.

Versión Fecha de la versión Detalles

1.1.0 30 de junio de 2020 Cambiado: el control de versiones del agente de CodeDeploysigue ahora la convención de control de versiones estándar deRuby.

Agregado: nuevo parámetro del comando de instalación yactualización para permitir la instalación de una versión específicadel agente desde la línea de comandos.

Eliminado: se ha eliminado el actualizador automático delagente de CodeDeploy para Linux y Ubuntu. Para configurarlas actualizaciones automáticas del agente de CodeDeploy,consulte Instalación del agente de CodeDeploy mediante AWSAdministrador de sistemas.

1.0.1.1597 15 de noviembre de2018

Mejora: CodeDeploy admite Ubuntu 18.04.

Versión de API 2014-10-06177

Page 187: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioHistorial de versiones del agente de CodeDeploy

Versión Fecha de la versión DetallesMejora: CodeDeploy admite Ruby 2.5.

Mejora: CodeDeploy admite puntos de enlace de FIPS. Paraobtener más información sobre los puntos de enlace de FIPS,consulte Información general sobre FIPS 140-2. Para obtenerinformación sobre los puntos de enlace que se pueden utilizar conCodeBuild, consulte Regiones y puntos de enlace de CodeDeploy.

1.0.1.1518 12 de junio de 2018 Mejora: se corrigió un problema que provocada un error al cerrarel agente de CodeDeploy mientras aceptaba solicitudes desondeo.

Mejora: se añadió una característica de seguimiento deimplementación que evita que el agente de CodeDeploy se cierrecuando una implementación está en curso.

Mejora: se mejoró el desempeño al eliminar archivos.

1.0.1.1458 6 de marzo de 2018 Important

La versión mínima admitida del agente de CodeDeploy es1.0.1.1458. El uso de un agente de CodeDeploy anteriorpodría producir un error en las implementaciones.

Mejora: se han mejorado las validaciones certificado para admitirmás autoridades de confianza.

Mejora: se ha corregido un problema que provocaba que lainterfaz de línea de comandos (CLI) local devolviera un errordurante una implementación que incluía un evento de ciclo de vidaBeforeInstall.

Mejora: se ha corregido un problema que podría provocar el errorde una implementación activa cuando se actualiza el agente deCodeDeploy.

1.0.1.1352 16 de noviembre de2017

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Característica: se ha incluido una nueva característica para probary depurar una implementación de EC2/On-Premises en unainstancia o equipo local en el que esté instalado el agente deCodeDeploy.

1.0.1.1106 16 de mayo de 2017 Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Característica: se introdujo nueva compatibilidad para eltratamiento de contenido en una ubicación de destino que noformaba parte de la revisión de la aplicación de la implementacióncorrecta más reciente. Las opciones de implementación parael contenido existente incluyen ahora conservar el contenido,sobrescribir el contenido o hacer fracasar la implementación.

Mejora: el agente de CodeDeploy ahora es compatible con laversión 2.9.2 del AWS SDK parar Ruby (aws-sdk-core 2.9.2).

Versión de API 2014-10-06178

Page 188: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioHistorial de versiones del agente de CodeDeploy

Versión Fecha de la versión Detalles

1.0.1.1095 29 de marzo de 2017 Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Mejora: se introdujo compatibilidad con el agente de CodeDeployen Región China (Pekín).

Mejora: se puede ejecutar Puppet en instancias de WindowsServer cuando las invoca un enlace de evento de ciclo de vida.

Mejora: se ha mejorado el tratamiento de las operaciones untar.

1.0.1.1067 6 de enero de 2017 Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Mejora: se han revisado muchos mensajes de error para incluirmás causas específicas para los errores de implementación.

Mejora: se ha resuelto un problema que impedía al agente deCodeDeploy identificar la revisión de la aplicación correcta que sedebe implementar durante algunas implementaciones.

Mejora: se ha revertido el uso de pushd y popd antes y despuésde la operación untar.

1.0.1.1045 21 de noviembre de2016

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Mejora: el agente de CodeDeploy ahora es compatible con laversión 2.6.11 del AWS SDK parar Ruby (aws-sdk-core 2.6.11).

1.0.1.1037 19 de octubre de2016

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

El agente de CodeDeploy para las instancias de Amazon Linux,RHEL y Ubuntu Server se ha actualizado con el siguiente cambio.Para las instancias de Windows Server, la última versión siguesiendo 1.0.1.998.

Mejora: el agente puede determinar ahora qué versión de Rubyestá instalada en una instancia para que pueda invocar el scriptcodedeploy-agent usando esa versión.

1.0.1.1011.1 17 de agosto de2016

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Mejora: se han eliminado los cambios introducidos por la versión1.0.1.1011 debido a problemas de compatibilidad con el shell.Esta versión del agente es funcionalmente equivalente a la versión1.0.1.998 publicada el 11 de julio de 2016.

Versión de API 2014-10-06179

Page 189: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioHistorial de versiones del agente de CodeDeploy

Versión Fecha de la versión Detalles

1.0.1.1011 15 de agosto de2016

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

El agente de CodeDeploy para las instancias de Amazon Linux,RHEL y Ubuntu Server se ha actualizado con los siguientescambios. Para las instancias de Windows Server, la última versiónsigue siendo 1.0.1.998.

Característica: se ha añadido compatibilidad para invocar elagente de CodeDeploy mediante el shell bash en sistemasoperativos en los que se usa el sistema systemd init.Mejora: se permite utilizar todas las versiones de Ruby 2.x enel agente de CodeDeploy y en el actualizador del agente deCodeDeploy. Los agentes de CodeDeploy actualizados ya nodependen solo de Ruby 2.0. (Ruby 2.0 sigue siendo necesariopara las versiones deb y rpm del instalador del agente deCodeDeploy).

1.0.1.998 11 de julio de 2016 Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Mejora: se ha corregido la compatibilidad para ejecutar elagente de CodeDeploy con perfiles de usuario distintos deroot. La variable denominada USER se ha sustituido porCODEDEPLOY_USER para evitar conflictos con variables delentorno.

1.0.1.966 16 de junio de 2016 Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Característica: se ha introducido compatibilidad para ejecutar elagente de CodeDeploy con perfiles de usuario distintos de root.

Mejora: se ha corregido la compatibilidad para especificar elnúmero de revisiones de aplicación que desea que el agente deCodeDeploy archive para un grupo de implementaciones.

Mejora: el agente de CodeDeploy ahora es compatible con laversión 2.3 del AWS SDK parar Ruby (aws-sdk-core 2.3).

Mejora: se han solucionado los problemas con la codificaciónUTF-8 durante las implementaciones.

Mejora: se ha mejorado la precisión durante la identificación denombres de proceso.

1.0.1.950 24 de marzo de 2016 Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Característica: se ha añadido compatibilidad con el proxy deinstalación.

Mejora: se ha actualizado el script de instalación para que nodescargue el agente de CodeDeploy si la última versión ya estáinstalada.

Versión de API 2014-10-06180

Page 190: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLimpieza de revisiones de aplicación y archivos log

Versión Fecha de la versión Detalles

1.0.1.934 11 de febrero de2016

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podrían producir un error.

Característica: se ha añadido compatibilidad para especificar elnúmero de revisiones de aplicación que desea que el agente deCodeDeploy archive para un grupo de implementaciones.

1.0.1.880 11 de enero de 2016 Nota: esta versión ya no se admite y podría producir un error enlas implementaciones.

Mejora: el agente de CodeDeploy ahora es compatible con laversión 2.2 del AWS SDK parar Ruby (aws-sdk-core 2.2). Laversión 2.1.2 sigue siendo compatible.

1.0.1.854 17 de noviembre de2015

Nota: esta versión ya no se admite. Si utiliza esta versión, lasimplementaciones podría producir un error.

Característica: se ha introducido compatibilidad con el algoritmohash SHA-256.

Característica: se ha introducido compatibilidad con el seguimientode versiones en los archivos .version.

Característica: el ID del grupo de implementaciones ahora estádisponible mediante el uso de una variable de entorno.

Mejora: se ha añadido compatibilidad para monitorizar losregistros del agente de CodeDeploy mediante AmazonCloudWatch Logs.

Para obtener información relacionada, consulte los siguientes temas:

• Determinación de la versión del agente de CodeDeploy (p. 186)• Instalación del agente de CodeDeploy (p. 187)

Para ver un historial de versiones del agente de CodeDeploy, consulte Release Repository on GitHub.

Limpieza de revisiones de aplicación y archivos logEl agente de CodeDeploy archiva las revisiones y los archivos log en instancias. El agente de CodeDeploylimpia estos artefactos para ahorrar espacio en disco.

Logs de implementación de revisiones de aplicación: puede usar la opción :max_revisions: en el archivo deconfiguración del agente para especificar el número de revisiones de la aplicación que se deben archivarintroduciendo un número entero positivo. CodeDeploy archiva también los archivos log de esas revisiones.El resto se elimina, a excepción del archivo log de la última implementación correcta. Este archivo logse conserva siempre, aunque el número de implementaciones que han producido un error sea superioral número de revisiones conservadas. Si no se especifica ningún valor, CodeDeploy conserva las cincorevisiones más recientes además de la revisión implementada en la actualidad.

Logs de CodeDeploy: para las instancias de Amazon Linux, Ubuntu Server y RHEL, el agente deCodeDeploy rota los archivos de log en la carpeta /var/log/aws/codedeploy-agent. El archivo logrota a las 00:00:00 (hora de la instancia) cada día. Los archivos log se eliminan al cabo de siete días. Elpatrón de nomenclatura para los archivos log movidos es codedeploy-agent.YYYYMMDD.log.

Versión de API 2014-10-06181

Page 191: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioArchivos instalados por el agente de CodeDeploy

Archivos instalados por el agente de CodeDeployEl agente de CodeDeploy almacena las revisiones, el historial de implementación y los scripts deimplementación en su directorio raíz en una instancia. El nombre predeterminado y la ubicación de estedirectorio es:

'/opt/codedeploy-agent/deployment-root' para las instancias Amazon Linux, Ubuntu Server yRHEL.

'C:\ProgramData\Amazon\CodeDeploy' para las instancias Windows Server.

Puede utilizar el valor root_dir en el archivo de configuración de agente de CodeDeploy para configurar elnombre y la ubicación del directorio. Para obtener más información, consulte Referencia de configuracióndel agente de CodeDeploy (p. 435).

A continuación se muestra un ejemplo del archivo y de la estructura de directorios bajo el directorio raíz.La estructura supone que hay un número N de grupos de implementación y cada grupo de implementacióncontiene un número N de implementaciones.

|--deployment-root/|-- deployment group 1 ID | |-- deployment 1 ID | | |-- Contents and logs of the deployment's revision| |-- deployment 2 ID| | |-- Contents and logs of the deployment's revision| |-- deployment N ID| | |-- Contents and logs of the deployment's revision|-- deployment group 2 ID| |-- deployment 1 ID| | |-- bundle.tar| | |-- deployment-archive| | | | -- contents of the deployment's revision| | |-- logs| | | | -- scripts.log | |-- deployment 2 ID| | |-- bundle.tar| | |-- deployment-archive| | | | -- contents of the deployment's revision| | |-- logs| | | | -- scripts.log | |-- deployment N ID| | |-- bundle.tar| | |-- deployment-archive| | | | -- contents of the deployment's revision| | |-- logs| | | | -- scripts.log |-- deployment group N ID| |-- deployment 1 ID| | |-- Contents and logs of the deployment's revision| |-- deployment 2 ID| | |-- Contents and logs of the deployment's revision| |-- deployment N ID| | |-- Contents and logs of the deployment's revision|-- deployment-instructions| |-- [deployment group 1 ID]_cleanup| |-- [deployment group 2 ID]_cleanup| |-- [deployment group N ID]_cleanup| |-- [deployment group 1 ID]_install.json| |-- [deployment group 2 ID]_install.json| |-- [deployment group N ID]_install.json| |-- [deployment group 1 ID]_last_successful_install| |-- [deployment group 2 ID]_last_successful_install

Versión de API 2014-10-06182

Page 192: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioArchivos instalados por el agente de CodeDeploy

| |-- [deployment group N ID]_last_successful_install| |-- [deployment group 1 ID]_most_recent_install| |-- [deployment group 2 ID]_most_recent_install| |-- [deployment group N ID]_most_recent_install|-- deployment-logs| |-- codedeploy-agent-deployments.log

• Las carpetas Deployment Group ID (ID de grupo de implementaciones) representan cada uno desus grupos de implementaciones. El nombre de un directorio de grupo de implementaciones es suID (por ejemplo, acde1916-9099-7caf-fd21-012345abcdef). Cada directorio de grupo deimplementaciones contiene un subdirectorio para cada implementación que se ha intentado en dichogrupo de implementaciones.

Puede utilizar el comando batch-get-deployments para buscar un ID de grupo de implementaciones.• Las carpetas Deployment ID (ID de implementación) representan cada implementación en un grupo de

implementaciones. El nombre de cada directorio de implementación es su ID. Cada carpeta contiene:• bundle.tar, un archivo comprimido con el contenido de la revisión de la implementación. Utilice una

utilidad de descompresión zip si desea ver la revisión.• deployment-archive, un directorio que contiene el contenido de la revisión de la implementación.• logs, un directorio que contiene un archivo scripts.log. Este archivo indica el resultado de todos

los scripts especificados en el AppSpec file de la implementación.

Si desea buscar la carpeta para una implementación pero no conoce su ID de implementación o IDde grupo de implementaciones, puede utilizar la consola de AWS CodeDeploy o la AWS CLI parabuscarlas. Para obtener más información, consulte Visualización de los detalles de las implementacionesde CodeDeploy (p. 337).

El número máximo predeterminado de las implementaciones que se pueden archivar en un grupo deimplementaciones es de cinco. Cuando se alcanza ese número, se archivan las implementacionesfuturas y se elimina el archivo más antiguo. Puede utilizar el valor max_revisions en el archivo deconfiguración de agente de CodeDeploy para cambiar el valor predeterminado. Para obtener másinformación, consulte Referencia de configuración del agente de CodeDeploy (p. 435).

Note

Si desea recuperar el espacio en disco duro utilizado por las implementaciones archivadas,actualice el valor max_revisions a un número bajo, como, por ejemplo, 1 o 2. La siguienteimplementación elimina las implementaciones archivadas de modo que el número sea igual alespecificado.

• deployment-instructions contiene cuatro archivos de texto para cada grupo de implementaciones:• [ID grupo de implementaciones]-cleanup, un archivo de texto con una versión deshacer de cada

comando que se ejecuta durante una implementación. Un nombre de archivo de ejemplo esacde1916-9099-7caf-fd21-012345abcdef-cleanup.

• [ID de grupo de implementaciones]-install.json, un archivo JSON creado durante la implementaciónmás reciente. Contiene los comandos que se ejecutan durante la implementación. Un nombre dearchivo de ejemplo es acde1916-9099-7caf-fd21-012345abcdef-install.json.

• [ID de grupo de implementaciones]_last_successfull_install, un archivo de texto que muestra eldirectorio de archivos de la última implementación correcta. Este archivo se crea cuando el agentede CodeDeploy ha copiado todos los archivos en la aplicación de implementación a la instancia.Lo utiliza el agente de CodeDeploy durante la siguiente implementación para determinar losscripts ApplicationStop y BeforeInstall que ejecutar. Un nombre de archivo de ejemplo esacde1916-9099-7caf-fd21-012345abcdef_last_successfull_install.

• [ID de grupo de implementaciones]_most_recent_install, un archivo de texto que muestra elnombre del directorio de archivos de la implementación más reciente. Este archivo se creacuando los archivos de la implementación se han descargado correctamente. El archivo [ID degrupo de implementaciones]_last_successfull_install se crea después de este archivo, cuandoVersión de API 2014-10-06

183

Page 193: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGestión de las operaciones del agente de CodeDeploy

los archivos descargados se copian en su destino final. Un nombre de archivo de ejemplo esacde1916-9099-7caf-fd21-012345abcdef_most_recent_install.

• deployment-logs contiene los archivos de registro siguientes:• Los archivos codedeploy-agent.aaaammdd.log se crean para cada día que hay una implementación.

Cada archivo de registro contiene información acerca de las implementaciones del día. Estos archivosde registro podrían ser útiles para depurar problemas como un problema de permisos. El archivo deregistro se denomina inicialmente codedeploy-agent.log. Al día siguiente, se inserta la fechade sus implementaciones en el nombre del archivo. Por ejemplo, si hoy es 3 de enero de 2018,puede ver información acerca de todas las implementaciones de hoy en codedeploy-agent.log.Mañana, 4 de enero de 2018, se cambia el nombre del archivo de registro a codedeploy-agent.20180103.log.

• codedeploy-agent-deployments.log compila el contenido de los archivos scripts.log paracada implementación. Los archivos scripts.log se encuentran en la subcarpeta logs debajode cada carpeta Deployment ID. Las entradas de este archivo van precedidas de un ID deimplementación. Por ejemplo, "[d-ABCDEF123]LifecycleEvent - BeforeInstall" podríahaberse escrito durante una implementación con un ID de d-ABCDEF123. Cuando codedeploy-agent-deployments.log alcanza el tamaño máximo, el agente de CodeDeploy sigue escribiendoen él mientras elimina el contenido antiguo.

Gestión de las operaciones del agente deCodeDeploy

Las instrucciones de esta sección indican cómo instalar, desinstalar, reinstalar o actualizar el agente deCodeDeploy y cómo comprobar que el agente de CodeDeploy se está ejecutando.

Important

La versión mínima admitida del agente de CodeDeploy es 1.0.1.1458. El uso de un agente deCodeDeploy anterior podría producir un error en las implementaciones.

Temas• Comprobación de que el agente de CodeDeploy se está ejecutando (p. 184)• Determinación de la versión del agente de CodeDeploy (p. 186)• Instalación del agente de CodeDeploy (p. 187)• Actualización del agente de CodeDeploy (p. 195)• Desinstalación del agente de CodeDeploy (p. 201)

Comprobación de que el agente de CodeDeploy seestá ejecutandoEsta sección describe los comandos que pueden ejecutarse cuando se sospecha que el agente deCodeDeploy ha dejado de ejecutarse en una instancia.

Temas• Comprobación de que el agente de CodeDeploy para Amazon Linux o RHEL se está

ejecutando (p. 185)• Comprobación de que el agente de CodeDeploy para Ubuntu Server se está ejecutando (p. 185)• Comprobación de que el agente de CodeDeploy para Windows Server se está ejecutando (p. 185)

Versión de API 2014-10-06184

Page 194: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComprobación de que el agente

de CodeDeploy se está ejecutando

Comprobación de que el agente de CodeDeploy para AmazonLinux o RHEL se está ejecutandoPara saber si el agente de CodeDeploy está instalado y se está ejecutando, inicie sesión en la instancia yejecute el comando siguiente:

sudo service codedeploy-agent status

Si el comando devuelve un error, el agente de CodeDeploy no está instalado. Instálelo como se describeen Instalación del agente de CodeDeploy para Amazon Linux o RHEL (p. 189).

Si el agente de CodeDeploy está instalado y se está ejecutando, aparece el mensaje The AWSCodeDeploy agent is running.

Si ve el mensaje error: No AWS CodeDeploy agent running, inicie el servicio y ejecute uno poruno los dos comandos siguientes:

sudo service codedeploy-agent start

sudo service codedeploy-agent status

Comprobación de que el agente de CodeDeploy para UbuntuServer se está ejecutandoPara saber si el agente de CodeDeploy está instalado y se está ejecutando, inicie sesión en la instancia yejecute el comando siguiente:

sudo service codedeploy-agent status

Si el comando devuelve un error, el agente de CodeDeploy no está instalado. Instálelo como se describeen Instalación del agente de CodeDeploy para Ubuntu Server (p. 190).

Si el agente de CodeDeploy está instalado y se está ejecutando, aparece el mensaje The AWSCodeDeploy agent is running.

Si ve el mensaje error: No AWS CodeDeploy agent running, inicie el servicio y ejecute uno poruno los dos comandos siguientes:

sudo service codedeploy-agent start

sudo service codedeploy-agent status

Comprobación de que el agente de CodeDeploy para WindowsServer se está ejecutandoPara saber si el agente de CodeDeploy está instalado y se está ejecutando, inicie sesión en la instancia yejecute el comando siguiente:

powershell.exe -Command Get-Service -Name codedeployagent

Versión de API 2014-10-06185

Page 195: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDeterminación de la versión del agente de CodeDeploy

Debería ver un resultado similar a este:

Status Name DisplayName------ ---- -----------Running codedeployagent CodeDeploy Host Agent Service

Si el comando devuelve un error, el agente de CodeDeploy no está instalado. Instálelo como se describeen Instalación del agente de CodeDeploy para Windows Server (p. 191).

Si Status muestra algo distinto de Running, inicie el servicio con el comando siguiente:

powershell.exe -Command Start-Service -Name codedeployagent

Puede reiniciar el servicio con el comando siguiente:

powershell.exe -Command Restart-Service -Name codedeployagent

Puede detener el servicio con el comando siguiente:

powershell.exe -Command Stop-Service -Name codedeployagent

Determinación de la versión del agente deCodeDeployPara determinar la versión del agente de CodeDeploy que se está ejecutando en una instancia, puedeproceder de dos maneras.

Important

La versión mínima admitida del agente de CodeDeploy es 1.0.1.1458. El uso de un agente deCodeDeploy anterior podría producir un error en las implementaciones.

La primera, posible a partir de la versión 1.0.1.854 del agente de CodeDeploy, consiste en comprobar elnúmero de versión en el archivo .version de la instancia. La tabla siguiente muestra la ubicación y unejemplo de cadena de versión para los distintos sistemas operativos compatibles.

Sistema operativo Ubicación del archivo Ejemplo de cadenaagent_version

Amazon Linux y Red HatEnterprise Linux (RHEL)

/opt/codedeploy-agent/.version

OFFICIAL_1.0.1.854_rpm

Ubuntu Server /opt/codedeploy-agent/.version

OFFICIAL_1.0.1.854_deb

Windows Server C:\ProgramData\Amazon\CodeDeploy\.version

OFFICIAL_1.0.1.854_msi

La segunda consiste en ejecutar un comando en una instancia para determinar la versión del agente deCodeDeploy.

Versión de API 2014-10-06186

Page 196: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

Temas• Determinación de la versión en Amazon Linux o RHEL (p. 187)• Determinación de la versión en Ubuntu Server (p. 187)• Determinación de la versión en Windows Server (p. 187)

Determinación de la versión en Amazon Linux o RHELInicie sesión en la instancia y ejecute el comando siguiente:

sudo yum info codedeploy-agent

Determinación de la versión en Ubuntu ServerInicie sesión en la instancia y ejecute el comando siguiente:

sudo dpkg -s codedeploy-agent

Determinación de la versión en Windows ServerInicie sesión en la instancia y ejecute el comando siguiente:

sc qdescription codedeployagent

Instalación del agente de CodeDeployPara utilizar CodeDeploy en las instancias EC2 o los servidores en las instalaciones, primero debeinstalarse el agente de CodeDeploy. Se recomienda instalar y actualizar el agente de CodeDeploy conAWS Administrador de sistemas; para obtener más información acerca de Administrador de sistemas,consulte ¿Qué es AWS Systems Manager?. La instalación y las actualizaciones programadas del agentede CodeDeploy con Administrador de sistemas pueden configurarse en la consola al crear los grupos deimplementación.

También puede instalar el agente de CodeDeploy directamente desde un bucket de S3 con la línea decomandos.

Temas• Instalación del agente de CodeDeploy mediante AWS Administrador de sistemas (p. 187)• Instalación del agente de CodeDeploy mediante la línea de comandos (p. 189)

Instalación del agente de CodeDeploy mediante AWSAdministrador de sistemasUtilice la consola de administración de AWS o la CLI de AWS para instalar el agente de CodeDeploy enlas instancias Amazon EC2 o en las instalaciones con AWS Administrador de sistemas. Puede elegirentre instalar una versión específica o instalar siempre la última versión del agente. Para obtener másinformación sobre AWS Administrador de sistemas, consulte ¿Qué es AWS Administrador de sistemas?.

El uso de AWS Administrador de sistemas es el método recomendado para instalar y actualizar el agentede CodeDeploy. También puede instalar el agente de CodeDeploy desde un bucket de Amazon S3. Para

Versión de API 2014-10-06187

Page 197: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

obtener más información acerca del uso del enlace de descarga de Amazon S3, consulte Instalación delagente de CodeDeploy mediante la línea de comandos (p. 189).

Temas• Requisitos previos (p. 188)• Instalación del agente de CodeDeploy (p. 188)

Requisitos previos

Siga los pasos de Introducción a CodeDeploy (p. 37) para configurar los permisos de IAM y la CLI de AWS.

Si instala el agente de CodeDeploy en un servidor en las instalaciones con Administrador de sistemas,debe registrar el servidor local con Amazon EC2 Systems Manager. Para obtener más información,consulte Configuración de Administrador de sistemas en entornos híbridos en la Guía del usuario de AWSAdministrador de sistemas.

Instalación del agente de CodeDeploy

Si desea utilizar Administrador de sistemas para instalar el agente de CodeDeploy, debe asegurarse deque la instancia esté configurada correctamente para Administrador de sistemas.

Instalación o actualización del Agente de SSM

En una instancia Amazon EC2, el agente de CodeDeploy requiere que la instancia ejecute la versión2.3.274.0 o posterior. Antes de instalar el agente de CodeDeploy, actualice o instale el Agente de SSM enla instancia, si aún no lo ha hecho.

Las AMI de Amazon EC2 siguientes tienen preinstalado el Agente de SSM:

• AMI de Windows Server 2008-2012 R2 publicadas en noviembre de 2016 o posteriormente• Windows Server 2016 y 2019• Amazon Linux y Amazon Linux 2• Ubuntu Server 16.04 y 18.04• Optimizado para Amazon ECS

Para obtener información sobre la instalación o actualización del Agente de SSM en una instancia deLinux, consulte Instalación y configuración del Agente de SSM en instancias de Linux en la Guía delusuario de AWS Administrador de sistemas.

Para obtener información acerca de la instalación o la actualización de Agente de SSM en una instanciacon Windows Server, consulte Instalación y configuración del agente de SSM en instancias de Linux en laGuía del usuario de AWS Administrador de sistemas.

(Opcional) Verificación de los requisitos previos de Administrador de sistemas

Antes de utilizar Administrador de sistemas Run Command para instalar el agente de CodeDeploy,compruebe que las instancias cumplen los requisitos mínimos de Administrador de sistemas. Para obtenermás información, consulte Configuración de AWS Administrador de sistemas en la Guía del usuario deAWS Administrador de sistemas.

Instalación del agente de CodeDeploy

Con SSM, puede instalar CodeDeploy una vez o configurar una programación para instalar las nuevasversiones.

Versión de API 2014-10-06188

Page 198: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

Para instalar el agente de CodeDeploy, elija el paquete AWSCodeDeployAgent mientras sigue los pasosdel tema para Instalar o actualizar paquetes con el distribuidor de AWS Systems Manager.

Instalación del agente de CodeDeploy mediante la línea decomandosUtilice los temas siguientes para instalar y ejecutar el agente de CodeDeploy mediante la línea decomandos.

Temas• Instalación del agente de CodeDeploy para Amazon Linux o RHEL (p. 189)• Instalación del agente de CodeDeploy para Ubuntu Server (p. 190)• Instalación del agente de CodeDeploy para Windows Server (p. 191)

Instalación del agente de CodeDeploy para Amazon Linux o RHEL

Inicie sesión en la instancia y ejecute uno a uno los comandos siguientes. Ejecutar primero el primercomando, sudo yum install, se considera una práctica recomendada cuando se usa yum para instalarpaquetes, pero puede omitirlo si no desea actualizar todos sus paquetes.

Note

En el cuarto comando, /home/ec2-user representa el nombre de usuario predeterminadopara una instancia Amazon EC2 en Amazon Linux o RHEL. Si la instancia se creó con unaAMI personalizada, el propietario de la AMI puede haber especificado otro nombre de usuariopredeterminado.

sudo yum update

sudo yum install ruby

sudo yum install wget

cd /home/ec2-user

wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. region-identifier es el identificador de su región. Por ejemplo,para Región EE.UU Este (Ohio), reemplace bucket-name por aws-codedeploy-us-east-2 yreemplace region-identifiier por us-east-2. Para obtener una lista de los nombres de bucket y losidentificadores de región, consulte Nombres de bucket del kit de recursos por región (p. 441).

chmod +x ./install

Para instalar la versión más reciente del agente de CodeDeploy

•sudo ./install auto

Versión de API 2014-10-06189

Page 199: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

Para instalar una versión específica del agente de CodeDeploy

•sudo ./install auto -v releases/codedeploy-agent-###.rpm

Para comprobar que el servicio se está ejecutando, ejecute el siguiente comando:

sudo service codedeploy-agent status

Si el agente de CodeDeploy está instalado y se está ejecutando, aparece el mensaje The AWSCodeDeploy agent is running.

Si ve el mensaje error: No AWS CodeDeploy agent running, inicie el servicio y ejecute uno poruno los dos comandos siguientes:

sudo service codedeploy-agent start

sudo service codedeploy-agent status

Instalación del agente de CodeDeploy para Ubuntu Server

Inicie sesión en la instancia y ejecute uno a uno los comandos siguientes.

Note

En el quinto comando, /home/ubuntu representa el nombre de usuario predeterminado para unainstancia de Ubuntu Server. Si la instancia se creó con una AMI personalizada, el propietario de laAMI puede haber especificado otro nombre de usuario predeterminado.

sudo apt-get update

En Ubuntu Server 14.04:

•sudo apt-get install ruby2.0

En Ubuntu Server 16.04 o 18.04:

•sudo apt-get install ruby

sudo apt-get install wget

cd /home/ubuntu

wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. region-identifier es el identificador de su región. Por ejemplo,

Versión de API 2014-10-06190

Page 200: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

para Región EE.UU Este (Ohio), reemplace bucket-name por aws-codedeploy-us-east-2 yreemplace region-identifiier por us-east-2. Para obtener una lista de los nombres de bucket y losidentificadores de región, consulte Nombres de bucket del kit de recursos por región (p. 441).

chmod +x ./install

Para instalar la versión más reciente del agente de CodeDeploy

•sudo ./install auto

Para instalar una versión específica del agente de CodeDeploy

•sudo ./install auto -v releases/codedeploy-agent-###.deb

Para comprobar que el servicio se está ejecutando, ejecute el siguiente comando:

sudo service codedeploy-agent status

Si el agente de CodeDeploy está instalado y se está ejecutando, aparece el mensaje The AWSCodeDeploy agent is running.

Si ve el mensaje error: No AWS CodeDeploy agent running, inicie el servicio y ejecute uno poruno los dos comandos siguientes:

sudo service codedeploy-agent start

sudo service codedeploy-agent status

Instalación del agente de CodeDeploy para Windows Server

En las instancias de Windows Server, puede utilizar uno de estos métodos para descargar e instalar elagente de CodeDeploy:

• Ejecutar una serie de comandos de Windows PowerShell.• Elegir un enlace de descarga directa.• Ejecutar un comando copy de Amazon S3.

Note

Tanto en las instancias nuevas como en las ya existentes, recomendamos instalar el actualizadordel agente de CodeDeploy para Windows Server. El actualizador comprueba de forma periódica sihay versiones nuevas del agente y lo instala cuando hay una disponible. En las instancias nuevas,puede instalar el actualizador en lugar del agente, y la versión actual de la agente se instalaráinmediatamente después. Para obtener más información, consulte Actualización del agente deCodeDeploy en Windows Server (p. 196).

Temas• Usar Windows PowerShell (p. 192)• Usar un enlace directo (p. 193)

Versión de API 2014-10-06191

Page 201: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

• Usar un comando copy de Amazon S3 (p. 194)

Usar Windows PowerShell

Inicie sesión en la instancia y ejecute los comandos siguientes en Windows PowerShell:

1. Es necesario que todos los scripts y archivos de configuración que se hayan descargado de Internetestén firmados por un editor de confianza. Si se le pide que cambie la política de ejecución, escriba"Y".

Set-ExecutionPolicy RemoteSigned

2. Cargue Herramientas de AWS para Windows PowerShell.

Import-Module AWSPowerShell

3. Cree un directorio donde se pueda descargar el archivo de instalación del agente de CodeDeploy.

New-Item -Path "c:\temp" -ItemType "directory" -Force

4. Descargue el archivo de instalación del agente de CodeDeploy.

Para instalar la versión más reciente del agente de CodeDeploy

•powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi

Para instalar una versión específica del agente de CodeDeploy

•powershell.exe -Command Read-S3Object -BucketName bucket-name -Key releases/codedeploy-agent-###.msi -File c:\temp\codedeploy-agent.msi

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su región. Por ejemplo, para Región EE.UU Este (Ohio), reemplace bucket-namepor aws-codedeploy-us-east-2. Para obtener una lista de nombres de bucket, consulte Nombresde bucket del kit de recursos por región (p. 441).

5. Ejecute el archivo de instalación del agente de CodeDeploy.

c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt

Para comprobar que el servicio se está ejecutando, ejecute el siguiente comando:

powershell.exe -Command Get-Service -Name codedeployagent

Si el agente de CodeDeploy se acaba de instalar y no se ha iniciado, después de ejecutar el comando Get-Service, en Estado, debería ver Start...:

Status Name DisplayName------ ---- -----------Start... codedeployagent CodeDeploy Host Agent Service

Versión de API 2014-10-06192

Page 202: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

Si el agente de CodeDeploy ya se está ejecutando, después de ejecutar el comando Get-Service, enEstado, debería ver Running:

Status Name DisplayName------ ---- -----------Running codedeployagent CodeDeploy Host Agent Service

Usar un enlace directo

Si la configuración de seguridad del navegador en la instancia de Windows Server proporciona lospermisos (por ejemplo, para http://*.s3.amazonaws.com), puede utilizar el enlace directo de suregión para descargar el agente de CodeDeploy y luego ejecutar el instalador manualmente.

Nombre de la región Enlace de descarga

EE.UU. Este (Ohio) https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/codedeploy-agent.msi

US East (N. Virginia) https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/codedeploy-agent.msi

EE.UU. Oeste (Norte de California) https://aws-codedeploy-us-west-1.s3.amazonaws.com/latest/codedeploy-agent.msi

EE.UU. Oeste (Oregón) https://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Canadá (Central) https://aws-codedeploy-ca-central-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Europa (Irlanda) https://aws-codedeploy-eu-west-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Europa (Londres) https://aws-codedeploy-eu-west-2.s3.amazonaws.com/latest/codedeploy-agent.msi

UE (París) https://aws-codedeploy-eu-west-3.s3.amazonaws.com/latest/codedeploy-agent.msi

Europa (Fráncfort) https://aws-codedeploy-eu-central-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Asia Pacífico (Hong Kong) https://aws-codedeploy-ap-east-1.s3.ap-east-1.amazonaws.com/latest/codedeploy-agent.msi

Asia Pacífico (Tokio) https://aws-codedeploy-ap-northeast-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Versión de API 2014-10-06193

Page 203: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstalación del agente de CodeDeploy

Nombre de la región Enlace de descarga

Asia Pacífico (Seúl) https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Asia Pacífico (Singapur) https://aws-codedeploy-ap-southeast-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Asia Pacífico (Sídney) https://aws-codedeploy-ap-southeast-2.s3.amazonaws.com/latest/codedeploy-agent.msi

Asia Pacífico (Mumbai) https://aws-codedeploy-ap-south-1.s3.amazonaws.com/latest/codedeploy-agent.msi

América del Sur (São Paulo) https://aws-codedeploy-sa-east-1.s3.amazonaws.com/latest/codedeploy-agent.msi

Usar un comando copy de Amazon S3

Si la AWS CLI se ha instalado en la instancia, puede utilizar el comando cp de Amazon S3 para descargarel agente de CodeDeploy y luego ejecutar el instalador manualmente. Para obtener información, consulteInstalación de la AWS Command Line Interface en Microsoft Windows.

Nombre de la región Comando copy de Amazon S3

EE.UU. Este (Ohio)aws s3 cp s3://aws-codedeploy-us-east-2/latest/codedeploy-agent.msi codedeploy-agent.msi

US East (N. Virginia)aws s3 cp s3://aws-codedeploy-us-east-1/latest/codedeploy-agent.msi codedeploy-agent.msi

EE.UU. Oeste (Norte de California)aws s3 cp s3://aws-codedeploy-us-west-1/latest/codedeploy-agent.msi codedeploy-agent.msi

EE.UU. Oeste (Oregón)aws s3 cp s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi codedeploy-agent.msi

Canadá (Central)aws s3 cp s3://aws-codedeploy-ca-central-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Europa (Irlanda)aws s3 cp s3://aws-codedeploy-eu-west-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Versión de API 2014-10-06194

Page 204: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualización del agente de CodeDeploy

Nombre de la región Comando copy de Amazon S3

Europa (Londres)aws s3 cp s3://aws-codedeploy-eu-west-2/latest/codedeploy-agent.msi codedeploy-agent.msi

UE (París)aws s3 cp s3://aws-codedeploy-eu-west-3/latest/codedeploy-agent.msi codedeploy-agent.msi

Europa (Fráncfort)aws s3 cp s3://aws-codedeploy-eu-central-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Asia Pacífico (Hong Kong)aws s3 cp s3://aws-codedeploy-ap-east-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Asia Pacífico (Tokio)aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Asia Pacífico (Seúl)aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/codedeploy-agent.msi codedeploy-agent.msi

Asia Pacífico (Singapur)aws s3 cp s3://aws-codedeploy-ap-southeast-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Asia Pacífico (Sídney)aws s3 cp s3://aws-codedeploy-ap-southeast-2/latest/codedeploy-agent.msi codedeploy-agent.msi

Asia Pacífico (Mumbai)aws s3 cp s3://aws-codedeploy-ap-south-1/latest/codedeploy-agent.msi codedeploy-agent.msi

América del Sur (São Paulo)aws s3 cp s3://aws-codedeploy-sa-east-1/latest/codedeploy-agent.msi codedeploy-agent.msi

Actualización del agente de CodeDeployPuede configurar actualizaciones automáticas programadas del agente de CodeDeploy en todos lossistemas operativos compatibles mediante AWS Administrador de sistemas. También puede forzar lasactualizaciones en todos los sistemas operativos compatibles ejecutando un comando en una instancia.

Temas

Versión de API 2014-10-06195

Page 205: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualización del agente de CodeDeploy

• Actualización del agente de CodeDeploy en Amazon Linux o RHEL (p. 196)• Actualización del agente de CodeDeploy en Ubuntu Server (p. 196)• Actualización del agente de CodeDeploy en Windows Server (p. 196)

Actualización del agente de CodeDeploy en Amazon Linux oRHELPara configurar actualizaciones automáticas programadas del agente de CodeDeploy mediante AWSAdministrador de sistemas, siga los pasos descritos en Instalación del agente de CodeDeploy medianteAWS Administrador de sistemas.

Si desea forzar una actualización del agente de CodeDeploy, inicie sesión en la instancia y ejecute elcomando siguiente:

sudo /opt/codedeploy-agent/bin/install auto

Actualización del agente de CodeDeploy en Ubuntu ServerPara configurar actualizaciones automáticas programadas del agente de CodeDeploy mediante AWSAdministrador de sistemas, siga los pasos descritos en Instalación del agente de CodeDeploy medianteAWS Administrador de sistemas.

Si desea forzar una actualización del agente de CodeDeploy, inicie sesión en la instancia y ejecute elcomando siguiente:

sudo /opt/codedeploy-agent/bin/install auto

Actualización del agente de CodeDeploy en Windows ServerPuede habilitar las actualizaciones automáticas del agente de CodeDeploy con AWS Administradorde sistemas. Utilice Administrador de sistemas para configurar una programación de actualizaciónde las instancias Amazon EC2 o en las instalaciones mediante la creación de una asociación conel Administrador de estados de Administrador de sistemas. También puede actualizar el agente deCodeDeploy de forma manual si desinstala la versión actual e instala una más reciente.

Temas• Configuración de la actualización automática del agente de CodeDeploy con AWS Administrador de

sistemas (p. 196)• Actualización del agente de CodeDeploy manualmente (p. 196)• (Obsoleto) Actualización del agente de CodeDeploy con el actualizador de Windows Server (p. 197)

Configuración de la actualización automática del agente de CodeDeploy con AWSAdministrador de sistemasPara configurar Administrador de sistemas y habilitar las actualizaciones automáticas del agente deCodeDeploy, siga las instrucciones descritas en Instalación del agente de CodeDeploy mediante AWSAdministrador de sistemas.

Actualización del agente de CodeDeploy manualmentePara actualizar el agente de CodeDeploy de forma manual, puede instalar la versión más reciente desdela CLI o utilizar Administrador de sistemas. Siga las instrucciones descritas en Instalación del agente de

Versión de API 2014-10-06196

Page 206: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualización del agente de CodeDeploy

CodeDeploy. Se recomienda desinstalar las versiones anteriores del agente de CodeDeploy mediante lasinstrucciones indicadas en Desinstalación del agente de CodeDeploy.

(Obsoleto) Actualización del agente de CodeDeploy con el actualizador deWindows Server

Note

El actualizador del agente de CodeDeploy para Windows Server está obsoleto y no se actualizaráa ninguna versión posterior a la 1.0.1.1597.

Para habilitar la actualización automática del agente de CodeDeploy, instale el actualizador del agente deCodeDeploy para Windows Server en las instancias nuevas o ya existentes. El actualizador compruebaperiódicamente si existen versiones nuevas. Cuando detecta una versión nueva del agente, el actualizadordesinstala la versión actual, si la hay, antes de instalar la última versión.

Si una implementación ya está en curso cuando el actualizador detecta una nueva versión, continuaráhasta su finalización. Si se intenta iniciar una implementación durante el proceso de actualización, laimplementación falla.

Si desea forzar una actualización del agente de CodeDeploy, siga las instrucciones de Instalación delagente de CodeDeploy para Windows Server (p. 191).

En las instancias de Windows Server, puede descargar e instalar el actualizador del agente deCodeDeploy mediante la ejecución de comandos de Windows PowerShell, utilizando un enlace dedescarga directa o ejecutando un comando copy de Amazon S3.

Temas• Usar Windows PowerShell (p. 197)• Usar un enlace directo (p. 198)• Usar un comando copy de Amazon S3 (p. 199)

Usar Windows PowerShell

Inicie sesión en la instancia y ejecute uno por uno los comandos siguientes en Windows PowerShell:

Set-ExecutionPolicy RemoteSigned

Si se le pide que cambie la política de ejecución, elija Y para que Windows PowerShell requiera que todoslos scripts y archivos de configuración descargados de Internet estén firmados por un editor de confianza.

Import-Module AWSPowerShell

New-Item -Path "c:\temp" -ItemType "directory" -Force

powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent-updater.msi -File c:\temp\codedeploy-agent-updater.msi

c:\temp\codedeploy-agent-updater.msi /quiet /l c:\temp\host-agent-updater-log.txt

powershell.exe -Command Get-Service -Name codedeployagent

Versión de API 2014-10-06197

Page 207: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualización del agente de CodeDeploy

bucket-name es el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursos deCodeDeploy de su región. Por ejemplo, para Región EE.UU Este (Ohio), reemplace bucket-name poraws-codedeploy-us-east-2. Para obtener una lista de nombres de bucket, consulte Nombres debucket del kit de recursos por región (p. 441).

Si desea investigar un error en el proceso de actualización, escriba el comando siguiente para abrir elarchivo de registro del actualizador del agente de CodeDeploy:

notepad C:\ProgramData\Amazon\CodeDeployUpdater\log\codedeploy-agent.updater.log

Usar un enlace directo

Si la configuración de seguridad del navegador en la instancia de Windows Server proporciona lospermisos necesarios (por ejemplo, para http://*.s3.amazonaws.com ), puede utilizar un enlacedirecto para descargar el actualizador del agente de CodeDeploy. Escriba la siguiente información en labarra de direcciones del navegador y, a continuación, descargue y ejecute el instalador manualmente.

Nombre de la región Enlace de descarga

EE.UU. Este (Ohio) https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

US East (N. Virginia) https://aws-codedeploy-us-east-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

EE.UU. Oeste (Norte de California) https://aws-codedeploy-us-west-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

EE.UU. Oeste (Oregón) https://aws-codedeploy-us-west-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Canadá (Central) https://aws-codedeploy-ca-central-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Europa (Irlanda) https://aws-codedeploy-eu-west-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Europa (Londres) https://aws-codedeploy-eu-west-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

UE (París) https://aws-codedeploy-eu-west-3.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Europa (Fráncfort) https://aws-codedeploy-eu-central-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Asia Pacífico (Hong Kong) https://aws-codedeploy-ap-east-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Versión de API 2014-10-06198

Page 208: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualización del agente de CodeDeploy

Nombre de la región Enlace de descarga

Asia Pacífico (Tokio) https://aws-codedeploy-ap-northeast-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Asia Pacífico (Seúl) https://aws-codedeploy-ap-northeast-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Asia Pacífico (Singapur) https://aws-codedeploy-ap-southeast-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Asia Pacífico (Sídney) https://aws-codedeploy-ap-southeast-2.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Asia Pacífico (Mumbai) https://aws-codedeploy-ap-south-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

América del Sur (São Paulo) https://aws-codedeploy-sa-east-1.s3.amazonaws.com/latest/codedeploy-agent-updater.msi

Usar un comando copy de Amazon S3

Si la AWS CLI se ha instalado en la instancia, puede utilizar el comando cp de Amazon S3 para descargarel actualizador del agente de CodeDeploy y luego ejecutar el instalador manualmente. Para obtenerinformación, consulte Instalación de la AWS Command Line Interface en Microsoft Windows.

Nombre de la región Comando copy de Amazon S3

EE.UU. Este (Ohio)aws s3 cp s3://aws-codedeploy-us-east-2/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

US East (N. Virginia)aws s3 cp s3://aws-codedeploy-us-east-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

EE.UU. Oeste (Norte de California)aws s3 cp s3://aws-codedeploy-us-west-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

EE.UU. Oeste (Oregón)aws s3 cp s3://aws-codedeploy-us-west-2/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Canadá (Central)aws s3 cp s3://aws-codedeploy-ca-central-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Versión de API 2014-10-06199

Page 209: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualización del agente de CodeDeploy

Nombre de la región Comando copy de Amazon S3

Europa (Irlanda)aws s3 cp s3://aws-codedeploy-eu-west-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Europa (Londres)aws s3 cp s3://aws-codedeploy-eu-west-2/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

UE (París)aws s3 cp s3://aws-codedeploy-eu-west-3/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Europa (Fráncfort)aws s3 cp s3://aws-codedeploy-eu-central-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Asia Pacífico (Hong Kong)aws s3 cp s3://aws-codedeploy-ap-east-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Asia Pacífico (Tokio)aws s3 cp s3://aws-codedeploy-ap-northeast-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Asia Pacífico (Seúl)aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Asia Pacífico (Singapur)aws s3 cp s3://aws-codedeploy-ap-southeast-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Asia Pacífico (Sídney)aws s3 cp s3://aws-codedeploy-ap-southeast-2/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Asia Pacífico (Mumbai)aws s3 cp s3://aws-codedeploy-ap-south-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

América del Sur (São Paulo)aws s3 cp s3://aws-codedeploy-sa-east-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi

Versión de API 2014-10-06200

Page 210: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDesinstalación del agente de CodeDeploy

Desinstalación del agente de CodeDeployPuede eliminar el agente de CodeDeploy de las instancias en las que ya no sea necesario, o cuandodesee realizar una instalación desde cero.

Desinstalación del agente de CodeDeploy en Amazon Linux oRHELPara desinstalar el agente de CodeDeploy, inicie sesión en la instancia y ejecute el comando siguiente:

sudo yum erase codedeploy-agent

Desinstalación del agente de CodeDeploy en Ubuntu ServerPara desinstalar el agente de CodeDeploy, inicie sesión en la instancia y ejecute el comando siguiente:

sudo dpkg --purge codedeploy-agent

Desinstalación del agente de CodeDeploy en Windows ServerPara desinstalar el agente de CodeDeploy, inicie sesión en la instancia y ejecute uno por uno los trescomandos siguientes:

wmic

product where name="CodeDeploy Host Agent" call uninstall /nointeractive

exit

También puede iniciar sesión en la instancia y en el Panel de control, abra Programas y características,elija CodeDeploy Host Agent y seleccione Desinstalar.

Versión de API 2014-10-06201

Page 211: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComparación de las instancias Amazon

EC2 y las instancias on-premise

Trabajar con instancias deCodeDeploy

CodeDeploy admite implementaciones en instancias que ejecutan Amazon Linux, Ubuntu Server, Red HatEnterprise Linux (RHEL) y Windows Server.

Puede utilizar CodeDeploy para implementar tanto instancias Amazon EC2 y como instancias on-premises.Una instancia on-premises es cualquier dispositivo físico que no sea una instancia Amazon EC2 y quepueda ejecutar el agente de CodeDeploy y conectarse a puntos de enlace de servicio de AWS públicos.Puede utilizar CodeDeploy para implementar simultáneamente una aplicación en instancias Amazon EC2en la nube y en equipos de sobremesa en su oficina o en servidores de su propio centro de datos.

Comparación de las instancias Amazon EC2 y lasinstancias on-premise

La siguiente tabla compara las instancias Amazon EC2 y las instancias on-premise:

Asunto Instancias Amazon EC2 Instancias on-premises

Es necesario instalar y ejecutaruna versión del agente deCodeDeploy que sea compatiblecon el sistema operativo que seejecuta en la instancia.

Sí Sí

La instancia debe poderconectarse al servicio deCodeDeploy.

Sí Sí

Es necesario adjuntar un perfil deinstancia de IAM a la instancia.El perfil de instancia de IAM debetener permisos para participaren las implementaciones deCodeDeploy. Para obtenerinformación, consulte Paso 4:Crear un perfil de instancia deIAM para las instancias AmazonEC2 (p. 44).

Sí No

Es necesario realizar uno delos siguientes procedimientospara autenticar y registrar lasinstancias:

• Crear un usuario de IAM paracada instancia y almacenar

No Sí

Versión de API 2014-10-06202

Page 212: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTareas de instancias para CodeDeploy

Asunto Instancias Amazon EC2 Instancias on-premiseslas credenciales de la cuentade usuario de IAM en texto sinformato en la instancia.

• Crear un rol de IAM quepueda asumir un usuario deIAM en cada instancia pararecuperar las credencialestemporales que se actualizanperiódicamente generadas através de AWS Security TokenService.

Es necesario registrar cadainstancia en CodeDeploy parapoder implementarla.

No Sí

Es necesario etiquetar cadainstancia para que CodeDeploypueda implementarla.

Sí Sí

Pueden participar en escenariosde Amazon EC2 Auto Scalingy Elastic Load Balancing comoparte de las implementaciones deCodeDeploy.

Sí No

Se pueden implementar a partirde buckets de Amazon S3 yrepositorios de GitHub.

Sí Sí

Admiten disparadoresque solicitan el envío denotificaciones de correoelectrónico o SMS cuando seproducen eventos especificadosen las implementaciones oinstancias.

Sí Sí

Se pueden facturar paraimplementaciones asociadas.

No Sí

Tareas de instancias para CodeDeployPara lanzar o configurar instancias para su uso en implementaciones, elija entre las siguientesinstrucciones:

Quiero lanzar una nueva instancia Amazon Linuxcon Windows Server o Amazon EC2.

Para lanzar la instancia Amazon EC2 con elmínimo esfuerzo, consulte Creación de unainstancia Amazon EC2 para CodeDeploy (plantillade AWS CloudFormation) (p. 216).

Para lanzar la instancia Amazon EC2 por sucuenta, consulte Creación de una instancia

Versión de API 2014-10-06203

Page 213: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstancias de etiquetado para

implementaciones en CodeDeploy

Amazon EC2 para CodeDeploy (AWS CLI oconsola de Amazon EC2) (p. 212).

Quiero lanzar una nueva instancia Ubuntu Servercon RHEL o Amazon EC2.

Consulte Creación de una instancia Amazon EC2para CodeDeploy (AWS CLI o consola de AmazonEC2) (p. 212).

Quiero configurar una instancia Amazon Linux conWindows Server, Ubuntu Server o RHEL AmazonEC2.

Consulte Configuración de una instancia AmazonEC2 para trabajar con CodeDeploy (p. 223).

Quiero configurar una instancia on-premises(dispositivos físicos que no son instancias AmazonEC2) para Windows Server, Ubuntu Server oRHEL.

Consulte Trabajar con instancias on-premise (p. 226).

Quiero que CodeDeploy aprovisione unaflota de instancias de sustitución durante unaimplementación blue/green.

Consulte Trabajo con implementaciones enCodeDeploy (p. 320).

Para preparar instancias Amazon EC2 en grupos de Amazon EC2 Auto Scaling, debe seguir algunospasos adicionales. Para obtener más información, consulte Integración de CodeDeploy con Amazon EC2Auto Scaling (p. 54).

Temas

• Instancias de etiquetado para implementaciones en AWS CodeDeploy (p. 204)• Trabajar con instancias Amazon EC2 (p. 211)• Trabajar con instancias on-premise (p. 226)• Visualización de los detalles de la instancia (p. 254)• Estado de las instancias (p. 255)

Instancias de etiquetado para grupos deimplementaciones en CodeDeploy

Para ayudar a administrar las instancias de Amazon EC2 y las instancias on-premises, puede usaretiquetas para asignar sus propios metadatos a cada recurso. Las etiquetas le permiten clasificar lasinstancias de diversas maneras, por ejemplo, según su finalidad, propietario o entorno. Esto es útil cuandodispone de muchas instancias. Puede identificar rápidamente una instancia o grupo de instancias enfunción de las etiquetas que haya asignado a ellos. Cada etiqueta está formada por una clave y un valoropcional, ambos definidos por el usuario. Para obtener más información, consulte Etiquetado de losrecursos de Amazon EC2.

Para especificar qué instancias se incluyen en un grupo de implementaciones de CodeDeploy, debeespecificar etiquetas en uno o varios grupos de etiquetas. Las instancias que cumplan sus criterios deetiqueta son las instancias en las que está instalada la última versión de la aplicación en el momento decreación de la implementación de ese grupo de implementaciones.

Note

También puede incluir grupos de Amazon EC2 Auto Scaling en grupos de implementaciones, peroestos se identifican por sus nombres y no por las etiquetas que se aplican a las instancias. Paraobtener información, consulte Integración de CodeDeploy con Amazon EC2 Auto Scaling (p. 54).

Versión de API 2014-10-06204

Page 214: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo 1: un único grupo de etiquetas, una única etiqueta

Los criterios de las instancias en un grupo de implementaciones pueden ser tan sencillos como una únicaetiqueta en un solo grupo de etiquetas. Puede ser tan complejo como 10 etiquetas cada una en un máximode tres grupos de etiquetas.

Si utiliza un único grupo de etiquetas, cualquier instancia que se identifique mediante al menos unaetiqueta del grupo se incluye en el grupo de implementaciones. Si utiliza varios grupos de etiquetas, solose incluyen las instancias que se identifican por al menos una etiqueta en cada uno de los grupos deetiquetas.

En los siguientes ejemplos se muestra cómo las etiquetas y los grupos de etiquetas se pueden utilizar paraseleccionar las instancias de un grupo de implementaciones.

Temas• Ejemplo 1: un único grupo de etiquetas, una única etiqueta (p. 205)• Ejemplo 2: un único grupo de etiquetas, varias etiquetas (p. 206)• Ejemplo 3: varios grupos de etiquetas, etiquetas únicas (p. 207)• Ejemplo 4: varios grupos de etiquetas, varias etiquetas (p. 209)

Ejemplo 1: un único grupo de etiquetas, una únicaetiquetaPuede especificar una única etiqueta en un único grupo de etiquetas:

Grupo de etiquetas 1

Clave Valor

Nombre AppVersion-ABC

Cada instancia que se etiqueta con Name=AppVersion-ABC forma parte del grupo de implementaciones,incluso si tiene otras etiquetas aplicadas.

Vista de configuración de la consola de CodeDeploy:

Estructura JSON:

"ec2TagSet": { "ec2TagSetList": [ [

Versión de API 2014-10-06205

Page 215: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo 2: un único grupo de etiquetas, varias etiquetas

{ "Type": "KEY_AND_VALUE", "Key": "Name", "Value": "AppVersion-ABC" } ] ] },

Ejemplo 2: un único grupo de etiquetas, variasetiquetasTambién puede especificar varias etiquetas en un único grupo de etiquetas:

Grupo de etiquetas 1

Clave Valor

Región North

Región South

Región East

Una instancia que se etiqueta con cualquiera de estas tres etiquetas forma parte del grupo deimplementaciones, incluso si tiene otras etiquetas aplicadas. Si, por ejemplo, tenía otras instanciasetiquetadas Region=West, estas no se incluirían en el grupo de implementaciones.

Vista de configuración de la consola de CodeDeploy:

Estructura JSON:

"ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" },

Versión de API 2014-10-06206

Page 216: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo 3: varios grupos de etiquetas, etiquetas únicas

{ "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "South" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "East" } ] ] },

Ejemplo 3: varios grupos de etiquetas, etiquetasúnicasTambién puede utilizar varios conjuntos de grupos de etiquetas con un único par de clave-valor en cadauno para especificar los criterios de las instancias de un grupo de implementaciones. Cuando utiliza variosgrupos de etiquetas en un grupo de implementaciones, solo las instancias identificadas por todos losgrupos de etiquetas se incluyen en el grupo de implementaciones.

Grupo de etiquetas 1

Clave Valor

Nombre AppVersion-ABC

Grupo de etiquetas 2

Clave Valor

Región North

Grupo de etiquetas 3

Clave Valor

Tipo t2.medium

Puede tener instancias en varias regiones y distintos tipos de instancia etiquetados conName=AppVersion-ABC. En este ejemplo, solo las instancias también etiquetadas con Region=North yType=t2.medium forman parte del grupo de implementaciones.

Vista de configuración de la consola de CodeDeploy:

Versión de API 2014-10-06207

Page 217: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo 3: varios grupos de etiquetas, etiquetas únicas

Estructura JSON:

"ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Key": "Name", "Value": "AppVersion-ABC" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Type", "Value": "t2.medium" } ], ] },

Versión de API 2014-10-06208

Page 218: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo 4: varios grupos de etiquetas, varias etiquetas

Ejemplo 4: varios grupos de etiquetas, varias etiquetasAl utilizar varios grupos de etiquetas con varias etiquetas en uno o más grupos, una instancia debecoincidir con al menos una de las etiquetas de cada uno de los grupos.

Grupo de etiquetas 1

Clave Valor

Entorno Beta

Entorno Staging

Grupo de etiquetas 2

Clave Valor

Región North

Región South

Región East

Grupo de etiquetas 3

Clave Valor

Tipo t2.medium

Tipo t2.large

En este ejemplo, para que se incluya en el grupo de implementaciones, una instancia debe ser etiquetadacon (1) Environment=Beta o Environment=Staging, (2) Region=North, Region=SouthoRegion=East, y (3) Type=t2.medium o Type=t2.large.

En modo de ilustración, las instancias con los siguientes grupos de etiquetas estarían entre las que seincluyen en el grupo de implementaciones:

• Environment=Beta, Region=North,Type=t2.medium• Environment=Staging,Region=East,Type=t2.large• Environment=Staging,Region=South,Type=t2.large

Las instancias con los siguientes grupos de etiquetas no estarían entre las que se incluyen en el grupo deimplementaciones. Los valores de clave resaltados hacen que las instancias que se excluyan:

• Environment=Beta, Region=West,Type=t2.medium• Environment=Staging,Region=East,Type=t2.micro• Environment=Production,Region=South,Type=t2.large

Vista de configuración de la consola de CodeDeploy:

Versión de API 2014-10-06209

Page 219: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo 4: varios grupos de etiquetas, varias etiquetas

Estructura JSON:

"ec2TagSet": { "ec2TagSetList": [ [ { "Type": "KEY_AND_VALUE", "Key": "Environment", "Value": "Beta" }, { "Type": "KEY_AND_VALUE", "Key": "Environment", "Value": "Staging" }

Versión de API 2014-10-06210

Page 220: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTrabajar con instancias Amazon EC2

], [ { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "North" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "South" }, { "Type": "KEY_AND_VALUE", "Key": "Region", "Value": "East" } ], [ { "Type": "KEY_AND_VALUE", "Key": "Type", "Value": "t2.medium" }, { "Type": "KEY_AND_VALUE", "Key": "Type", "Value": "t2.large" } ], ] },

Trabajar con instancias Amazon EC2 paraCodeDeploy

Una instancia Amazon EC2 es un entorno de informática virtual que se crea y se configura mediante elservicio Amazon Elastic Compute Cloud. Amazon EC2 proporciona capacidad de computación escalableen la nube de AWS. Puede utilizar Amazon EC2 para lanzar tantos servidores virtuales como necesite parasus implementaciones de CodeDeploy.

Para obtener más información sobre Amazon EC2, consulte la Amazon EC2 Getting Started Guide.

Las instrucciones de esta sección explican cómo crear y configurar instancias Amazon EC2 para utilizarlasen las implementaciones de CodeDeploy.

Temas• Creación de una instancia Amazon EC2 para CodeDeploy (AWS CLI o consola de Amazon

EC2) (p. 212)• Creación de una instancia Amazon EC2 para CodeDeploy (plantilla de AWS

CloudFormation) (p. 216)• Configuración de una instancia Amazon EC2 para trabajar con CodeDeploy (p. 223)

Versión de API 2014-10-06211

Page 221: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon EC2 para CodeDeploy

Creación de una instancia Amazon EC2 paraCodeDeploy (AWS CLI o consola de Amazon EC2)Estas instrucciones explican cómo lanzar una nueva instancia Amazon EC2 configurada para su uso enimplementaciones de CodeDeploy.

Puede utilizar nuestra plantilla de AWS CloudFormation para lanzar una instancia Amazon EC2 queejecute Amazon Linux o Windows Server que ya esté configurada para su uso en implementaciones deCodeDeploy. No proporcionamos ninguna plantilla de AWS CloudFormation para las instancias AmazonEC2 que ejecutan Ubuntu Server o Red Hat Enterprise Linux (RHEL). Si desea conocer otras alternativasal uso de la plantilla, consulte Trabajar con instancias de CodeDeploy (p. 202).

Puede utilizar la consola de Amazon EC2, la AWS CLI, o las API de Amazon EC2 para lanzar unainstancia Amazon EC2.

Lanzamiento de una instancia Amazon EC2 (consola)Requisitos previos

Si aún no lo ha hecho, siga las instrucciones de Introducción a CodeDeploy (p. 37) para instalar yconfigurar la AWS CLI y crear un perfil de instancia de IAM.

Lanzamiento de una instancia Amazon EC2

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

2. En el panel de navegación, elija Instances (Instancias) y seleccione Launch Instance (Lanzarinstancia).

3. En la página Step 1: Choose an Amazon Machine Image (AMI) (Paso 1: Elegir una imagen demáquina de Amazon [AMI]) de la pestaña Quick Start (Inicio rápido), busque el sistema operativoy la versión que quiera usar y luego elija Select (Seleccionar). Debe elegir un sistema operativo deAMI de Amazon EC2 compatible con CodeDeploy. Para obtener más información, consulte Sistemasoperativos admitidos por el agente de CodeDeploy (p. 176).

4. En la página Step 2: Choose an Instance Type (Paso 2: Elegir un tipo de instancia), elija cualquiertipo de instancia Amazon EC2 disponible y seleccione Next: Configure Instance Details (Siguiente:Configurar detalles de instancia).

5. En la página Step 3: Configure Instance Details (Paso 3: Configurar los detalles de la instancia),en la lista IAM role (Rol de IAM), elija el rol de instancia de IAM que ha creado en Paso 4: Crear unperfil de instancia de IAM para las instancias Amazon EC2 (p. 44). Si ha utilizado el nombre de rolsugerido, elija CodeDeployDemo-EC2-Instance-Profile. Si ha creado su propio nombre de rol,selecciónelo.

Note

Si no se muestran Launch into EC2-Classic (Lanzar en EC2-Classic) o una nube virtualprivada (VPC) predeterminada en la lista Network (Red) y no puede elegir un tipo de instanciaAmazon EC2 distinto que admita el lanzamiento en EC2-Classic, debe elegir o crear una VPCde Amazon y subred. Elija Create new VPC (Crear nueva VPC) o Create new subnet (Crearnueva subred) o ambas opciones. Para obtener más información, consulte VPC y subredes.

6. Elija Next: Add Storage (Siguiente: Añadir almacenamiento).7. Deje la página Step 4: Add Storage (Paso 4: Agregar almacenamiento) sin cambiar y elija Next: Add

Tags (Siguiente: Añadir etiquetas).8. En la página Step 5: Add Tags (Paso 5: Añadir etiquetas), elija Add Tag (Añadir etiqueta).9. En el cuadro Key (Clave), escriba Name. En el cuadro Value (Valor), escriba CodeDeployDemo.

Versión de API 2014-10-06212

Page 222: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon EC2 para CodeDeploy

Important

El contenido de los cuadros Key (Clave) y Value (Valor) distingue entre mayúsculas yminúsculas.

10. Elija Next: Configure Security Group.11. En la página Step 6: Configure Security Group (Paso 6: Configurar un grupo de seguridad), deje la

opción Create a new security group (Crear un grupo de seguridad nuevo) seleccionada.

Se configura un rol de SSH predeterminado para instancias Amazon EC2 que ejecutan Amazon Linux,Ubuntu Server o RHEL. Se configura un rol de RDP predeterminado para instancias Amazon EC2 queejecutan Windows Server.

12. Si desea abrir el puerto HTTP, elija el botón Add Rule (Añadir regla) y en la lista desplegableType (Tipo), elija HTTP. Acepte el valor Source (Origen) predeterminado de Custom 0.0.0.0/0(Personalizado 0.0.0.0/0) y luego elija Review and Launch (Revisar y lanzar).

Note

En un entorno de producción, recomendamos restringir el acceso a los puertos SSH, RDPy HTTP, en lugar de especificar Anywhere 0.0.0.0/0 (Cualquiera 0.0.0.0/0). CodeDeployno requiere acceso ilimitado a los puertos y no requiere acceso HTTP. Para obtener másinformación, consulte Sugerencias para proteger la instancia Amazon EC2.

Si aparece el cuadro de diálogo Boot from General Purpose (SSD) (Arrancar desde uso general[SSD]), siga las instrucciones y luego seleccione Next (Siguiente).

13. Deje la página Step 7: Review Instance Launch (Paso 7: Revisar el lanzamiento de la instancia) sincambiar y elija Launch (Lanzar).

14. En el cuadro de diálogo Select an existing key pair or create a new key pair (Seleccionar par de clavesexistentes o crear nuevo par de claves), elija Choose an existing key pair (Elegir un par de clavesexistente) o Create a new key pair (Crear un nuevo par de claves). Si ya ha configurado un par declaves de la instancia Amazon EC2, puede elegirlo aquí.

Si aún no tiene un par de claves de instancia Amazon EC2, elija Create a new key pair (Crear unnuevo par de claves) y asígnele un nombre fácil de reconocer. Elija Download Key Pair (Descargar parde claves) para descargar el par de claves de la instancia Amazon EC2 en su equipo.

Important

Debe disponer de un par de claves si desea obtener acceso a su instancia Amazon EC2 conSSH o RDP.

15. Elija Launch Instances (Lanzar instancias).16. Elija el ID de su instancia Amazon EC2. No continúe hasta que la instancia se haya lanzado y haya

superado todas las comprobaciones.

Instalación del agente de CodeDeploy

El agente de CodeDeploy debe instalarse en la instancia Amazon EC2 antes de usarlo en lasimplementaciones de CodeDeploy. Para obtener más información, consulte Instalación del agente deCodeDeploy (p. 187).

Note

Puede configurar la instalación y las actualizaciones automáticas del agente de CodeDeploy alcrear el grupo de implementación en la consola.

Versión de API 2014-10-06213

Page 223: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon EC2 para CodeDeploy

Lanzamiento de una instancia Amazon EC2 (CLI)

Requisitos previos

Si aún no lo ha hecho, siga las instrucciones de Introducción a CodeDeploy (p. 37) para instalar yconfigurar la AWS CLI y crear un perfil de instancia de IAM.

Lanzamiento de una instancia Amazon EC2

1. Para Windows Server solo. Si va a crear una instancia Amazon EC2 que ejecuta Windows Server,llame a los comandos create-security-group y authorize-security-group-ingress para crear un grupo deseguridad que permita el acceso RDP (que no se permite de forma predeterminada) y, en su caso, elacceso HTTP. Por ejemplo, para crear un grupo de seguridad llamado CodeDeployDemo-Windows-Security-Group, ejecute los siguientes comandos, uno a la vez:

aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description "For launching Windows Server images for use with CodeDeploy"

aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 3389

aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 80 --ip-protocol tcp --cidr-ip 0.0.0.0/0 --from-port 80

Note

Para fines de demostración, estos comandos crean un grupo de seguridad que permiteacceso ilimitado a RDP a través del puerto 3389 y, en su caso, a HTTP a través del puerto80. Es recomendable que restrinja el acceso a los puertos HTTP y RDP. CodeDeploy norequiere acceso ilimitado a los puertos y no requiere acceso HTTP. Para obtener másinformación, consulte Sugerencias para proteger la instancia Amazon EC2.

2. Llame al comando run-instances para crear y lanzar la instancia Amazon EC2.

Antes de llamar a este comando, debe recopilar lo siguiente:

• El ID de una imagen de máquina de Amazon (AMI) (id-ami) que utiliza para la instancia. Paraobtener el ID, consulte Búsqueda de una AMI de Linux.

• El nombre del tipo de instancia Amazon EC2 (tipo-instancia) que crea, como t1.micro. Paraver una lista, consulte Tipos de instancias de Amazon EC2.

• El nombre de un perfil de instancia de IAM con permiso para acceder al bucket de Amazon S3 en elque se almacenan los archivos de instalación del agente de CodeDeploy para la región.

Para obtener información sobre la creación de un perfil de instancia de IAM, consulte Paso 4: Crearun perfil de instancia de IAM para las instancias Amazon EC2 (p. 44).

• El nombre del par de claves de la instancia Amazon EC2 (key-name) para permitir el acceso SSH auna instancia Amazon EC2 que ejecuta Amazon Linux, Ubuntu Server o RHEL o acceso RDP a unainstancia Amazon EC2 que ejecuta Windows Server.

Important

Escriba solo el nombre del par de claves, no la extensión de archivo del par de claves. Porejemplo, my-keypair, no my-keypair.pem.

Versión de API 2014-10-06214

Page 224: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon EC2 para CodeDeploy

Para encontrar el nombre de un par de claves, abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2. En el panel de navegación, en Network & Security (Red yseguridad), elija Key Pairs (Pares de claves) y anote el nombre del par de claves de la lista.

Para generar un par de claves, consulte Crear un par de claves con Amazon EC2. Compruebe quecrea el par de claves en una de las regiones que se encuentran en la lista de Regiones y puntosde enlace de la AWS General Reference. De lo contrario, no podrá utilizar el par de claves de lainstancia Amazon EC2 con CodeDeploy.

Para Amazon Linux, RHEL y Ubuntu Server

Para llamar al comando run-instances para lanzar una instancia Amazon EC2 que ejecuta AmazonLinux, Ubuntu Server o RHEL y adjuntar el perfil de instancia de IAM que creó en Paso 4: Crear unperfil de instancia de IAM para las instancias Amazon EC2 (p. 44). Por ejemplo:

aws ec2 run-instances \ --image-id ami-id \ --key-name key-name \ --count 1 \ --instance-type instance-type \ --iam-instance-profile Name=iam-instance-profile

Note

Este comando crea un grupo de seguridad predeterminado para la instancia Amazon EC2que permite el acceso a varios puertos, incluido acceso ilimitado a SSH a través del puerto22 y, en su caso, a HTTP a través del puerto 80. Es recomendable que restrinja el acceso alos puertos HTTP y SSH solo. CodeDeploy no requiere acceso ilimitado a los puertos y norequiere acceso al puerto HTTP. Para obtener más información, consulte Sugerencias paraproteger la instancia Amazon EC2.

En Windows Server

Para llamar al comando run-instances y lanzar una instancia Amazon EC2 ejecutando WindowsServer, así como adjuntar el perfil de instancia de IAM que ha creado en Paso 4: Crear un perfilde instancia de IAM para las instancias Amazon EC2 (p. 44) y especificar el nombre del grupo deseguridad que ha creado en el paso 1. Por ejemplo:

aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group

Estos comandos lanzan una sola instancia Amazon EC2 con la AMI, el par de claves y el tipo deinstancia especificados, con el perfil de instancia de IAM indicado, y ejecutan el script especificadodurante el lanzamiento.

3. Anote el valor de InstanceID en la salida. Si olvida este valor, puede obtenerlo más tarde si llama alcomando describe-instances con el par de claves de la instancia Amazon EC2.

aws ec2 describe-instances --filters "Name=key-name,Values=keyName" --query "Reservations[*].Instances[*].[InstanceId]" --output text

Utilice el ID de instancia para llamar al comando create-tags, que etiqueta la instancia Amazon EC2para que CodeDeploy pueda encontrarla más adelante durante una implementación. En el siguienteejemplo, la etiqueta se denomina CodeDeployDemo, pero puede especificar cualquier etiqueta deinstancia Amazon EC2 que desee.

Versión de API 2014-10-06215

Page 225: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

aws ec2 create-tags --resources instance-id --tags Key=Name,Value=CodeDeployDemo

Puede aplicar varias etiquetas a una instancia al mismo tiempo. Por ejemplo:

aws ec2 create-tags --resources instance-id --tags Key=Name,Value=testInstance Key=Region,Value=West Key=Environment,Value=Beta

Para verificar que la instancia Amazon EC2 se ha lanzado y ha superado todas las comprobaciones,utilice el ID de instancia para llamar al comando describe-instance-status.

aws ec2 describe-instance-status --instance-ids instance-id --query "InstanceStatuses[*].InstanceStatus.[Status]" --output text

Si la instancia se ha lanzado y ha superado todas las comprobaciones, aparece ok en la salida:

Instalación del agente de CodeDeploy

El agente de CodeDeploy debe instalarse en la instancia Amazon EC2 antes de usarlo en lasimplementaciones de CodeDeploy. Para obtener más información, consulte Instalación del agente deCodeDeploy (p. 187).

Note

Puede configurar la instalación y las actualizaciones automáticas del agente de CodeDeploy alcrear el grupo de implementación en la consola.

Creación de una instancia Amazon EC2 paraCodeDeploy (plantilla de AWS CloudFormation)Puede utilizar nuestra plantilla de AWS CloudFormation para lanzar rápidamente una instancia AmazonEC2 que ejecute Amazon Linux o Windows Server. Puede utilizar la AWS CLI, la consola de CodeDeployo las API de AWS para lanzar la instancia con la plantilla. Además de lanzar la instancia, la plantilla hace losiguiente:

• Indica a AWS CloudFormation que conceda a la instancia permiso para participar en lasimplementaciones de CodeDeploy.

• Etiqueta la instancia para que CodeDeploy pueda encontrarla durante una implementación.• Instala y ejecuta el agente de CodeDeploy en la instancia.

No es necesario utilizar nuestra plantilla de AWS CloudFormation para configurar una instancia AmazonEC2. Si desea conocer otras alternativas, consulte Trabajar con instancias de CodeDeploy (p. 202).

No proporcionamos ninguna plantilla de AWS CloudFormation para las instancias Amazon EC2 queejecutan Ubuntu Server o Red Hat Enterprise Linux (RHEL).

Important

Si utiliza la plantilla de AWS CloudFormation para lanzar instancias Amazon EC2, el usuario deIAM que llama debe tener acceso a las acciones y servicios de AWS CloudFormation y AWS delos que depende AWS CloudFormation. Si no ha seguido los pasos de Paso 1: Aprovisionar unusuario de IAM (p. 37) para aprovisionar al usuario de IAM que llama, debe adjuntar como mínimola política siguiente:

Versión de API 2014-10-06216

Page 226: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*", "codedeploy:*", "ec2:*", "iam:AddRoleToInstanceProfile", "iam:CreateInstanceProfile", "iam:CreateRole", "iam:DeleteInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PassRole", "iam:PutRolePolicy", "iam:RemoveRoleFromInstanceProfile" ], "Resource": "*" } ]}

Temas• Lanzamiento de una instancia Amazon EC2 con la plantilla de AWS CloudFormation

(consola) (p. 217)• Lanzamiento de una instancia Amazon EC2 con la plantilla de AWS CloudFormation (AWS

CLI) (p. 220)

Lanzamiento de una instancia Amazon EC2 con la plantilla deAWS CloudFormation (consola)Antes de comenzar, debe disponer de un par de claves de instancia para permitir el acceso SSH a lainstancia Amazon EC2 que ejecuta Amazon Linux o el acceso RDP a la instancia que ejecuta WindowsServer. Escriba solo el nombre del par de claves, no la extensión de archivo del par de claves.

Para encontrar el nombre de un par de claves, abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2. En el panel de navegación, en Network & Security (Red y seguridad), elijaKey Pairs (Pares de claves) y anote el nombre del par de claves de la lista.

Para generar un par de claves nuevo, consulte Crear un par de claves con Amazon EC2. Asegúrese deque crea el par de claves en una de las regiones que se encuentran en la lista de Regiones y puntos deenlace de la AWS General Reference. De lo contrario, no puede utilizar el par de claves de la instancia conCodeDeploy.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS CloudFormation enhttps://console.aws.amazon.com/cloudformation.

Important

Inicie sesión en la Consola de administración de AWS con la misma cuenta que utilizó enIntroducción a CodeDeploy (p. 37). En la barra de navegación, en el selector de regiones,elija una de las regiones enumeradas en Regiones y puntos de enlace en la AWS GeneralReference. CodeDeploy solo es compatible con estas regiones.

2. Elija Create Stack.

Versión de API 2014-10-06217

Page 227: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

3. En Choose a template (Elija una plantilla), elija Specify an Amazon S3 template URL (Especificaruna URL de plantilla de Amazon S3). En el cuadro, escriba la ubicación de la plantilla de AWSCloudFormation para su región y, a continuación, elija Next (Siguiente).

Region Location of AWS CloudFormation template

Región EE.UU Este (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región EE.UU. Este (Norte de Virginia) http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

EE.UU. Oeste (Norte de California) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región EE.UU. Oeste (Oregón) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región de Europa (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región de Europa (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/templates/latest/CodeDeploy_SampleCF_Template.json

Región de Europa (Fráncfort) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Hong Kong) http://s3-ap-east-1.amazonaws.com/aws-codedeploy-ap-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

Versión de API 2014-10-06218

Page 228: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

Region Location of AWS CloudFormation template

Región Asia Pacífico (Tokio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Seúl) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Singapur) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Sídney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región América del Sur (São Paulo) aws-codedeploy-ap-northeast-1.s3.ap-east-1.amazonaws.com/templates/latest/CodeDeploy_SampleCF_Template.json

4. En el cuadro Stack name (Nombre de la pila), escriba un nombre para la pila (por ejemplo,CodeDeployDemoStack).

5. En Parameters (Parámetros), escriba lo siguiente y seleccione Next (Siguiente).

• En InstanceCount, escriba el número de instancias que desea lanzar. (Le recomendamos que dejeel valor predeterminado, 1).

• En InstanceType, escriba el tipo de instancia que desea lanzar (o deje el valor predeterminado,t1.micro).

• En KeyPairName, escriba el nombre de la clave de la instancia.• En el cuadro OperatingSystem, escriba Windows para lanzar instancias que ejecutan Windows

Server (o deje el valor predeterminado, Linux).• En SSHLocation, escriba el rango de direcciones IP que desea utilizar para conectarse a la instancia

con SSH o RDP (o deje el valor predeterminado, 0.0.0.0/0).

Important

El valor predeterminado, 0.0.0.0/0, se suministra únicamente con fines ilustrativos.CodeDeploy no requiere instancias Amazon EC2 para tener acceso ilimitado a los puertos.Es recomendable que restrinja el acceso a los puertos SSH (y HTTP). Para obtener másinformación, consulte Sugerencias para proteger la instancia Amazon EC2.

• En TagKey, escriba la clave de etiqueta de instancia que CodeDeploy utilizará para identificar lasinstancias durante la implementación (o deje el valor predeterminado, Name (Nombre)).

Versión de API 2014-10-06219

Page 229: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

• En TagValue, escriba el valor de etiqueta de instancia que CodeDeploy utilizará para identificar lasinstancias durante la implementación (o deje el valor predeterminado, CodeDeployDemo).

6. En la página Options (Opciones), deje las casillas de opción vacías y elija Next (Siguiente).Important

Las etiquetas de AWS CloudFormation son diferentes a las etiquetas de CodeDeploy. AWSCloudFormation utiliza etiquetas para simplificar la administración de la infraestructura.CodeDeploy utiliza etiquetas para identificar instancias Amazon EC2. Ha especificadoetiquetas de CodeDeploy en la página Specify Parameters (Especificar parámetros).

7. En la página Review (Revisar), en Capabilities (Capacidades), seleccione el cuadro I acknowledge thatAWS CloudFormation might create IAM resources (Confirmo que AWS CloudFormation puede crearrecursos de IAM) y, a continuación, elija Create (Crear).

Una vez que AWS CloudFormation haya creado la pila y lanzado las instancias Amazon EC2, en laconsola de AWS CloudFormation se mostrará CREATE_COMPLETE en la columna Status (Estado).Este proceso puede tardar varios minutos.

Para verificar que el agente de CodeDeploy se está ejecutando en las instancias Amazon EC2, consulteGestión de las operaciones del agente de CodeDeploy (p. 184) y, a continuación, continúe en Creación deuna aplicación con CodeDeploy (p. 270).

Lanzamiento de una instancia Amazon EC2 con la plantilla deAWS CloudFormation (AWS CLI)Siga las instrucciones de Introducción a CodeDeploy (p. 37) para instalar y configurar la AWS CLI parautilizarla con CodeDeploy.

Antes de ejecutar el comando create-stack, debe disponer de un par de claves de instancia Amazon EC2para permitir el acceso SSH a la instancia Amazon EC2 que ejecuta Amazon Linux o el acceso RDP ala instancia Amazon EC2 que ejecuta Windows Server. Escriba solo el nombre del par de claves, no laextensión de archivo del par de claves.

Para encontrar el nombre de un par de claves, abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2. En el panel de navegación, en Network & Security (Red y seguridad), elijaKey Pairs (Pares de claves) y anote el nombre del par de claves de la lista.

Para generar un par de claves, consulte Crear un par de claves con Amazon EC2. Asegúrese de quese crea el par de claves en una de las regiones que se encuentran en la lista de Regiones y puntos deenlace de la AWS General Reference. De lo contrario, no puede utilizar el par de claves de la instancia conCodeDeploy.

1. Utilice nuestra plantilla de AWS CloudFormation en una llamada al comando create-stack. Esta pilalanzará una nueva instancia Amazon EC2 con el agente de CodeDeploy instalado.

Para lanzar una instancia Amazon EC2 que ejecuta Amazon Linux:

aws cloudformation create-stack \ --stack-name CodeDeployDemoStack \ --template-url templateURL \ --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro \ ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Linux \ ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name \ ParameterKey=TagValue,ParameterValue=CodeDeployDemo \ --capabilities CAPABILITY_IAM

Versión de API 2014-10-06220

Page 230: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

Para lanzar una instancia Amazon EC2 que ejecuta Windows Server:

aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url template-url --parameters ParameterKey=InstanceCount,ParameterValue=1 ParameterKey=InstanceType,ParameterValue=t1.micro ParameterKey=KeyPairName,ParameterValue=keyName ParameterKey=OperatingSystem,ParameterValue=Windows ParameterKey=SSHLocation,ParameterValue=0.0.0.0/0 ParameterKey=TagKey,ParameterValue=Name ParameterKey=TagValue,ParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM

template-url es la ubicación de la plantilla de AWS CloudFormation para su región:

Region Location of AWS CloudFormation template

Región EE.UU Este (Ohio) http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región EE.UU. Este (Norte de Virginia) http://s3.amazonaws.com/aws-codedeploy-us-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

EE.UU. Oeste (Norte de California) http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región EE.UU. Oeste (Oregón) http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región Canadá (Central) http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región de Europa (Irlanda) http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región de Europa (Londres) http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/templates/latest/CodeDeploy_SampleCF_Template.json

  http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/templates/latest/CodeDeploy_SampleCF_Template.json

Versión de API 2014-10-06221

Page 231: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una instancia Amazon

EC2 (plantilla de AWS CloudFormation)

Region Location of AWS CloudFormation template

Región de Europa (Fráncfort) http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Hong Kong) http://s3-ap-east-1.amazonaws.com/aws-codedeploy-ap-east-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Tokio) http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Seúl) http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Singapur) http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Sídney) http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/templates/latest/CodeDeploy_SampleCF_Template.json

Región Asia Pacífico (Mumbai) http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/templates/latest/CodeDeploy_SampleCF_Template.json

Región América del Sur (São Paulo) aws-codedeploy-ap-northeast-1.s3.ap-east-1.amazonaws.com/templates/latest/CodeDeploy_SampleCF_Template.json

Este comando crea una pila de AWS CloudFormation denominada CodeDeployDemoStack mediantela plantilla de AWS CloudFormation en el bucket de Amazon S3 especificado. La instancia AmazonEC2 se basa en el tipo de instancia t1.micro, pero puede utilizar cualquier tipo. Está etiquetada conel valor CodeDeployDemo, pero se puede etiquetar con cualquier valor. Se le ha aplicado el par declaves de instancia especificado.

2. Ejecute el comando describe-stacks para comprobar que la pila de AWS CloudFormation denominadaCodeDeployDemoStack se ha creado correctamente:

Versión de API 2014-10-06222

Page 232: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de una instancia Amazon EC2

aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query "Stacks[0].StackStatus" --output text

No continúe hasta que se devuelva el valor CREATE_COMPLETE.

Para verificar que el agente de CodeDeploy se está ejecutando en la instancia Amazon EC2, consulteGestión de las operaciones del agente de CodeDeploy (p. 184) y, a continuación, continúe en Creación deuna aplicación con CodeDeploy (p. 270).

Configuración de una instancia Amazon EC2 paratrabajar con CodeDeployEstas instrucciones muestran cómo configurar una instancia Amazon EC2 ejecutando Amazon Linux,Ubuntu Server, Red Hat Enterprise Linux (RHEL) o Windows Server para utilizarla en implementaciones deCodeDeploy.

Note

Si no tiene una instancia Amazon EC2, puede utilizar la plantilla de AWS CloudFormation paralanzar una que esté ejecutando Amazon Linux o Windows Server. No proporcionamos unaplantilla para Ubuntu Server ni para RHEL.

Paso 1: Verificar que el perfil de instancia de IAM esté asociado ala instancia Amazon EC21. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://

console.aws.amazon.com/ec2/.2. En el panel de navegación, bajo Instances, elija Instances.3. Busque la instancia Amazon EC2 en la lista y selecciónela.4. En el panel de detalles de la pestaña Description (Descripción), tome nota del valor del campo IAM

role (Rol de IAM) y, a continuación, continúe en la siguiente sección.

Si el campo está vacío, puede asociar a la instancia un perfil de instancia de IAM. Para obtener másinformación, consulte Adjuntar un rol de IAM a una instancia.

Paso 2: Verificar que el perfil de instancia de IAM adjunto tienelos permisos de acceso correctos1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Seleccione Roles en el panel de navegación.3. Busque y elija el nombre de rol de IAM que observó en el paso 4 de la sección anterior.

Note

Si desea utilizar el rol de servicio generado por la plantilla de AWS CloudFormation enlugar del que creó siguiendo las instrucciones de Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39), tenga en cuenta lo siguiente:En algunas versiones de nuestra plantilla de AWS CloudFormation, el nombre devisualización del perfil de instancia de IAM generado y asociado a las instancias Amazon EC2no es el mismo que el nombre de visualización de la consola de IAM. Por ejemplo, el perfilde instancia de IAM podría tener el nombre de visualización CodeDeploySampleStack-

Versión de API 2014-10-06223

Page 233: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de una instancia Amazon EC2

expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX, mientras que elperfil de instancia de IAM en la consola de IAM podría tener el nombre de visualizaciónCodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EX.Para ayudarle a identificar el perfil de instancia en la consola de IAM, verá que el prefijoCodeDeploySampleStack-expnyi6-InstanceRole es el mismo para ambos. Paraobtener información acerca de por qué estos nombres de visualización podrían ser diferentes,consulte Perfiles de instancia.

4. Seleccione la pestaña Trust Relationships. Si en Trusted Entities (Entidades de confianza) noexiste la entrada The identity provider(s) ec2.amazonaws.com (Los proveedores de identidadec2.amazonaws.com), no puede utilizar esta instancia Amazon EC2. Deténgase y cree una instanciaAmazon EC2 con la información de Trabajar con instancias de CodeDeploy (p. 202).

Si existe la entrada The identity provider(s) ec2.amazonaws.com (Los proveedores de identidadec2.amazonaws.com) y solamente almacena las aplicaciones en repositorios de GitHub, pasedirectamente a Paso 3: Etiquetar la instancia Amazon EC2 (p. 225).

Si existe la entrada The identity provider(s) ec2.amazonaws.com (Los proveedores de identidadamazonaws.com) y almacena las aplicaciones en buckets de Amazon S3, elija la pestaña Permissions(Permisos).

5. Si hay una política en el área Permissions policies (Políticas de permisos), amplíe la política y, acontinuación, elija Edit policy (Editar política).

6. Seleccione la pestaña JSON. Si está almacenando sus aplicaciones en buckets de Amazon S3,asegúrese de que "s3:Get*" y "s3:List*" estén en la lista de acciones especificadas.

Puede tener un aspecto similar al siguiente:

{"Statement":[{"Resource":"*","Action":[ ... Some actions may already be listed here ... "s3:Get*","s3:List*" ... Some more actions may already be listed here ... ],"Effect":"Allow"}]}

O puede tener un aspecto similar al siguiente:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ ... Some actions may already be listed here ... "s3:Get*", "s3:List*" ... Some more actions may already be listed here ... ], ... } ] }

Si ni "s3:Get*" ni "s3:List*" figuran en la lista de acciones especificadas, elija Edit (Editar)para añadirlas y, a continuación, elija Save (Guardar). (Si ni "s3:Get*" ni "s3:List*" es la últimaacción de la lista, asegúrese de añadir una coma después de la acción, por lo tanto se valida eldocumento de la política).

Note

Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 alos que las instancias Amazon EC2 deban tener acceso. Asegúrese de conceder acceso a

Versión de API 2014-10-06224

Page 234: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de una instancia Amazon EC2

los buckets de Amazon S3 que contienen el agente de CodeDeploy. De lo contrario, puedeproducirse un error cuando el agente de CodeDeploy se instale o actualice en las instancias.Para conceder al perfil de instancia de IAM acceso únicamente a algunos buckets del kit derecursos de CodeDeploy en Amazon S3, use la política siguiente, pero elimine las líneas delos buckets a los que quiere impedir el acceso:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]}

Paso 3: Etiquetar la instancia Amazon EC2Para obtener instrucciones acerca de cómo etiquetar la instancia Amazon EC2 para que CodeDeploypueda encontrarla durante una implementación, consulte Trabajo con etiquetas mediante la consola y, acontinuación, vuelva a esta página.

Note

Puede etiquetar la instancia Amazon EC2 con la clave y el valor que desee. Pero asegúrese deespecificar esta clave y valor cuando realice una implementación en ella.

Paso 4: Instalar el agente de AWS CodeDeploy en la instanciaAmazon EC2Para obtener instrucciones acerca de cómo instalar el agente de CodeDeploy en la instancia Amazon EC2y verificar que se está ejecutando, consulte Gestión de las operaciones del agente de CodeDeploy (p. 184)y, a continuación, continúe en Creación de una aplicación con CodeDeploy (p. 270).

Versión de API 2014-10-06225

Page 235: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTrabajar con instancias on-premise

Trabajar con instancias on-premises deCodeDeploy

Una instancia local es cualquier dispositivo físico que no sea una instancia Amazon EC2 y que puedaejecutar el agente de CodeDeploy y conectarse a puntos de enlace de servicio de AWS públicos.

La implementación de una revisión de la aplicación de CodeDeploy en una instancia local implica dospasos principales:

• Paso 1: Configurar cada instancia local, registrarla en CodeDeploy y, a continuación, etiquetarla.• Paso 2: Implementar revisiones de la aplicación en la instancia on-premises.

Note

Para experimentar con la creación e implementación de una revisión de la aplicación demuestra en una instancia on-premises correctamente configurada y registrada, consulteTutorial: Implementación de una aplicación en una instancia on-premises con CodeDeploy(Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104). Para obtener másinformación sobre las instancias on-premises y cómo funcionan con CodeDeploy, consulteTrabajar con instancias on-premise (p. 226).

Si ya no desea usar una instancia on-premises en las implementaciones, simplemente puede eliminarlas etiquetas de la instancia on-premises de los grupos de implementaciones. Para utilizar un métodomás eficaz, elimine las etiquetas de la instancia on-premises de la instancia. También puede anular elregistro de una instancia on-premises de forma explícita para que ya no se pueda utilizar en ningunaimplementación. Para obtener más información, consulte Cómo administrar operaciones de instancias on-premises en CodeDeploy (p. 249).

Las instrucciones de esta sección explican cómo configurar una instancia on-premises y, a continuación,registrarla y etiquetarla en CodeDeploy para que se pueda utilizar en las implementaciones. Esta seccióntambién describe cómo utilizar CodeDeploy para obtener información acerca de las instancias on-premisesy cómo anular el registro de una instancia on-premises si ya no piensa implementarla.

Temas• Requisitos previos para configurar una instancia on-premise (p. 226)• Registrar una instancia on-premises en CodeDeploy (p. 227)• Cómo administrar operaciones de instancias on-premises en CodeDeploy (p. 249)

Requisitos previos para configurar una instancia on-premiseSe deben cumplir los siguientes requisitos previos para poder registrar una instancia on-premise.

Important

Si utiliza el comando register-on-premises-instance y actualiza periódicamente las credencialestemporales generadas con AWS Security Token Service (AWS STS), existen otros requisitosprevios. Para obtener información, consulte Requisitos previos del registro de ARN de sesión deIAM (p. 242).

Requisitos de los dispositivos

Versión de API 2014-10-06226

Page 236: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

El dispositivo que desea preparar, registrar y etiquetar como una instancia on-premises con CodeDeploydebe ejecutarse en un sistema operativo compatible. Para ver una lista, consulte Sistemas operativosadmitidos por el agente de CodeDeploy (p. 176).

Si su sistema operativo no es compatible, el agente de CodeDeploy está disponible como código abiertopara que pueda adaptarse a sus necesidades. Para obtener más información, consulte el repositorioAgente de CodeDeploy en GitHub.

Comunicación saliente

La instancia on-premises debe poder conectarse a los puntos de enlace de servicio de AWS públicos paracomunicarse con CodeDeploy.

El agente de CodeDeploy se comunica con el exterior a través de HTTPS sobre el puerto 443.

Control administrativo

La cuenta local o de red utilizada en la instancia on-premises para configurar dicha instancia debe poderejecutarse como sudo o root (para Ubuntu Server) o como administrador (para Windows Server).

Permisos de IAM

La identidad de IAM que utiliza para registrar la instancia on-premises debe tener permisos para completarel registro (y para anular el registro de la instancia on-premise, según sea necesario).

Además de la política descrita en Introducción a CodeDeploy (p. 37), asegúrese de que la identidad de IAMque efectúa la llamada también tiene asocia la siguiente política adicional. Para obtener información acercade cómo adjuntar directivas de IAM, consulte Administración de directivas de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser" ], "Resource": "*" } ]}

Registrar una instancia on-premises en CodeDeployPara registrar una instancia on-premise, debe utilizar una identidad de IAM para autenticar las solicitudes.Puede elegir entre las siguientes opciones para la identidad de IAM y el método de registro que utilice:

• Utilice un ARN de usuario de IAM para autenticar las solicitudes.• Utilice el comando register para el proceso de registro más automatizado. Es el más adecuado para

registrar una instancia on-premises individual. Para obtener información, consulte Uso del comandoregister (ARN de usuario de IAM) para registrar una instancia on-premises (p. 228).

Versión de API 2014-10-06227

Page 237: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

• Utilice el comando register-on-premises-instance para configurar manualmente la mayoría de lasopciones de registro. Es adecuado para registrar un pequeño número de instancias on-premises. Paraobtener información, consulte Uso del comando register-on-premises-instance (ARN de un usuario deIAM) para registrar una instancia on-premises (p. 233).

• Utilice un ARN de rol de IAM para autenticar las solicitudes.• Utilice el comando register-on-premises-instance y actualice periódicamente las credenciales

temporales generadas con AWS Security Token Service (AWS STS) para configurar manualmente lamayoría de las opciones de registro. Es el más adecuado para registrar un gran número de instanciason-premises. Para obtener información, consulte Usar el comando register-on-premises-instance (ARNde sesión de IAM) para registrar una instancia on-premises (p. 242).

Temas• Uso del comando register (ARN de usuario de IAM) para registrar una instancia on-premises (p. 228)• Uso del comando register-on-premises-instance (ARN de un usuario de IAM) para registrar una

instancia on-premises (p. 233)• Usar el comando register-on-premises-instance (ARN de sesión de IAM) para registrar una instancia

on-premises (p. 242)

Uso del comando register (ARN de usuario de IAM) para registraruna instancia on-premisesEsta sección describe cómo configurar una instancia on-premises y cómo registrarla y etiquetarla enCodeDeploy con el mínimo esfuerzo. El comando register resulta especialmente útil cuando se trabaja conuna sola flota o con flotas pequeñas de instancias on-premises. Solo puede utilizar el comando register siemplea un ARN de usuario de IAM para autenticar una instancia. No puede utilizar el comando register conun ARN de sesión de IAM para la autenticación.

Cuando utiliza el comando register, puede permitir que CodeDeploy haga lo siguiente:

• Crear un usuario de IAM en AWS Identity and Access Management para la instancia on-premises, si noespecifica uno en particular con el comando.

• Guardar las credenciales del usuario de IAM en un archivo de configuración de la instancia on-premises.• Registrar la instancia on-premises en CodeDeploy.• Añadir etiquetas a la instancia on-premises, si las especifica como parte del comando.

Note

El comando register-on-premises-instance es una alternativa al comando register. Utiliceel comando register-on-premises-instance si desea configurar una instancia on-premises yregistrarla y etiquetarla con CodeDeploy por su cuenta. El comando register-on-premises-instancetambién le da la opción de utilizar un ARN de sesión de IAM para registrar instancias en lugarde un ARN de usuario de IAM. Este enfoque proporciona una gran ventaja si tiene grandesflotas de instancias on-premises. En concreto, puede utilizar un solo ARN de sesión de IAM paraautenticar múltiples instancias en lugar de tener que crear un usuario de IAM para cada instanciaon-premises. Para obtener más información, consulte Uso del comando register-on-premises-instance (ARN de un usuario de IAM) para registrar una instancia on-premises (p. 233) y Usar elcomando register-on-premises-instance (ARN de sesión de IAM) para registrar una instancia on-premises (p. 242).

Temas• Paso 1: Instalar y configurar la AWS CLI en la instancia on-premises (p. 229)• Paso 2: Llamar al comando register (p. 230)

Versión de API 2014-10-06228

Page 238: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

• Paso 3: Llamar al comando install (p. 231)• Paso 4: Implementar revisiones de la aplicación en la instancia on-premises (p. 232)• Paso 5: Hacer un seguimiento de las implementaciones en la instancia on-premises (p. 232)

Paso 1: Instalar y configurar la AWS CLI en la instancia on-premises

1. Instale la AWS CLI en la instancia on-premises. Siga las instrucciones que se describen en Instalaciónde la interfaz de línea de comandos de AWS en la Guía del usuario de la interfaz de línea decomandos de AWS.

Note

Los comandos de CodeDeploy para trabajar con instancias on-premises están disponiblesa partir de la versión 1.7.19 de la AWS CLI. Si ya tiene instalada la AWS CLI, llame a aws --version para comprobar su versión.

2. Configure la AWS CLI en la instancia on-premises. Siga las instrucciones que aparecen enConfiguración de la interfaz de línea de comandos de AWS en la Guía del usuario de la interfaz delínea de comandos de AWS.

Important

Al configurar la AWS CLI (por ejemplo, llamando al comando aws configure), asegúrese deespecificar el ID de la clave secreta y la clave de acceso secreta de un usuario de IAM quetenga, como mínimo, los siguientes permisos de acceso de AWS, además de los permisosespecificados en Requisitos previos para configurar una instancia on-premise (p. 226). Estole permite descargar e instalar el agente de CodeDeploy en la instancia on-premises. Lospermisos de acceso podrían tener un aspecto similar a este:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser", "tag:GetTags", "tag:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*",

Versión de API 2014-10-06229

Page 239: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

"arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]}

Paso 2: Llamar al comando register

Para este paso se da por sentado que va a registrar la instancia on-premises desde la propia instancia on-premises. También puede registrar una instancia on-premises desde un dispositivo o instancia diferenteque tenga la AWS CLI instalada y configurada, como se describe en el paso anterior.

Utilice la AWS CLI para llamar al comando register especificando:

• Un nombre que identifica de forma inequívoca la instancia on-premises a CodeDeploy, (con la opción --instance-name).

Important

Para ayudarle a identificar la instancia on-premises en otro momento, especialmente a efectosde depuración, recomendamos encarecidamente que utilice un nombre que se asigne a algunascaracterísticas exclusivas de la instancia on-premises (por ejemplo, el número de serie o algúnidentificador único de recurso interno, si procede). Si especifica una dirección MAC para unnombre, debe tener en cuenta que las direcciones MAC contienen caracteres que CodeDeployno permite, como los dos puntos (:). Para obtener una lista de los caracteres permitidos,consulte Límites de CodeDeploy (p. 447).

• Si lo desea, el ARN de un usuario de IAM existente que desea asociar a esta instancia on-premises,(con la opción --iam-user-arn). Para obtener el ARN de un usuario de IAM, ejecute el comandoget-user o elija el nombre de usuario de IAM en la sección Users (Usuarios) de la consola de IAM y, acontinuación, busque el valor User ARN (ARN de usuario) en la sección Summary (Resumen). Si no seespecifica esta opción, CodeDeploy creará un usuario de IAM en su nombre en la cuenta de AWS y loasociará a la instancia on-premises.

Important

Si especifica la opción --iam-user-arn, además debe crear manualmente el archivo deconfiguración de la instancia on-premises, como se describe en Paso 4: Añadir un archivo deconfiguración a la instancia on-premises (p. 237).Puede asociar un solo usuario de IAM a una sola instancia on-premises. Intentar asociarun solo usuario de IAM a múltiples instancias on-premises puede producir errores,implementaciones fallidas en dichas instancias on-premises o implementaciones en dichasinstancias on-premises que permanecen en estado pendiente perpetuo.

• Si lo desea, un conjunto de etiquetas de instancias on-premises (con la opción --tags) queCodeDeploy utilizará para identificar el conjunto de instancias Amazon EC2 en el que se realizará laimplementación. Especifique cada etiqueta con Key=tag-key,Value=tag-value (por ejemplo,Key=Name,Value=Beta Key=Name,Value=WestRegion). Si no se especifica esta opción, no seregistrarán etiquetas. Para registrar etiquetas en otro momento, llame al comando add-tags-to-on-premises-instances.

Versión de API 2014-10-06230

Page 240: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

• Si lo desea, la región de AWS en la que se registrará la instancia on-premises en CodeDeploy (con laopción --region). Debe ser una de las regiones admitidas que se encuentran en la lista de Regionesy puntos de enlace de la AWS General Reference (por ejemplo, us-west-2). Si no se especifica estaopción, se utilizará la región predeterminada de AWS asociada al usuario de IAM que realiza la llamada.

Por ejemplo:

aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2

El comando register hace lo siguiente:

1. Si no se especifica un usuario de IAM existente, lo crea, le asocia los permisos necesarios y generala clave secreta y la clave de acceso secreta del usuario de IAM. La instancia on-premises utilizaráeste usuario de IAM, así como sus permisos y credenciales, para la autenticación e interacción conCodeDeploy.

2. Registra la instancia on-premises en CodeDeploy.3. Si se especifica, asocia en CodeDeploy las etiquetas que se especifican en la opción --tags con el

nombre de la instancia on-premises registrada.4. Si ya se ha creado el usuario de IAM, también crea el archivo de configuración necesario en el mismo

directorio desde el que se ejecutó el comando register.

Si este comando encuentra algún error, aparece un mensaje en el que se describe cómo realizarmanualmente los pasos faltantes. En caso contrario, aparece un mensaje de confirmación en el que sedescribe cómo ejecutar el comando install según se indica en el siguiente paso.

Paso 3: Llamar al comando install

Utilice la AWS CLI en la instancia on-premises para ejecutar el comando install, especificando:

• La ruta al archivo de configuración (con la opción --config-file).• Si lo desea, si se reemplazará el archivo de configuración que ya existe en la instancia on-premises

(con la opción --override-config). Si no se especifica, no se sustituirá el archivo de configuraciónexistente.

• Si lo desea, la región de AWS en la que se registrará la instancia on-premises en CodeDeploy (con laopción --region). Debe ser una de las regiones admitidas que se encuentran en la lista de Regionesy puntos de enlace de la AWS General Reference (por ejemplo, us-west-2). Si no se especifica estaopción, se utilizará la región predeterminada de AWS asociada al usuario de IAM que realiza la llamada.

• Si lo desea, una ubicación personalizada desde la que se instalará el agente de CodeDeploy (con laopción --agent-installer). Esta opción es útil para instalar una versión personalizada del agentede CodeDeploy con el que CodeDeploy no es oficialmente compatible (como la versión personalizadabasada en el repositorio del agente de CodeDeploy en GitHub). El valor debe ser la ruta a un bucket deAmazon S3 que contenga cualquiera de los siguientes:• Un script de instalación del agente de CodeDeploy (para sistemas operativos basados en Linux o en

Unix, similar al archivo de instalación del repositorio del agente de CodeDeploy en GitHub).• Un archivo del paquete de instalación (.msi) del agente de CodeDeploy (para sistemas operativos

basados en Windows).

Si no se especifica esta opción, CodeDeploy intentará instalar desde su propia ubicación una versiónoficialmente compatible del agente de CodeDeploy válida para el sistema operativo de la instancia local.

Por ejemplo:

Versión de API 2014-10-06231

Page 241: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

El comando install hace lo siguiente:

1. Comprueba si la instancia on-premises es una instancia Amazon EC2. Si lo es, aparece un mensaje deerror.

2. Copia el archivo de configuración de las instancias on-premises desde la ubicación especificada en lainstancia a la ubicación donde el agente de CodeDeploy espera encontrarlo, siempre que el archivo yano esté en esa ubicación.

Para Ubuntu Server y Red Hat Enterprise Linux (RHEL), es /etc/codedeploy-agent/conf/codedeploy.onpremises.yml.

Para Windows Server, es C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.

Si se especificó la opción --override-config, crea o sobrescribe el archivo.3. Instala el agente de CodeDeploy en la instancia on-premises y, a continuación, lo inicia.

Paso 4: Implementar revisiones de la aplicación en la instancia on-premises

Ahora está listo para implementar revisiones de aplicaciones en la instancia on-premises registrada yetiquetada.

La implementación de revisiones de aplicaciones en instancias on-premises es similar a la implementaciónde revisiones de aplicaciones en instancias Amazon EC2. Para obtener instrucciones, consulte Crearuna implementación con CodeDeploy (p. 321). Estas instrucciones incluyen un enlace a los requisitosprevios, incluida la creación de una aplicación, la creación de un grupo de implementaciones y lapreparación de la revisión de una aplicación. Si necesita una revisión de una aplicación sencillapara implementar, puede crear la que se describe en Paso 2: Crear una revisión de aplicación deejemplo (p. 105) en el Tutorial: Implementación de una aplicación en una instancia on-premises conCodeDeploy (Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104).

Important

Si reutiliza un rol de servicio de CodeDeploy existente como parte de la creación de un grupo deimplementaciones que tiene como destino instancias on-premises, debe incluir Tag:get* enla parte Action de la instrucción de política del rol de servicio. Para obtener más información,consulte Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).

Paso 5: Hacer un seguimiento de las implementaciones en la instancia on-premises

Después de implementar una revisión de una aplicación en instancias on-premises registradas yetiquetadas, puede hacer un seguimiento del progreso de la implementación.

El seguimiento de las implementaciones en instancias on-premises es similar al seguimiento de lasimplementaciones en instancias Amazon EC2. Para obtener instrucciones, consulte Visualización de losdetalles de las implementaciones de CodeDeploy (p. 337).

Para obtener más opciones, consulte Cómo administrar operaciones de instancias on-premises enCodeDeploy (p. 249).

Versión de API 2014-10-06232

Page 242: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Uso del comando register-on-premises-instance (ARN de unusuario de IAM) para registrar una instancia on-premisesSiga estas instrucciones para configurar una instancia on-premises y registrarla y etiquetarla conCodeDeploy por su cuenta, utilizando las credenciales estáticas de un usuario de IAM para laautenticación.

Temas• Paso 1: Crear un usuario de IAM para la instancia on-premises (p. 233)• Paso 2: Asignar permisos al usuario de IAM (p. 233)• Paso 3: Obtener las credenciales del usuario de IAM (p. 235)• Paso 4: Añadir un archivo de configuración a la instancia on-premises (p. 237)• Paso 5: Instalar y configurar la AWS CLI (p. 238)• Paso 6: Establecer la variable de entorno AWS_REGION (Ubuntu Server y RHEL

únicamente) (p. 239)• Paso 7: Instalar el agente de CodeDeploy (p. 239)• Paso 8: Registrar la instancia on-premises con CodeDeploy (p. 240)• Paso 9: Etiquetar la instancia on-premises (p. 240)• Paso 10: Implementar revisiones de aplicaciones en la instancia on-premises (p. 241)• Paso 11: Hacer un seguimiento de las implementaciones en la instancia on-premises (p. 241)

Paso 1: Crear un usuario de IAM para la instancia on-premisesCree un usuario de IAM que la instancia on-premises utilizará para la autenticación e interacción conCodeDeploy.

Important

Debe crear un usuario de IAM diferente para cada instancia on-premises que emplee. Si intentareutilizar un usuario individual de IAM para varias instancias en las instalaciones, es posible queno pueda registrar o etiquetar correctamente esas instancias en las instalaciones en CodeDeploy.Las implementaciones en esas instancias on-premises pueden quedarse bloqueadas en unestado pendiente perpetuo o producir errores.

Le recomendamos que asigne al usuario de IAM un nombre que identifique su finalidad, comoCodeDeployUser-OnPrem.

Puede utilizar la AWS CLI o la consola de IAM para crear un usuario de IAM. Para obtener información,consulte Creación de un usuario IAM en su cuenta de AWS.

Important

Tanto si utiliza la AWS CLI como la consola de IAM para crear un nuevo usuario de IAM, anote elARN proporcionado para el usuario. Necesitará esta información más tarde en Paso 4: Añadir unarchivo de configuración a la instancia on-premises (p. 237) y Paso 8: Registrar la instancia on-premises con CodeDeploy (p. 240).

Paso 2: Asignar permisos al usuario de IAMSi su instancia on-premises va a implementar revisiones de aplicaciones desde buckets de Amazon S3,debe asignar al usuario de IAM los permisos necesarios para interactuar con esos buckets. Puede utilizarla AWS CLI o la consola de IAM para asignar permisos.

Note

Si va a implementar revisiones de aplicaciones únicamente desde repositorios de GitHub, omitaeste paso y vaya directamente a Paso 3: Obtener las credenciales del usuario de IAM (p. 235).

Versión de API 2014-10-06233

Page 243: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

(También necesitará información sobre el usuario de IAM que creó en el Paso 1: Crear un usuariode IAM para la instancia on-premises (p. 233). Se utilizará en pasos posteriores).

Para asignar permisos (CLI)

1. Cree un archivo con el siguiente contenido de política en la instancia Amazon EC2 o en el dispositivoque va a utilizar para llamar a la AWS CLI. Asigne al archivo un nombre como CodeDeploy-OnPrem-Permissions.json y, a continuación, guárdelo.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Note

Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 a losque su instancia on-premises necesite tener acceso. Si restringe esta política, asegúresede conceder acceso también a los buckets de Amazon S3 que contienen el agente deAWS CodeDeploy. De lo contrario, podría producirse un error siempre que el agente deCodeDeploy se instale o actualice en la instancia on-premises asociada.Por ejemplo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]

Versión de API 2014-10-06234

Page 244: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

}

2. Llame al comando put-user-policy, especificando el nombre del usuario de IAM (con la opción --user-name), un nombre para la política (con la opción --policy-name) y la ruta del documento depolíticas recién creado (con la opción --policy-document). Por ejemplo, suponiendo que el archivoCodeDeploy-OnPrem-Permissions.json está en el mismo directorio (carpeta) desde el que llamaa este comando:

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy-OnPrem-Permissions --policy-document file://CodeDeploy-OnPrem-Permissions.json

Para asignar permisos (consola)

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, seleccione Policies y, a continuación, seleccione Create Policy. (Si

aparece el botón Get Started, elíjalo y, a continuación, elija Create Policy.)3. Junto a Create Your Own Policy, seleccione Select.4. En el cuadro Policy Name (Nombre de la política), escriba un nombre para esta política (por ejemplo,

CodeDeploy-OnPrem-Permissions).5. En el cuadro Policy Document (Documento de política), escriba o pegue la siguiente expresión

de permisos, que permite que AWS CodeDeploy implemente en la instancia local revisiones deaplicaciones desde cualquier bucket de Amazon S3 especificado en la política en nombre de la cuentadel usuario de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

6. Elija Create Policy.7. En el panel de navegación, seleccione Users.8. En la lista de usuarios, busque y elija el nombre del usuario de IAM que creó en Paso 1: Crear un

usuario de IAM para la instancia on-premises (p. 233).9. En la pestaña Permissions, en Managed Policies, seleccione Attach Policy.10. Seleccione la política denominada CodeDeploy-OnPrem-Permissions y, a continuación, elija

Attach Policy (Asociar política).

Paso 3: Obtener las credenciales del usuario de IAM

Obtenga el ID de la clave secreta y la clave de acceso secreta para el usuario de IAM. Los necesitará paraPaso 4: Añadir un archivo de configuración a la instancia on-premises (p. 237). Puede utilizar la AWS CLIo la consola de IAM para obtener el ID de la clave secreta y la clave de acceso secreta.

Versión de API 2014-10-06235

Page 245: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Note

Si ya tiene el ID de la clave secreta y la clave de acceso secreta, omita este paso y vayadirectamente a Paso 4: Añadir un archivo de configuración a la instancia on-premises (p. 237).

Para obtener las credenciales (CLI)

1. Llame al comando list-access-keys, especificando el nombre del usuario de IAM (con la opción --user-name) y consultando únicamente los ID de clave de acceso (con las opciones --query y --output). Por ejemplo:

aws iam list-access-keys --user-name CodeDeployUser-OnPrem --query "AccessKeyMetadata[*].AccessKeyId" --output text

2. Si en la salida no aparece ninguna clave o aparece información acerca de una única clave, llame alcomando create-access-key, especificando el nombre del usuario de IAM (con la opción --user-name):

aws iam create-access-key --user-name CodeDeployUser-OnPrem

En la salida de la llamada al comando create-access-key, anote el valor de los campos AccessKeyIdy SecretAccessKey. Necesitará esta información en Paso 4: Añadir un archivo de configuración a lainstancia on-premises (p. 237).

Important

Esta será la única vez que tendrá acceso a la clave de acceso secreta. Si olvida o pierde elacceso a esta clave de acceso secreta, tendrá que generar una nueva siguiendo los pasos dePaso 3: Obtener las credenciales del usuario de IAM (p. 235).

3. Si aparecen dos claves de acceso, debe eliminar una de ellas llamando al comando delete-access-key, especificando el nombre del usuario de IAM (con la opción --user-name) y el ID de la clave deacceso que desea eliminar (con la opción --access-key-id). A continuación, llame al comandocreate-access-key, como se ha descrito anteriormente en este paso. A continuación se muestra unejemplo de cómo llamar al comando delete-access-key:

aws iam delete-access-key --user-name CodeDeployUser-OnPrem --access-key-id access-key-ID

Important

Si llama al comando delete-access-key para eliminar una de estas claves de acceso, y unainstancia on-premises ya está utilizando esta clave de acceso como se describe en Paso 4:Añadir un archivo de configuración a la instancia on-premises (p. 237), tendrá que volvera seguir las instrucciones de Paso 4: Añadir un archivo de configuración a la instancia on-premises (p. 237) para especificar otro ID de clave de acceso y otra clave de accesosecreta asociada a este usuario de IAM. De lo contrario, todas las implementaciones de esainstancia on-premises pueden quedarse bloqueadas en un estado pendiente perpetuo oproducir errores.

Para obtener las credenciales (consola)

1. a. Abra la consola de IAM en https://console.aws.amazon.com/iam/.b. Si la lista de usuarios no se muestra, en el panel de navegación, elija Users.c. En la lista de usuarios, busque y elija el nombre del usuario de IAM que creó en Paso 1: Crear un

usuario de IAM para la instancia on-premises (p. 233).Versión de API 2014-10-06236

Page 246: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

2. En la pestaña Security credentials, si en la lista no figura ninguna clave o si figura una sola una clave,seleccione Create access key.

Si se muestran dos claves de acceso, debe eliminar una de ellas. Elija Delete junto a una de las clavesde acceso y luego seleccione Create access key.

Important

Si elige Delete (Eliminar) junto a una de estas claves de acceso, y una instancia on-premises ya está utilizando esta clave de acceso como se describe en Paso 4: Añadirun archivo de configuración a la instancia on-premises (p. 237), tendrá que volver aseguir las instrucciones de Paso 4: Añadir un archivo de configuración a la instancia on-premises (p. 237) para especificar otro ID de clave de acceso y otra clave de accesosecreta asociada a este usuario de IAM. De lo contrario, las implementaciones de esainstancia on-premises pueden quedarse bloqueadas en un estado pendiente perpetuo oproducir errores.

3. Elija Show y anote el ID de la clave de acceso y la clave de acceso secreta. Necesitará estainformación para el siguiente paso. Como alternativa, puede elegir Download .csv file para guardaruna copia del ID de la clave de acceso y la clave de acceso secreta.

Important

A menos que anote o descargue las credenciales, esta será la única vez que tendrá accesoa la clave de acceso secreta. Si olvida o pierde el acceso a esta clave de acceso secreta,tendrá que generar una nueva siguiendo los pasos de Paso 3: Obtener las credenciales delusuario de IAM (p. 235).

4. Seleccione Close para volver a la página Users > IAM User Name.

Paso 4: Añadir un archivo de configuración a la instancia on-premises

Añada un archivo de configuración a la instancia on-premises, utilizando los permisos raíz o deadministrador. Este archivo de configuración se utilizará para declarar las credenciales de usuario de IAMy la región de destino de AWS que se usará para CodeDeploy. El archivo debe añadirse a una ubicaciónespecífica de la instancia on-premises. El archivo debe incluir el ARN, el ID de la clave secreta, la clavede acceso secreta y la región de AWS de destino del usuario de IAM. Este archivo debe seguir un formatoespecífico.

1. Cree un archivo denominado codedeploy.onpremises.yml (si se trata de una instancia on-premises de Ubuntu Server o RHEL) o conf.onpremises.yml (en el caso de una instancia on-premises de Windows Server) en la siguiente ubicación de la instancia on-premises:

• Para Ubuntu Server: /etc/codedeploy-agent/conf• Para Windows Server: C:\ProgramData\Amazon\CodeDeploy

2. Utilice un editor de texto para añadir la siguiente información al archivocodedeploy.onpremises.yml o conf.onpremises.yml recién creado:

---aws_access_key_id: secret-key-idaws_secret_access_key: secret-access-keyiam_user_arn: iam-user-arnregion: supported-region

Donde:

• secret-key-id es el ID de la clave secreta del usuario de IAM correspondiente que anotó en elPaso 1: Crear un usuario de IAM para la instancia on-premises (p. 233) o en el Paso 3: Obtenerlas credenciales del usuario de IAM (p. 235).

Versión de API 2014-10-06237

Page 247: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

• secret-access-key es la clave de acceso secreta del usuario de IAM correspondiente que anotóen el Paso 1: Crear un usuario de IAM para la instancia on-premises (p. 233) o en el Paso 3:Obtener las credenciales del usuario de IAM (p. 235).

• iam-user-arn es el ARN del usuario de IAM que anotó anteriormente en Paso 1: Crear un usuariode IAM para la instancia on-premises (p. 233).

• supported-region es el identificador de una región admitida por CodeDeploy en la que seencuentran sus aplicaciones, grupos de implementaciones y revisiones de aplicaciones deCodeDeploy (por ejemplo, us-west-2). Para obtener una lista de regiones, consulte Regiones ypuntos de enlace en la AWS General Reference.

Important

Si eligió Delete (Eliminar) junto a una de las claves de acceso en el Paso 3: Obtenerlas credenciales del usuario de IAM (p. 235), y su instancia on-premises ya estáutilizando el ID de la clave de acceso y la clave de acceso secreta asociados, tendrá queseguir las instrucciones de Paso 4: Añadir un archivo de configuración a la instancia on-premises (p. 237) para especificar otro ID de clave de acceso y otra clave de accesosecreta asociados a este usuario de IAM. De lo contrario, todas las implementaciones desu instancia on-premises pueden quedarse bloqueadas en un estado pendiente perpetuo oproducir errores.

Paso 5: Instalar y configurar la AWS CLI

Instale y configure la AWS CLI en la instancia on-premises. (La AWS CLI se utilizará en el Paso 7: Instalarel agente de CodeDeploy (p. 239) para descargar e instalar el agente de CodeDeploy en la instancia on-premises).

1. Para instalar la AWS CLI en la instancia on-premises, siga las instrucciones de Configuración inicial dela interfaz de línea de comandos de AWS en la Guía del usuario de la interfaz de línea de comandosde AWS.

Note

Los comandos de CodeDeploy para trabajar con instancias on-premises están disponiblesdesde la versión 1.7.19 de la AWS CLI. Si ya tiene instalada una versión de la AWS CLI,puede llamar a aws --version para comprobar la versión.

2. Para configurar la AWS CLI en la instancia on-premises, siga las instrucciones de Configuración de lainterfaz de línea de comandos de AWS en la Guía del usuario de la interfaz de línea de comandos deAWS.

Important

Al configurar la AWS CLI (por ejemplo, llamando al comando aws configure), asegúresede especificar el ID de la clave secreta y la clave de acceso secreta de un usuario de IAMque tenga, como mínimo, los siguientes permisos de acceso de AWS, además de lospermisos de acceso especificados en Requisitos previos para configurar una instancia on-premise (p. 226). Esto le permite descargar e instalar el agente de CodeDeploy en lainstancia on-premises:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ],

Versión de API 2014-10-06238

Page 248: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

"Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ]}

Estos permisos de acceso se pueden asignar al usuario de IAM que creó en el Paso 1: Crearun usuario de IAM para la instancia on-premises (p. 233) o a otro usuario de IAM. Paraasignar estos permisos a un usuario de IAM, siga las instrucciones del Paso 1: Crear unusuario de IAM para la instancia on-premises (p. 233), utilizando estos permisos de accesoen lugar de los indicados en ese paso.

Paso 6: Establecer la variable de entorno AWS_REGION (Ubuntu Server y RHELúnicamente)

Si no ejecuta Ubuntu Server o RHEL en su instancia on-premises, omita este paso y vaya directamente alPaso 7: Instalar el agente de CodeDeploy (p. 239).

Instale el agente de CodeDeploy en una instancia on-premises de Ubuntu Server o RHEL y permita quela instancia actualice el agente de CodeDeploy siempre que haya disponible una nueva versión. Para ello,tiene que establecer en la instancia la variable de entorno AWS_REGION en el identificador de una de lasregiones admitidas por CodeDeploy. Le recomendamos que establezca el valor en la región en la que seencuentran sus aplicaciones, grupos de implementaciones y revisiones de aplicaciones de CodeDeploy(por ejemplo, us-west-2). Para obtener una lista de regiones, consulte Regiones y puntos de enlace en laAWS General Reference.

Para establecer la variable de entorno, llame al siguiente comando desde el terminal:

export AWS_REGION=supported-region

Donde supported-region es el identificador de región (por ejemplo, us-west-2).

Paso 7: Instalar el agente de CodeDeploy

Instale el agente de CodeDeploy en la instancia on-premises:

Versión de API 2014-10-06239

Page 249: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

• Si se trata de una instancia on-premises de Ubuntu Server, siga las instrucciones de Instalación delagente de CodeDeploy para Ubuntu Server (p. 190) y, a continuación, vuelva a esta página.

• Si se trata de una instancia on-premises de RHEL, siga las instrucciones de Instalación del agente deCodeDeploy para Amazon Linux o RHEL (p. 189) y, a continuación, vuelva a esta página.

• Si se trata de una instancia on-premises de Windows Server, siga las instrucciones de Instalación delagente de CodeDeploy para Windows Server (p. 191) y, a continuación, vuelva a esta página.

Paso 8: Registrar la instancia on-premises con CodeDeploy

En las instrucciones de este paso se da por supuesto que va a registrar la instancia on-premises desdela propia instancia on-premises. Puede registrar una instancia on-premises desde un dispositivo o unainstancia diferente que tenga la AWS CLI instalada y configurada, como se describe en el Paso 5: Instalary configurar la AWS CLI (p. 238).

Utilice la AWS CLI para registrar la instancia on-premises en CodeDeploy de manera que pueda utilizarseen las implementaciones.

1. Para poder utilizar la AWS CLI, necesitará el ARN del usuario de IAM que creó en el Paso 1: Crearun usuario de IAM para la instancia on-premises (p. 233). Si aún no tiene el ARN del usuario, llameal comando get-user, especificando el nombre del usuario de IAM (con la opción --user-name) yconsultando únicamente el ARN del usuario (con las opciones --query y --output):

aws iam get-user --user-name CodeDeployUser-OnPrem --query "User.Arn" --output text

2. Realice una llamada al comando register-on-premises-instance, especificando:

• Un nombre que identifique de manera única la instancia on-premises (con la opción --instance-name).

Important

Para ayudarle a identificar la instancia on-premises, especialmente a efectos dedepuración, recomendamos encarecidamente que especifique un nombre que se asignea algunas características exclusivas de la instancia on-premises (por ejemplo, el númerode serie o un identificador de recurso interno, si procede). Si especifica una dirección MACcomo nombre, debe tener en cuenta que las direcciones MAC contienen caracteres queCodeDeploy no permite, como los dos puntos (:). Para obtener una lista de los caracterespermitidos, consulte Límites de CodeDeploy (p. 447).

• El ARN del usuario de IAM que creó en el Paso 1: Crear un usuario de IAM para la instancia on-premises (p. 233) (con la opción --iam-user-arn).

Por ejemplo:

aws deploy register-on-premises-instance --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::80398EXAMPLE:user/CodeDeployUser-OnPrem

Paso 9: Etiquetar la instancia on-premises

Puede utilizar la AWS CLI o la consola de CodeDeploy para etiquetar la instancia on-premises.(CodeDeploy utiliza las etiquetas de las instancias on-premises para identificar los destinos deimplementación durante una implementación).

Para etiquetar la instancia on-premises (CLI)

• Realice una llamada al comando add-tags-to-on-premises-instances, especificando:Versión de API 2014-10-06

240

Page 250: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

• El nombre que identifica de manera única la instancia on-premises (con la opción --instance-names).

• El nombre de la clave de etiqueta y el valor de etiqueta de la instancia on-premises que deseautilizar (con la opción --tags). Debe especificar tanto el nombre como el valor. CodeDeploy nopermite etiquetas de instancias on-premises que solo tengan valores.

Por ejemplo:

aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem

Para etiquetar la instancia on-premises (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el menú de CodeDeploy, elija On-premises instances (Instancias on-premises).3. En la lista de instancias on-premises, elija la flecha situada junto a la instancia on-premises que desea

etiquetar.4. En la lista de etiquetas, seleccione o introduzca la clave y el valor que desee para la etiqueta. Cuando

introduzca la clave y el valor de la etiqueta, aparecerá otra fila. Puede repetir esta acción para un

máximo de 10 etiquetas. Para quitar una etiqueta, elija el icono de eliminación ( ).5. Después de añadir las etiquetas, seleccione Update Tags.

Paso 10: Implementar revisiones de aplicaciones en la instancia on-premisesAhora está listo para implementar revisiones de aplicaciones en la instancia on-premises registrada yetiquetada.

La implementación de revisiones de aplicaciones en instancias on-premises es similar a la implementaciónde revisiones de aplicaciones en instancias Amazon EC2. Para obtener instrucciones, consulte Crearuna implementación con CodeDeploy (p. 321). Estas instrucciones incluyen un enlace a los requisitosprevios, incluida la creación de una aplicación, la creación de un grupo de implementaciones y lapreparación de la revisión de una aplicación. Si necesita una revisión de una aplicación sencillapara implementar, puede crear la que se describe en Paso 2: Crear una revisión de aplicación deejemplo (p. 105) en el Tutorial: Implementación de una aplicación en una instancia on-premises conCodeDeploy (Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104).

Important

Si reutiliza un rol de servicio de CodeDeploy como parte de la creación de un grupo deimplementaciones que tiene como destino instancias locales, debe incluir Tag:get* en la parteAction de la instrucción de política del rol de servicio. Para obtener más información, consultePaso 3: Crear un rol de servicio para CodeDeploy (p. 39).

Paso 11: Hacer un seguimiento de las implementaciones en la instancia on-premisesDespués de implementar una revisión de una aplicación en instancias on-premises registradas yetiquetadas, puede hacer un seguimiento del progreso de la implementación.

Versión de API 2014-10-06241

Page 251: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

El seguimiento de las implementaciones en instancias on-premises es similar al seguimiento de lasimplementaciones en instancias Amazon EC2. Para obtener instrucciones, consulte Visualización de losdetalles de las implementaciones de CodeDeploy (p. 337).

Usar el comando register-on-premises-instance (ARN de sesiónde IAM) para registrar una instancia on-premisesPara tener el máximo control sobre la autenticación y el registro de las instancias on-premises, puedeutilizar el comando register-on-premises-instance y actualizar periódicamente las credenciales temporalesgeneradas con AWS Security Token Service (AWS STS). Un rol de IAM estático para la instancia asumeel rol de estas credenciales de AWS STS actualizadas para realizar las operaciones de implementación deCodeDeploy.

Este método es muy útil cuando necesita registrar un gran número de instancias. Le permite automatizarel proceso de registro con CodeDeploy. Puede utilizar su propio sistema de identidad y autenticaciónpara autenticar instancias on-premises y distribuir credenciales de sesión de IAM desde el servicio a lasinstancias que se van a usar con CodeDeploy.

Note

También puede utilizar un usuario de IAM compartido distribuido a todas las instancias on-premises para llamar a la API AssumeRole de AWS STS con el fin de recuperar las credencialesde sesión de las instancias on-premises. Este método es menos seguro y no se recomienda paraentornos de producción o críticos.

Utilice la información de los siguientes temas para configurar una instancia on-premises con credencialesde seguridad temporales generadas con AWS STS.

Temas• Requisitos previos del registro de ARN de sesión de IAM (p. 242)• Paso 1: Crear el rol de IAM que asumirán las instancias on-premises (p. 243)• Paso 2: Generar credenciales temporales para una instancia individual utilizando AWS STS (p. 244)• Paso 3: Añadir un archivo de configuración a la instancia on-premises (p. 245)• Paso 4: Preparar una instancia on-premises para las implementaciones de CodeDeploy (p. 245)• Paso 5: Registrar la instancia on-premises con CodeDeploy (p. 246)• Paso 6: Etiquetar la instancia on-premises (p. 247)• Paso 7: Implementar revisiones de aplicaciones en la instancia on-premises (p. 248)• Paso 8: Hacer un seguimiento de las implementaciones en la instancia on-premises (p. 248)

Requisitos previos del registro de ARN de sesión de IAM

Además de los requisitos previos indicados en Requisitos previos para configurar una instancia on-premise (p. 226), deben cumplirse los siguientes requisitos adicionales:

Permisos de IAM

La identidad de IAM que se utiliza para registrar una instancia on-premises debe tenerpermisos para realizar operaciones de CodeDeploy. Asegúrese de que la política administradaAWSCodeDeployFullAccess está asociada a la identidad de IAM. Para obtener información, consultePolíticas administradas por AWS en la Guía del usuario de IAM.

Sistema para actualizar las credenciales temporales

Versión de API 2014-10-06242

Page 252: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Si utiliza un ARN de sesión de IAM para registrar instancias on-premises, debe disponer de un sistemapara actualizar periódicamente las credenciales temporales. Las credenciales temporales caducandespués de una hora o antes si se especifica un periodo más corto cuando se generan las credenciales.Existen dos métodos para actualizar las credenciales:

• Método 1: utilice el sistema de identidad y autenticación de su red corporativa con un script CRON quesondee periódicamente el sistema de identidad y autenticación y copie las credenciales de la últimasesión en la instancia. De esta forma, podrá integrar su estructura de identidad y autenticación con AWSsin necesidad de realizar cambios en el agente o en el servicio de CodeDeploy para permitir los tipos deautenticación que utiliza en la organización.

• Método 2: ejecute periódicamente un trabajo CRON en la instancia para llamar a la acción AssumeRolede AWS STS y escribir las credenciales de la sesión en un archivo al que el agente de CodeDeploytenga acceso. Este método requiere igualmente utilizar un usuario de IAM y copiar las credenciales en lainstancia on-premises, pero puede volver a utilizar el mismo usuario de IAM y las mismas credencialesen toda la flota de instancias on-premises.

Para obtener información sobre cómo crear y trabajar con credenciales de AWS STS, consulte la AWSSecurity Token Service API Reference y Uso de credenciales de seguridad temporales para solicitaracceso a los recursos de AWS.

Paso 1: Crear el rol de IAM que asumirán las instancias on-premises

Puede utilizar la CLI de AWS o la consola de IAM para crear el rol de IAM que utilizarán sus instancias on-premises para autenticar e interactuar con CodeDeploy.

Solo tiene que crear un único rol de IAM. Cada una de las instancias on-premises puede asumir este rolpara recuperar las credenciales de seguridad temporales que proporcionan los permisos concedidos a esterol.

El rol que cree requerirá los siguientes permisos para tener acceso a los archivos necesarios para instalarel agente de CodeDeploy:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ]}

Le recomendamos que restrinja esta política únicamente a los buckets de Amazon S3 a los que suinstancia on-premises necesite tener acceso. Si restringe esta política, asegúrese de conceder accesoa los buckets de Amazon S3 que contienen el agente de CodeDeploy. De lo contrario, podría producirseun error siempre que el agente de CodeDeploy se instale o actualice en la instancia on-premises. Paraobtener información sobre cómo controlar el acceso a los buckets de Amazon S3, consulte Administraciónde permisos de acceso para los recursos de Amazon S3.

Para crear el rol de IAM

1. Llame al comando create-role usando la opción --role-name para especificar un nombre parael rol de IAM (por ejemplo, CodeDeployInstanceRole) y la opción --assume-role-policy-document para proporcionar los permisos.

Versión de API 2014-10-06243

Page 253: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Cuando cree el rol de IAM para esta instancia, puede asignarle el nombreCodeDeployInstanceRole e incluir los permisos necesarios en un archivo denominadoCodeDeployRolePolicy.json:

aws iam create-role --role-name CodeDeployInstanceRole --assume-role-policy-document file://CodeDeployRolePolicy.json

2. En la salida de la llamada al comando create-role, anote el valor del campo ARN. Por ejemplo:

arn:aws:iam::123456789012:role/CodeDeployInstanceRole

Necesitará el ARN del rol cuando utilice la API AssumeRole de AWS STS para generar credencialestemporales para cada instancia.

Para obtener más información sobre cómo crear roles de IAM, consulte Creación de un rol paradelegar permisos a un servicio de AWS en la Guía del usuario de IAM.

Para obtener más información sobre cómo asignar permisos a un rol existente, consulte put-role-policyen la AWS CLI Command Reference.

Paso 2: Generar credenciales temporales para una instancia individual utilizandoAWS STS

Antes de generar las credenciales temporales que se utilizarán para registrar una instancia on-premises,debe crear o elegir la identidad de IAM (usuario o rol) para la que se generarán las credencialestemporales. El permiso sts:AssumeRole debe estar incluido en la configuración de política de estaidentidad de IAM.

Para obtener información sobre cómo conceder permisos sts:AssumeRole a una identidad de IAM,consulte Creación de un rol para delegar permisos a un servicio de AWS y AssumeRole.

Hay dos formas de generar credenciales temporales:

• Use el comando assume-role con la CLI de AWS. Por ejemplo:

aws sts assume-role --role-arn arn:aws:iam::12345ACCOUNT:role/role-arn --role-session-name session-name

Donde:• 12345ACCOUNT es el número de cuenta de 12 dígitos de su organización.• role-arn es el ARN del rol que se va a asumir, que generó en Paso 1: Crear el rol de IAM que

asumirán las instancias on-premises (p. 243).• session-name es el nombre que desea asignar a la sesión del rol que va a crear ahora.

Note

Si utiliza un script CRON que sondea periódicamente el sistema de identidad y autenticación ycopia las credenciales de la última sesión en la instancia (método 1 para actualizar credencialestemporales descrito en Requisitos previos del registro de ARN de sesión de IAM (p. 242)),puede utilizar en su lugar cualquier SDK de AWS compatible para llamar a AssumeRole.

• Utilice una herramienta proporcionada por AWS.

La herramienta aws-codedeploy-session-helper genera credenciales de AWS STS y las escribe enun archivo que usted coloca en la instancia. Esta herramienta es adecuada para el método 2 deactualización de credenciales temporales que se describe en Requisitos previos del registro de ARN de

Versión de API 2014-10-06244

Page 254: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

sesión de IAM (p. 242). En este método, la herramienta aws-codedeploy-session-helper se instala encada instancia y ejecuta el comando usando los permisos del usuario de IAM. Cada instancia utiliza lasmismas credenciales de usuario de IAM junto con esta herramienta.

Para obtener más información, consulte aws-codedeploy-session-helper en el repositorio de GitHub.Note

Una vez que haya creado las credenciales de inicio de sesión de IAM, colóquelas en cualquierubicación de la instancia on-premises. En el siguiente paso, configurará el agente deCodeDeploy para obtener acceso a las credenciales en esta ubicación.

Antes de continuar, asegúrese de que el sistema que se utilizará para actualizar periódicamentelas credenciales temporales está instalado. Si las credenciales temporales no se actualizan, lasimplementaciones en la instancia on-premises producirán un error. Para obtener más información, consulte"Sistema para actualizar las credenciales temporales" en Requisitos previos del registro de ARN de sesiónde IAM (p. 242).

Paso 3: Añadir un archivo de configuración a la instancia on-premisesAñada un archivo de configuración a la instancia on-premises, utilizando los permisos raíz o deadministrador. Este archivo de configuración se utilizará para declarar las credenciales de IAM y la regiónde AWS que se usará para CodeDeploy. El archivo debe añadirse a una ubicación específica de lainstancia on-premises. El archivo debe incluir el ARN de sesión temporal de IAM, su ID de clave secreta yclave de acceso secreta y la región de AWS de destino.

Para añadir un archivo de configuración

1. Cree un archivo denominado codedeploy.onpremises.yml (si se trata de una instancia on-premises de Ubuntu Server o RHEL) o conf.onpremises.yml (en el caso de una instancia on-premises de Windows Server) en la siguiente ubicación de la instancia on-premises:

• Para Ubuntu Server: /etc/codedeploy-agent/conf• Para Windows Server: C:\ProgramData\Amazon\CodeDeploy

2. Utilice un editor de texto para añadir la siguiente información al archivocodedeploy.onpremises.yml o conf.onpremises.yml recién creado:

---iam_session_arn: iam-session-arnaws_credentials_file: credentials-fileregion: supported-region

Donde:

• iam-session-arn es el ARN de la sesión de IAM que anotó en Paso 2: Generar credencialestemporales para una instancia individual utilizando AWS STS (p. 244).

• credentials-file es la ubicación del archivo de credenciales del ARN de sesión temporalanotado en Paso 2: Generar credenciales temporales para una instancia individual utilizando AWSSTS (p. 244).

• supported-region es una de las regiones admitidas por CodeDeploy, tal como se indica enRegiones y puntos de enlace en la AWS General Reference.

Paso 4: Preparar una instancia on-premises para las implementaciones deCodeDeployInstalar y configurar la CLI de AWS

Versión de API 2014-10-06245

Page 255: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Instale y configure la CLI de AWS en la instancia on-premises. (La CLI de AWS se utilizará para descargare instalar el agente de CodeDeploy en la instancia on-premises).

1. Para instalar la AWS CLI en la instancia on-premises, siga las instrucciones de Configuración inicial dela interfaz de línea de comandos de AWS en la Guía del usuario de la interfaz de línea de comandos deAWS.

Note

Los comandos de CodeDeploy para trabajar con instancias on-premises están disponiblesdesde la versión 1.7.19 de la AWS CLI. Si ya tiene instalada una versión de la AWS CLI, puedellamar a aws --version para comprobar la versión.

2. Para configurar la AWS CLI en la instancia on-premises, siga las instrucciones de Configuración de lainterfaz de línea de comandos de AWS en la Guía del usuario de la interfaz de línea de comandos deAWS.

Important

Cuando configure la AWS CLI (por ejemplo, llamando al comando aws configure), asegúresede especificar el ID de clave secreta y la clave de acceso secreta de un usuario de IAM quetenga, como mínimo, los permisos que se describen en Requisitos previos del registro de ARNde sesión de IAM (p. 242).

Establecer la variable de entorno AWS_REGION (solo Ubuntu Server y RHEL)

Si no va a ejecutar Ubuntu Server ni RHEL en su instancia on-premises. omita este paso y vayadirectamente a "Instalar el agente de CodeDeploy".

Instale el agente de CodeDeploy en una instancia on-premises de Ubuntu Server o RHEL y permita quela instancia actualice el agente de CodeDeploy siempre que haya disponible una nueva versión. Para ello,tiene que establecer en la instancia la variable de entorno AWS_REGION en el identificador de una de lasregiones admitidas por CodeDeploy. Le recomendamos que establezca el valor en la región en la que seencuentran sus aplicaciones, grupos de implementaciones y revisiones de aplicaciones de CodeDeploy(por ejemplo, us-west-2). Para obtener una lista de regiones, consulte Regiones y puntos de enlace en laAWS General Reference.

Para establecer la variable de entorno, llame al siguiente comando desde el terminal:

export AWS_REGION=supported-region

Donde supported-region es el identificador de región (por ejemplo, us-west-2).

Instalar el agente de CodeDeploy

• Si se trata de una instancia on-premises de Ubuntu Server, siga las instrucciones de Instalación delagente de CodeDeploy para Ubuntu Server (p. 190) y, a continuación, vuelva a esta página.

• Si se trata de una instancia on-premises de RHEL, siga las instrucciones de Instalación del agente deCodeDeploy para Amazon Linux o RHEL (p. 189) y, a continuación, vuelva a esta página.

• Si se trata de una instancia on-premises de Windows Server, siga las instrucciones de Instalación delagente de CodeDeploy para Windows Server (p. 191) y, a continuación, vuelva a esta página.

Paso 5: Registrar la instancia on-premises con CodeDeploy

En las instrucciones de este paso se da por supuesto que va a registrar la instancia on-premises desde lapropia instancia on-premises. Puede registrar una instancia on-premises desde un dispositivo o instanciadiferente que tenga la AWS CLI instalada y configurada.

Versión de API 2014-10-06246

Page 256: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Utilice la AWS CLI para registrar la instancia on-premises en CodeDeploy de manera que pueda utilizarseen las implementaciones.

Para poder utilizar la AWS CLI, necesitará el ARN de las credenciales de sesión temporales que ha creadoen Paso 3: Añadir un archivo de configuración a la instancia on-premises (p. 245). Por ejemplo, en elcaso de una instancia que identifique como AssetTag12010298EX:

arn:sts:iam::123456789012:assumed-role/CodeDeployInstanceRole/AssetTag12010298EX

Realice una llamada al comando register-on-premises-instance, especificando:

• Un nombre que identifique de manera única la instancia on-premises (con la opción --instance-name).

Important

Para ayudar a identificar la instancia on-premises, especialmente a efectos de depuración, esabsolutamente recomendable que especifique un nombre que se corresponda con algunascaracterísticas exclusivas de la instancia on-premises (por ejemplo, el nombre de sesión de lascredenciales de STS y el número de serie de un identificador de recurso interno, si procede).Si especifica una dirección MAC como nombre, debe tener en cuenta que las direcciones MACcontienen caracteres que CodeDeploy no permite, como los dos puntos (:). Para obtener unalista de los caracteres permitidos, consulte Límites de CodeDeploy (p. 447).

• El ARN de sesión de IAM que configura para autenticar varias instancias on-premises en Paso 1: Crearel rol de IAM que asumirán las instancias on-premises (p. 243).

Por ejemplo:

aws deploy register-on-premises-instance --instance-name name-of-instance --iam-session-arn arn:aws:sts::account-id:assumed-role/role-to-assume/session-name

Donde:

• name-of-instance es el nombre que se utiliza para identificar la instancia on-premises, como porejemplo AssetTag12010298EX.

• account-id es el ID de cuenta de 12 dígitos de su organización, como 111222333444.• role-to-assume es el nombre del rol de IAM que ha creado para la instancia, comoCodeDeployInstanceRole.

• session-name es el nombre del rol de la sesión que especificó en Paso 2: Generar credencialestemporales para una instancia individual utilizando AWS STS (p. 244).

Paso 6: Etiquetar la instancia on-premisesPuede utilizar la AWS CLI o la consola de CodeDeploy para etiquetar la instancia on-premises.(CodeDeploy utiliza las etiquetas de las instancias on-premises para identificar los destinos deimplementación durante una implementación).

Para etiquetar la instancia on-premises (CLI)

• Realice una llamada al comando add-tags-to-on-premises-instances, especificando:

• El nombre que identifica de manera única la instancia on-premises (con la opción --instance-names).

• El nombre de la clave de etiqueta y el valor de etiqueta de la instancia on-premises que deseautilizar (con la opción --tags). Debe especificar tanto el nombre como el valor. CodeDeploy nopermite etiquetas de instancias on-premises que solo tengan valores.

Versión de API 2014-10-06247

Page 257: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistrar una instancia on-premise

Por ejemplo:

aws deploy add-tags-to-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem

Para etiquetar la instancia on-premises (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija On-premisesinstances (Instancias locales).

3. En la lista de instancias on-premises, elija el nombre de la instancia on-premises que desea etiquetar.4. En la lista de etiquetas, seleccione o introduzca la clave y el valor que desee para la etiqueta. Cuando

introduzca la clave y el valor de la etiqueta, aparecerá otra fila. Puede repetir esta acción para unmáximo de 10 etiquetas. Para quitar una etiqueta, elija Remove (Quitar).

5. Después de añadir las etiquetas, seleccione Update Tags.

Paso 7: Implementar revisiones de aplicaciones en la instancia on-premises

Ahora está listo para implementar revisiones de aplicaciones en la instancia on-premises registrada yetiquetada.

La implementación de revisiones de aplicaciones en instancias on-premises es similar a la implementaciónde revisiones de aplicaciones en instancias Amazon EC2. Para obtener instrucciones, consulte Crearuna implementación con CodeDeploy (p. 321). Estas instrucciones incluyen un enlace a los requisitosprevios, incluida la creación de una aplicación, la creación de un grupo de implementaciones y lapreparación de la revisión de una aplicación. Si necesita una revisión de una aplicación sencillapara implementar, puede crear la que se describe en Paso 2: Crear una revisión de aplicación deejemplo (p. 105) en el Tutorial: Implementación de una aplicación en una instancia on-premises conCodeDeploy (Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p. 104).

Important

Si reutiliza un rol de servicio de CodeDeploy como parte de la creación de un grupo deimplementaciones que tiene como destino instancias locales, debe incluir Tag:get* en la parteAction de la instrucción de política del rol de servicio. Para obtener más información, consultePaso 3: Crear un rol de servicio para CodeDeploy (p. 39).

Paso 8: Hacer un seguimiento de las implementaciones en la instancia on-premises

Después de implementar una revisión de una aplicación en instancias on-premises registradas yetiquetadas, puede hacer un seguimiento del progreso de la implementación.

El seguimiento de las implementaciones en instancias on-premises es similar al seguimiento de lasimplementaciones en instancias Amazon EC2. Para obtener instrucciones, consulte Visualización de losdetalles de las implementaciones de CodeDeploy (p. 337).

Versión de API 2014-10-06248

Page 258: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCómo administrar operaciones de instancias on-premises

Cómo administrar operaciones de instancias on-premises en CodeDeployLas instrucciones en esta sección explican cómo administrar operaciones en sus instancias on-premisesdespués de haberlas registrado con CodeDeploy como, por ejemplo, obtener más información acerca dedichas instancias, eliminar sus etiquetas, y desinstalarlas y anular sus registros.

Temas• Obtener información acerca de una instancia on-premises individual (p. 249)• Obtener información acerca de varias instancias on-premises (p. 249)• Eliminar manualmente las etiquetas de instancias on-premises en las instalaciones de una

instancia (p. 250)• Desinstalar el agente de CodeDeploy automáticamente y eliminar el archivo de configuración de la

instancia on-premises (p. 251)• Anular el registro de una instancia on-premises automáticamente (p. 252)• Anular el registro de una instancia on-premises manualmente (p. 253)

Obtener información acerca de una instancia on-premisesindividualEn las instrucciones de Visualización de los detalles de las implementaciones de CodeDeploy (p. 337)se describe cómo obtener información acerca de una instancia on-premises individual. Utilice la AWS CLI ola consola de CodeDeploy para obtener más información sobre una instancia on-premises específica.

Para obtener información acerca de una instancia on-premises individual (CLI)

• Realice una llamada al comando get-on-premises-instance especificando el nombre que identifica lainstancia on-premises de forma exclusiva, con la opción --instance-name:

aws deploy get-on-premises-instance --instance-name AssetTag12010298EX

Para obtener información acerca de una instancia on-premises individual (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija On-premisesinstances (Instancias locales).

3. En la lista de instancias on-premises, elija el nombre de una instancia on-premises para ver susdetalles.

Obtener información acerca de varias instancias on-premisesEn las instrucciones de Visualización de los detalles de las implementaciones de CodeDeploy (p. 337)se describe cómo obtener información acerca de instancias on-premises. Utilice la AWS CLI o la consolade CodeDeploy para obtener más información sobre las instancias on-premises.

Versión de API 2014-10-06249

Page 259: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCómo administrar operaciones de instancias on-premises

Para obtener información acerca de varias instancias on-premises (CLI)

1. Para obtener una lista de nombres de instancias on-premises, realice una llamada al comando list-on-premises-instances en la que se especifique:

• Si obtener información acerca de todas instancias on-premises registradas o cuyos registros sehayan anulado, con las opciones --registration-status y Registered o Deregistered,respectivamente. Si omite este paso, se devolverán tanto los nombres de instancias on-premisesregistrados como aquellos cuyos registros se hayan anulado.

• Si obtener solo información acerca de las instancias on-premises con etiquetas específicas deinstancia on-premises, con la opción --tag-filters. Especifique Key, Valuey Type, que deberáser KEY_AND_VALUE, para cada etiqueta de instancia on-premises. Separe las etiquetas de lasinstancias on-premises con espacios entre cada conjunto de Key, Valuey Type.

Por ejemplo:

aws deploy list-on-premises-instances --registration-status Registered --tag-filters Key=Name,Value=CodeDeployDemo-OnPrem,Type=KEY_AND_VALUE Key=Name,Value=CodeDeployDemo-OnPrem-Beta,Type=KEY_AND_VALUE

2. Para obtener información más detallada, realice una llamada al comando batch-get-on-premises-instances, con los nombres de las instancias on-premises, con la opción --instance-names:

aws deploy batch-get-on-premises-instances --instance-names AssetTag12010298EX AssetTag09920444EX

Para obtener información acerca de varias instancias on-premises (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija On-premisesinstances (Instancias locales).

Se mostrará Información acerca de las instancias on-premises.

Eliminar manualmente las etiquetas de instancias on-premises enlas instalaciones de una instanciaPor lo general, una etiqueta de instancia on-premises se elimina de dicha instancia cuando deja de usarseo en caso de querer eliminar la instancia on-premises del grupo de implementaciones que la utiliza. Utilicela AWS CLI o la consola de AWS CodeDeploy para eliminar las etiquetas de las instancias locales dedichas instancias.

No necesita eliminar las etiquetas de instancias on-premises desde una instancia on-premises antes anularsu registro.

Eliminar las etiquetas de instancias on-premises de una instancia on-premises no anula su registro. Nodesinstala el agente de CodeDeploy de la instancia. No elimina el archivo de configuración de la instancia,ni desinstala el usuario de IAM asociado a la instancia.

Versión de API 2014-10-06250

Page 260: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCómo administrar operaciones de instancias on-premises

Para anular el registro de una instancia on-premises automáticamente, consulte Anular el registro de unainstancia on-premises automáticamente (p. 252).

Para anular el registro de una instancia on-premises manualmente, consulte Anular el registro de unainstancia on-premises manualmente (p. 253).

Para desinstalar el agente de CodeDeploy automáticamente y eliminar el archivo de configuración dela instancia on-premises, consulte Desinstalar el agente de CodeDeploy automáticamente y eliminar elarchivo de configuración de la instancia on-premises (p. 251).

Para desinstalar manualmente únicamente el agente de CodeDeploy de la instancia on-premises, consulteGestión de las operaciones del agente de CodeDeploy (p. 184).

Para eliminar manualmente el usuario de IAM asociado, consulte Eliminación de un usuario de IAM de unacuenta de AWS.

Para eliminar etiquetas de instancias on-premises de una instancia on-premises (CLI)

• Realice una llamada a remove-tags-from-on-premises-instances especificando:

• Los nombres que identifican de manera única las instancias on-premises, con la opción --instance-names.

• Los nombres y valores de las etiquetas que desea quitar, con la opción --tags.

Por ejemplo:

aws deploy remove-tags-from-on-premises-instances --instance-names AssetTag12010298EX --tags Key=Name,Value=CodeDeployDemo-OnPrem

Para eliminar etiquetas de instancias on-premises de una instancia on-premises (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija On-premisesinstances (Instancias locales).

3. En la lista de instancias on-premises, elija el nombre de la instancia on-premises cuyas etiquetasdesea eliminar.

4. En la sección Tags (Etiquetas), elija Remove (Quitar) junto a cada etiqueta que desee quitar.5. Después de eliminar las etiquetas, seleccione Update tags.

Desinstalar el agente de CodeDeploy automáticamente y eliminarel archivo de configuración de la instancia on-premisesPor lo general, si ya no tiene pensado implementar el agente de CodeDeploy, lo desinstala y elimina elarchivo de configuración de la instancia on-premises.

Note

Desinstalar automáticamente el agente de CodeDeploy y eliminar el archivo de configuración dela instancia on-premises no anula el registro de dicha instancia. Tampoco desvincula ninguna

Versión de API 2014-10-06251

Page 261: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCómo administrar operaciones de instancias on-premises

etiqueta de instancia on-premises asociada a la instancia on-premises, ni elimina el usuario deIAM asociado a la instancia on-premises.Para anular el registro de una instancia on-premises automáticamente, consulte Anular el registrode una instancia on-premises automáticamente (p. 252).Para anular el registro de una instancia on-premises manualmente, consulte Anular el registro deuna instancia on-premises manualmente (p. 253).Para desvincular etiquetas asociadas a una instancia on-premises manualmente, consulteEliminar manualmente las etiquetas de instancias on-premises en las instalaciones de unainstancia (p. 250).Para desinstalar manualmente el agente de CodeDeploy de la instancia on-premises, consulteGestión de las operaciones del agente de CodeDeploy (p. 184).Para eliminar manualmente el usuario de IAM asociado, consulte Eliminación de un usuario deIAM de una cuenta de AWS.

Utilice la AWS CLI en la instancia on-premises para llamar al comando uninstall.

Por ejemplo:

aws deploy uninstall

El comando uninstall hace lo siguiente:

1. Detiene la ejecución del agente de CodeDeploy en la instancia on-premises.2. Desinstala el agente CodeDeploy de la instancia on-premises.3. Elimina el archivo de configuración de la instancia on-premises. (Para Ubuntu Server y RHEL, es /

etc/codedeploy-agent/conf/codedeploy.onpremises.yml. Para Windows Server, es C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.

Anular el registro de una instancia on-premises automáticamentePor lo general, si ya no tiene pensado implementar la instancia on-premises, debe anular su registro.Al anular el registro de una instancia on-premises, dicha instancia deja de incluirse en cualquierimplementación, incluso si forma parte de las etiquetas de instancias on-premises de un grupo deimplementaciones. Puede utilizar la AWS CLI para anular el registro de las instancias on-premises.

Note

No es posible utilizar la consola de CodeDeploy para anular el registro de una instancia on-premises. Además, la anulación del registro de una instancia on-premises elimina aquellasetiquetas que estén asociadas a la instancia on-premises. Tampoco desinstala el agente deCodeDeploy de la instancia on-premises, ni elimina el archivo de configuración de instancia on-premises de dicha instancia.Para realizar parte de las actividades descritas en esta sección (no todas) desde la consolade CodeDeploy, consulte la sección correspondiente a la consola de CodeDeploy en Anular elregistro de una instancia on-premises manualmente (p. 253).Para desvincular etiquetas asociadas a una instancia on-premises manualmente, consulteEliminar manualmente las etiquetas de instancias on-premises en las instalaciones de unainstancia (p. 250).Para desinstalar el agente de CodeDeploy automáticamente y eliminar el archivo de configuraciónde la instancia on-premises, consulte Desinstalar el agente de CodeDeploy automáticamente yeliminar el archivo de configuración de la instancia on-premises (p. 251).Para desinstalar manualmente únicamente el agente de CodeDeploy de la instancia on-premises,consulte Gestión de las operaciones del agente de CodeDeploy (p. 184).

Utilice la AWS CLI para llamar al comando deregister especificando:

Versión de API 2014-10-06252

Page 262: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCómo administrar operaciones de instancias on-premises

• El nombre que identifica de manera única la instancia on-premises a CodeDeploy, con la opción --instance-name.

• De manera opcional, si desea eliminar el usuario de IAM asociado a la instancia on-premises. Elcomportamiento predeterminado es eliminar al usuario de IAM. Si no desea eliminar el usuario de IAMasociado a la instancia on-premises, especifique la opción --no-delete-iam-user en el comando.

• Opcionalmente, la región de AWS en la que se registró la instancia on-premises en CodeDeploy, con laopción --region. Debe ser una de las regiones admitidas que se encuentran en la lista de Regiones ypuntos de enlace de la AWS General Reference (como, por ejemplo, us-west-2). Si no se especificaesta opción, se utilizará la región predeterminada de AWS asociada al usuario de IAM que realiza lallamada.

Ejemplo que anula el registro de una instancia y elimina al usuario:

aws deploy deregister --instance-name AssetTag12010298EX --region us-west-2

Ejemplo que anula el registro de una instancia y no elimina al usuario:

aws deploy deregister --instance-name AssetTag12010298EX --no-delete-iam-user --region us-west-2

El comando deregister hace lo siguiente:

1. Anula el registro de la instancia on-premises con CodeDeploy.2. Si se especifica, elimina el usuario de IAM asociado a la instancia on-premises.

Después de cancelar el registro de una instancia on-premises

• Deja de aparecer en la consola inmediatamente.• Puede crear otra instancia con el mismo nombre inmediatamente.

Si este comando encuentra algún error, aparece un mensaje en el que se describe cómo realizarmanualmente los pasos faltantes. En caso contrario, aparece un mensaje de confirmación en el que sedescribe cómo realizar una llamada al comando uninstall.

Anular el registro de una instancia on-premises manualmentePor lo general, si ya no tiene pensado implementar la instancia on-premises, debe anular su registro.Utilice la AWS CLI para anular el registro de instancias on-premises.

Si se anula el registro de una instancia on-premises manualmente, no se desinstala el agente deCodeDeploy. No elimina el archivo de configuración de la instancia, ni desinstala el usuario de IAMasociado a la instancia. ni elimina etiquetas asociadas a la instancia.

Para desinstalar el agente de CodeDeploy automáticamente y eliminar el archivo de configuración dela instancia on-premises, consulte Desinstalar el agente de CodeDeploy automáticamente y eliminar elarchivo de configuración de la instancia on-premises (p. 251).

Para desinstalar solo el agente de CodeDeploy manualmente, consulte Gestión de las operaciones delagente de CodeDeploy (p. 184).

Para eliminar manualmente el usuario de IAM asociado, consulte Eliminación de un usuario de IAM de unacuenta de AWS.

Versión de API 2014-10-06253

Page 263: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los detalles de la instancia

Para eliminar manualmente solo las etiquetas de instancias on-premises asociadas, consulte Eliminarmanualmente las etiquetas de instancias on-premises en las instalaciones de una instancia (p. 250).

• Realice una llamada al comando deregister-on-premises-instance especificando el nombre queidentifica la instancia on-premises de forma exclusiva, con la opción --instance-name:

aws deploy deregister-on-premises-instance --instance-name AssetTag12010298EX

Después de cancelar el registro de una instancia on-premises

• Deja de aparecer en la consola inmediatamente.• Puede crear otra instancia con el mismo nombre inmediatamente.

Visualización de los detalles de la instancia conCodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para ver detalles sobre lasinstancias que se utilizan en una implementación.

Para obtener más información sobre el uso de las acciones de la API de CodeDeploy para ver instancias,consulte GetDeploymentInstance, ListDeploymentInstances y ListOnPremisesInstances.

Temas• Ver detalles de la instancia (consola) (p. 254)• Ver los detalles de la instancia (CLI) (p. 255)

Ver detalles de la instancia (consola)Para ver los detalles de la instancia:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Deployments(Implementaciones).

Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta. Enla barra de navegación, en el selector de regiones, elija una de las regiones enumeradas enRegion and endpoints (Regiones y puntos de enlace) en AWS General Reference. CodeDeploysolo es compatible con estas regiones.

3. Para ver los detalles de la implementación, elija el ID de implementación para la instancia.4. Puede ver todas las instancias en la sección Instance activity (Actividad de instancia) de la página de la

implementación.5. Para ver información acerca de los eventos del ciclo de vida de la implementación individual de una

instancia, en la página de detalles de la implementación, en la columna Events, elija View events.Versión de API 2014-10-06

254

Page 264: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVer los detalles de la instancia (CLI)

Note

Si se muestra Failed en cualquiera de los eventos del ciclo de vida, en la página de detallesde la instancia, elija View logs, View in EC2 o ambas opciones. Puede encontrar consejos desolución de problemas en Solución de problemas de instancias (p. 464).

6. Si desea ver más información sobre una instancia Amazon EC2, elija el ID de la instancia en la columnaInstance ID (ID de instancia).

Ver los detalles de la instancia (CLI)Si desea utilizar la AWS CLI para ver los detalles de la instancia, ejecute el comando get-deployment-instance o al comando list-deployment-instances.

Para ver los detalles de una sola instancia, ejecute el comando get-deployment-instance, especificando:

• El ID de implementación único. Para obtener el ID de implementación, ejecute el comando list-deployments.

• El ID de instancia único. Para obtener el ID de instancia, ejecute el comando list-deployment-instances.

Para ver una lista de los ID de instancias que se utilizan en una implementación, ejecute el comando list-deployment-instances, especificando:

• El ID de implementación único. Para obtener el ID de implementación, ejecute el comando list-deployments.

• Si lo prefiere, puede incluir únicamente los ID de instancia específicos por su estado de implementación.(Si no se especifican, se enumerarán todos los ID de instancia coincidentes, independientemente de suestado de implementación).

Estado de las instancias de CodeDeployCodeDeploy monitoriza el estado de las instancias en un grupo de implementaciones. Produce un erroren las implementaciones si el número de instancias en buen estado es inferior al número de instancias enbuen estado que se han especificado para el grupo de implementaciones durante una implementación. Porejemplo, si el 85% de las instancias deben estar en buen estado durante una implementación y el grupode implementaciones contiene 10 instancias, toda la implementación dará un error aunque solo una únicainstancia produzca un error. Esto se debe a que cuando se desconecta una instancia para que se puedainstalar la última revisión de la aplicación, el número de instancias en buen estado ya está al 90%. Al haberuna instancia con error y otra instancia desconectada, solo el 80% de las instancias se encuentran en buenestado y disponibles. CodeDeploy producirá un error en toda la implementación.

Es importante recordar que debe cumplirse lo siguiente para que la implementación global tenga éxito:

• CodeDeploy puede implementarse en cada instancia de la implementación.• La implementación debe tener éxito en una instancia como mínimo. Esto significa que, aunque el

valor mínimo de hosts en buen estado sea 0, la implementación debe realizarse correctamente enuna instancia como mínimo (es decir, al menos una instancia debe estar en buen estado) para que laimplementación global se realice correctamente.

El número mínimo de instancias en buen estado necesarias se define como parte de la configuración deuna implementación.

Versión de API 2014-10-06255

Page 265: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEstado de mantenimiento

Important

Durante una implementación blue/green, la configuración de la implementación y el valor mínimode hosts en buen estado se aplican a las instancias del entorno de sustitución y no a las delentorno original. Sin embargo, cuando se cancela el registro de las instancias del entorno originalen el balanceador de carga, toda la implementación se marca como errónea aunque solo hayauna instancia original cuyo registro no se haya podido cancelar correctamente.

CodeDeploy ofrece tres configuraciones de implementación predeterminadas que tienen valores mínimosde hosts en buen estado usados comúnmente:

Nombre de configuración de la implementaciónpredeterminada

Valor mínimo de hosts en buen estado predefinido

CodeDeployDefault.OneAtATime 99%

CodeDeployDefault.HalfAtATime 50%

CodeDeployDefault.AllAtOnce 0

Encontrará más información acerca de las configuraciones de implementación predeterminadas en Uso deconfiguraciones de implementación en CodeDeploy (p. 260).

Puede crear configuraciones de implementación personalizadas en CodeDeploy para definir sus propiosvalores mínimos de hosts en buen estado. Puede definir estos valores como números enteros o comoporcentajes mediante las siguientes operaciones:

• Como minimum-healthy-hosts cuando usa el comando create-deployment-config de la CLI de AWS.• Como Value en el tipo de datos MinimumHealthyHosts en la API de CodeDeploy.• Como MinimumHealthyHosts cuando utiliza AWS::CodeDeploy::DeploymentConfig en una plantilla de

AWS CloudFormation.

Temas• Estado de mantenimiento (p. 256)• Instancias e implementaciones mínimas en buen estado (p. 257)

Estado de mantenimientoCodeDeploy asigna dos valores de estado de mantenimiento a cada instancia: estado de revisión y estadode la instancia.

Estado de revisión

El estado de revisión se basa en la revisión de aplicación instalada actualmente en la instancia. Tienelos siguientes valores de estado:• Current: la revisión instalada en la instancia coincide con la revisión de la última implementación

correcta del grupo de implementaciones.• Old: la revisión instalada en la instancia coincide con una versión anterior de la aplicación.• Unknown: la revisión de la aplicación no se ha instalado correctamente en la instancia.

Estado de la instancia

El estado de la instancia se basa en si las implementaciones en una instancia se han realizadocorrectamente. Tiene los siguientes valores:

Versión de API 2014-10-06256

Page 266: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstancias e implementaciones mínimas en buen estado

• Healthy: la última implementación en la instancia se realizó correctamente.• Unhealthy: el intento de implementar una revisión en la instancia dio un error o aún no se ha

implementado una revisión en la instancia.

CodeDeploy utiliza el estado de revisión y el estado de la instancia para programar la implementación enlas instancias del grupo de implementaciones en el orden que se indica a continuación:

1. Estado de la instancia Unhealthy.2. Estado de revisión Unknown.3. Estado de revisión Old.4. Estado de revisión Current.

Si toda la implementación se realiza correctamente, la revisión se actualiza y los valores de estado delgrupo de implementaciones se actualizan para reflejar la última implementación.

• Todas las instancias actuales que tenían una implementación satisfactoria siguen vigentes. De locontrario, pasan a tener el estado Unknown.

• Todas las instancias Old o Unknown que tenían una implementación satisfactoria siguen vigentes. De locontrario, pasan a tener el estado Old o Unknown.

• Todas las instancias Healthy que tenían una implementación satisfactoria siguen en buen estado. De locontrario, pasan a tener el estado Unhealthy.

• Todas las instancias Unhealthy que tenían una implementación satisfactoria pasan a tener el estadoHealthy. De lo contrario, permanecen con el estado Unhealthy.

Si se produce un error en toda la implementación o si se detiene la implementación:

• Cada instancia en la que CodeDeploy intentó implementar la revisión de la aplicación tiene su propioestado de instancia establecido en Healthy o Unhealthy, en función de si el intento de implementaciónpara esa instancia se produjo correctamente o dio un error.

• Todas las instancias en las que CodeDeploy no intentó implementar la revisión de la aplicaciónconservan su valor de estado de instancia actual.

• La revisión del grupo de implementaciones sigue siendo la misma.

Instancias e implementaciones mínimas en buenestadoCodeDeploy permite especificar un número mínimo de instancias en buen estado para la implementacióncon dos propósitos principales:

• Para determinar si la implementación global se realizó correctamente o dio un error. La implementaciónse realiza correctamente si la revisión de la aplicación se implementó satisfactoriamente en al menos elnúmero mínimo de instancias en buen estado.

• Para determinar el número de instancias que deben estar en buen estado durante una implementaciónpara que la implementación se pueda realizar correctamente.

Puede especificar el número mínimo de instancias en buen estado para su grupo de implementacionescomo un número de instancias o como un porcentaje del total de instancias. Si especifica un porcentaje, alcomienzo de la implementación, CodeDeploy convierte el porcentaje al número equivalente de instancias,redondeando todas las fracciones de instancias.

Versión de API 2014-10-06257

Page 267: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstancias e implementaciones mínimas en buen estado

CodeDeploy realiza un seguimiento del estado de las instancias del grupo de implementaciones duranteel proceso de implementación y utiliza el número mínimo de instancias en buen estado especificado enla implementación para determinar si debe continuar con la implementación. El principio básico es queuna implementación no debe provocar nunca que el número de instancias en buen estado sea inferior alnúmero mínimo especificado. La única excepción a esta regla es cuando un grupo de implementacionestiene inicialmente menos instancias en buen estado que el número mínimo especificado. En ese caso, elproceso de implementación no reduce el número de instancias en buen estado.

Note

CodeDeploy intentará realizar la implementación en todas las instancias de un grupo deimplementaciones, incluso en aquellas que tengan actualmente el estado Stopped. En el cálculode hosts mínimos en buen estado, una instancia detenida tiene el mismo efecto que una instanciaerrónea. Para resolver los errores de implementación debido a demasiadas instancias detenidas,reinicie las instancias o cambie sus etiquetas para excluirlas del grupo de implementaciones.

CodeDeploy comienza el proceso de implementación intentando implementar la revisión de la aplicaciónen las instancias en mal estado del grupo de implementaciones. Para cada implementación satisfactoria,CodeDeploy cambia el estado de la instancia a Healthy y la añade a las instancias en buen estado delgrupo de implementaciones. A continuación, CodeDeploy compara el número actual de instancias en buenestado con el número mínimo especificado de instancias en buen estado.

• Si el número de instancias en buen estado es menor o igual que el número mínimo especificado deinstancias en buen estado, CodeDeploy cancela la implementación para garantizar que el número deinstancias en buen estado no se reduzca con más implementaciones.

• Si el número de instancias en buen estado es mayor que el número mínimo especificado de instanciasen buen estado en al menos una, CodeDeploy implementa la revisión de la aplicación en el conjuntooriginal de instancias en buen estado.

Si una implementación en una instancia en buen estado da un error, CodeDeploy cambia el estado de lainstancia a Unhealthy. A medida que avanza la implementación, CodeDeploy actualiza el número actualde instancias en buen estado actual y lo compara con el número mínimo especificado de instancias enbuen estado. Si el número de instancias en buen estado cae por debajo del número mínimo especificadoen algún momento del proceso de implementación, CodeDeploy detiene la implementación. De este modo,se impide la posibilidad de que la próxima implementación produzca un error, haciendo que el número deinstancias en buen estado sea inferior al número mínimo especificado.

Note

Asegúrese de que el número mínimo de instancias en buen estado que especifique sea inferior alnúmero total de instancias del grupo de implementaciones. Si especifica un valor de porcentaje,recuerde que se redondeará. De lo contrario, cuando comience la implementación, el númerode instancias en buen estado ya será inferior o igual que el número mínimo especificado deinstancias en buen estado y CodeDeploy marcará toda la implementación como errónea.

CodeDeploy usa también el número mínimo especificado de instancias en buen estado y el númeroreal de instancias en buen estado para determinar si y cómo implementar la revisión de la aplicaciónen varias instancias. De forma predeterminada, CodeDeploy implementa la revisión de la aplicación entantas instancias como puede sin que exista el riesgo de que el número de instancias en buen estadoespecificado caiga por debajo del número mínimo especificado de instancias en buen estado. Por ejemplo:

• Si su grupo de implementaciones tiene 10 instancias y establece el número mínimo de instancias enbuen estado en 9, CodeDeploy realiza la implementación en una instancia cada vez.

• Si su grupo de implementaciones tiene 10 instancias y establece el número mínimo de instancias enbuen estado en 0, CodeDeploy realiza la implementación en todas las instancias a la vez.

Ejemplos

Versión de API 2014-10-06258

Page 268: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioInstancias e implementaciones mínimas en buen estado

En los siguientes ejemplos se presupone que existe un grupo de implementaciones con 10 instancias.

Mínimo de instancias en buen estado: 95%

CodeDeploy redondea el número mínimo de instancias en buen estado mínimo a 10 instancias, lo queequivale al número de instancias en buen estado. Toda la implementación produce inmediatamente unerror sin que se implemente la revisión en ninguna de las instancias.

Mínimo de instancias en buen estado: 9

CodeDeploy implementa la revisión en una instancia cada vez. Si se produce un error deimplementación en alguna instancia, CodeDeploy cancelará inmediatamente la implementaciónglobal, ya que el número de instancias en buen estado es igual al número mínimo de instanciasen buen estado. La excepción a esta regla es que si se produce un error en la última instancia, laimplementación se realiza correctamente.

CodeDeploy continúa la implementación, una instancia cada vez, hasta que se produzca un error enalguna implementación o hasta que se complete toda la implementación. Si las 10 implementacionesse realizan correctamente, el grupo de implementaciones tendrá ahora 10 instancias en buen estado.

Mínimo de instancias en buen estado: 8

CodeDeploy implementa la revisión en dos instancias a la vez. Si dos de estas implementaciones danun error, CodeDeploy produce inmediatamente un error en toda la implementación. La excepción aesta regla es que si la última instancia es la segunda instancia que da error, la implementación serealiza correctamente.

Mínimo de instancias en buen estado: 0

CodeDeploy implementa la revisión en todo el grupo de implementaciones a la vez. La implementacióndebe realizarse correctamente al menos en una instancia para que la implementación global se realicecorrectamente. Si hay 0 instancias en buen estado, la implementación no se realiza correctamente.Esto se debe al requisito de que, para considerar que una implementación global se ha realizadocorrectamente, al menos una instancia debe estar en buen estado cuando finalice la implementaciónglobal, incluso si el valor mínimo de instancias en buen estado es 0.

Versión de API 2014-10-06259

Page 269: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación en una

plataforma de computación EC2/On-Premises

Uso de configuraciones deimplementación en CodeDeploy

Una configuración de implementación es un conjunto de reglas y condiciones de éxito o fracaso queCodeDeploy utiliza durante una implementación. Estas reglas y condiciones varían en función de si laimplementación se realiza en una EC2/On-Premises plataforma de computación, AWS Lambda plataformade computación o Amazon ECS plataforma de computación.

Configuraciones de implementación en unaplataforma de computación EC2/On-Premises

Cuando se realiza la implementación en una EC2/On-Premises plataforma de computación, laconfiguración de implementación especifica, a través de un valor mínimo de hosts en buen estado,el número o porcentaje de instancias que deben estar disponibles en cualquier momento de laimplementación.

Puede utilizar una de las tres configuraciones de implementación predefinidas proporcionada por AWS,o bien crear una configuración de implementación personalizada. Si no especifica una configuración deimplementación, CodeDeploy usará CodeDeployDefault.OneAtATime.

Para obtener más información sobre el modo en que CodeDeploy monitoriza y evalúa el estado de lasinstancias durante la implementación, consulte Estado de las instancias (p. 255). Para ver una lista de lasconfiguraciones de implementación ya registradas en su cuenta de AWS, consulte Consulta de los detallesde las configuraciones de implementación (p. 266).

Configuraciones de implementación predefinidas parauna plataforma de computación EC2/On-PremisesLa siguiente tabla muestra las configuraciones de implementación predefinidas.

Configuración de implementación Descripción

CodeDeployDefault.AllAtOnce Implementaciones in situ:Intenta implementar una revisión de aplicación entantas instancias a la vez como sea posible. Elestado de la implementación global se muestracomo Realizado correctamente cuando la revisiónde la aplicación se haya implementado en una omás instancias. El estado de la implementaciónglobal se muestra como Error cuando la revisiónde la aplicación no se ha implementado enninguna instancia. Tomando como ejemplonueve instancias, CodeDeployDefault.AllAtOnceintenta implementar en las nueve a la vez. Laimplementación global tiene éxito si se realizade forma correcta incluso la implementación enuna sola instancia. Devuelve un error solo si se

Versión de API 2014-10-06260

Page 270: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación predefinidas

Configuración de implementación Descripciónproduce un error en las implementaciones de lasnueve instancias.

Implementaciones blue/green:

• Implementación en entorno desustitución: sigue las mismas reglas queCodeDeployDefault.AllAtOnce para lasimplementaciones in situ.

• Redirección del tráfico: dirige el tráfico a todaslas instancias del entorno de sustitución a la vez.Tiene éxito si el tráfico se dirige correctamente aal menos una instancia. Fracasa si la redireccióndel tráfico falla para todas las instancias.

CodeDeployDefault.HalfAtATime Implementaciones in situ:

Implementa hasta en la mitad de las instancias ala vez (redondeando a la baja). La implementaciónglobal tiene éxito si la revisión de la aplicaciónse implementa en al menos la mitad de lasinstancias (redondeando al alza). De lo contrario, laimplementación produce un error. En el ejemplo denueve instancias, se implementa hasta en cuatroinstancias a la vez. La implementación global tieneéxito si la implementación es correcta en cinco omás instancias. De lo contrario, la implementaciónproduce un error.

Implementaciones blue/green:

• Implementación en entorno desustitución: sigue las mismas reglas queCodeDeployDefault.HalfAtATime para lasimplementaciones in situ.

• Redirección del tráfico: dirige el tráfico haciala mitad de las instancias del entorno desustitución a la vez, como máximo. Tiene éxito sila redirección es correcta para al menos la mitadde las instancias. De lo contrario, devuelve unerror.

Versión de API 2014-10-06261

Page 271: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación predefinidas

Configuración de implementación Descripción

CodeDeployDefault.OneAtATime Implementaciones in situ:

Implementa la revisión de la aplicación en solo unainstancia cada vez.

En el caso de grupos de implementaciones quecontengan más de una instancia:

• La implementación global tiene éxito si larevisión de la aplicación se implementa entodas las instancias. La excepción a esta reglase da cuando falla la implementación en laúltima instancia: la implementación global sigueteniendo éxito. Esto se debe a que, con laconfiguración CodeDeployDefault.OneAtATime,CodeDeploy solo permite desactivar unainstancia cada vez.

• La implementación global fracasa si laimplementación de la revisión de la aplicaciónfalla en cualquier instancia, salvo la última.

• En el ejemplo con nueve instancias, laimplementación se hace en una instancia cadavez. La implementación global tiene éxito si laimplementación en las primeras ocho instanciasse realiza de forma correcta. La implementaciónglobal genera un error si la implementación enalguna de las primeras ocho instancias devuelveun error.

En el caso de grupos de implementaciones quecontengan una única instancia, la implementaciónglobal solo tiene éxito si la implementación en laúnica instancia es correcta.

Implementaciones blue/green:

• Implementación en entorno desustitución: sigue las mismas reglas queCodeDeployDefault.OneAtATime para lasimplementaciones in situ.

• Redirección del tráfico: dirige el tráfico a unainstancia del entorno de sustitución cada vez.Tiene éxito si el tráfico se redirige correctamentea todas las instancias de sustitución. Fracasaen cuanto la redirección falla. La excepción aesta regla se da cuando no puede registrarse laúltima instancia: la implementación global sigueteniendo éxito.

Versión de API 2014-10-06262

Page 272: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación en una

plataforma de computación de Amazon ECS

Configuraciones de implementación en unaplataforma de computación de Amazon ECS

Cuando la implementación se realiza en una Amazon ECS plataforma de computación, la configuración deimplementación especifica cómo se desvía el tráfico al conjunto de tareas actualizado de Amazon ECS.

Hay tres formas de desviar el tráfico en una implementación:

• Canary: el tráfico se desvía en dos incrementos. Puede elegir opciones "canary" predefinidas queespecifiquen el porcentaje de tráfico desviado al conjunto de tareas actualizado de Amazon ECS en elprimer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundoincremento.

• Linear: El tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cadaincremento y el número de minutos entre cada incremento.

• All-at-once: todo el tráfico se desvía del conjunto de tareas original de Amazon ECS al conjunto detareas actualizado de Amazon ECS a la vez.

También puede crear su propia configuración de implementación "canary" o "linear".

Configuraciones de implementación predefinidas parauna plataforma de computación de Amazon ECSLa siguiente tabla muestra las configuraciones predefinidas disponibles para las implementaciones deAmazon ECS.

Configuración de implementación Descripción

CodeDeployDefault.ECSLinear10PercentEvery1MinutesDesvía el 10 por ciento del tráfico cada minutohasta que se desvía todo el tráfico.

CodeDeployDefault.ECSLinear10PercentEvery3MinutesDesvía el 10 por ciento del tráfico cada tresminutos hasta que se desvía todo el tráfico.

CodeDeployDefault.ECSCanary10Percent5Minutes Desvía el 10 por ciento del tráfico en el primerincremento. El 90 por ciento restante seimplementa cinco minutos más tarde.

CodeDeployDefault.ECSCanary10Percent15Minutes Desvía el 10 por ciento del tráfico en el primerincremento. El 90 por ciento restante seimplementa 15 minutos más tarde.

CodeDeployDefault.ECSAllAtOnce Desvía todo el tráfico al contenedor de AmazonECS actualizado a la vez.

Versión de API 2014-10-06263

Page 273: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación paraimplementaciones blue/green (azul/verde)de AWS CloudFormation (Amazon ECS)

Configuraciones de implementación paraimplementaciones blue/green (azul/verde) de AWSCloudFormation (Amazon ECS)

Si se realiza una implementación en Amazon ECS plataforma de computación a través deimplementaciones blue/green (azul/verde) de AWS CloudFormation, la configuración de implementaciónespecifica cuánto tráfico se envía al contenedor de Amazon ECS actualizado.

Hay tres formas en las que el tráfico puede cambiar durante una implementación blue/green (azul/verde)de Amazon ECS a través de AWS CloudFormation:

• Valores controlados: el tráfico se desvía en dos incrementos. Puede elegir una opción de valorescontrolados predefinida que especifique el porcentaje de tráfico desviado al conjunto de tareasactualizado de Amazon ECS en el primer incremento y el intervalo, en minutos, antes de que el tráficorestante se desvíe en el segundo incremento.

• Lineal: el tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede especificar el porcentaje de tráfico desviado en cada incremento y el número de minutos entrecada incremento.

• Todo a la vez: todo el tráfico se desvía del conjunto de tareas de Amazon ECS original al conjunto detareas actualizado de Amazon ECS a la vez.

Para esta configuración de implementación, no puede crear su propia configuración de implementaciónde valores controlados o lineal personalizada. Para obtener instrucciones paso a paso sobre cómo utilizarAWS CloudFormation para administrar las implementaciones blue/green (azul/verde) de Amazon ECS,consulte Automatizar implementaciones blue/green (azul/verde) de ECS a través de CodeDeploy usandoAWS CloudFormation en la Guía del usuario de AWS CloudFormation.

Note

La administración de implementaciones blue/green (azul/verde) de Amazon ECS con AWSCloudFormation no está disponible en las regiones MXP, CPT, KIX o BJS/ZHY.

Configuraciones de implementación en unaplataforma de computación AWS Lambda

Si realiza la implementación en una AWS Lambda plataforma de computación, la configuración deimplementación especifica el modo en que se desvía el tráfico a las nuevas versiones de la función deLambda de la aplicación.

Hay tres formas de desviar el tráfico en una implementación:

• Canary: el tráfico se desvía en dos incrementos. Puede elegir opciones "canary" predefinidas queespecifiquen el porcentaje de tráfico desviado a la versión actualizada de la función Lambda en elprimer incremento y el intervalo, en minutos, antes de que el tráfico restante se desvíe en el segundoincremento.

• Linear: El tráfico se desvía en incrementos iguales con el mismo número de minutos entre incrementos.Puede elegir opciones lineales predefinidas que especifiquen el porcentaje de tráfico desviado en cadaincremento y el número de minutos entre cada incremento.

• All-at-once: todo el tráfico se desvía a la vez desde la función Lambda original a la función Lambdaactualizada.

Versión de API 2014-10-06264

Page 274: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación predefinidas de Lambda

También puede crear su propia configuración de implementación "canary" o "linear".

Configuraciones de implementación predefinidas parauna plataforma de computación AWS LambdaLa siguiente tabla muestra las configuraciones predefinidas disponibles para implementaciones AWSLambda.

Configuración de implementación Descripción

CodeDeployDefault.LambdaCanary10Percent5MinutesDesvía el 10 por ciento del tráfico en el primerincremento. El 90 por ciento restante seimplementa cinco minutos más tarde.

CodeDeployDefault.LambdaCanary10Percent10MinutesDesvía el 10 por ciento del tráfico en el primerincremento. El 90 por ciento restante seimplementa 10 minutos más tarde.

CodeDeployDefault.LambdaCanary10Percent15MinutesDesvía el 10 por ciento del tráfico en el primerincremento. El 90 por ciento restante seimplementa 15 minutos más tarde.

CodeDeployDefault.LambdaCanary10Percent30MinutesDesvía el 10 por ciento del tráfico en el primerincremento. El 90 por ciento restante seimplementa 30 minutos más tarde.

CodeDeployDefault.LambdaLinear10PercentEvery1MinuteDesvía el 10 por ciento del tráfico cada minutohasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaLinear10PercentEvery2MinutesDesvía el 10 por ciento del tráfico cada dosminutos hasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaLinear10PercentEvery3MinutesDesvía el 10 por ciento del tráfico cada tresminutos hasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaLinear10PercentEvery10MinutesDesvía el 10 por ciento del tráfico cada 10 minutoshasta que se desvía todo el tráfico.

CodeDeployDefault.LambdaAllAtOnce Desvía todo el tráfico a las funciones Lambdaactualizadas a la vez.

Temas

• Creación de una configuración de implementación (p. 265)• Consulta de los detalles de las configuraciones de implementación (p. 266)• Eliminación de una configuración de implementación (p. 267)

Creación de una configuración de implementacióncon CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI, las API de CodeDeploy o una plantilla de AWSCloudFormation para crear configuraciones de implementación personalizadas.

Versión de API 2014-10-06265

Page 275: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConsulta de los detalles de las

configuraciones de implementación

Para obtener información sobre cómo utilizar una plantilla de AWS CloudFormation para crear unaconfiguración de implementación, consulte Referencia de plantillas de AWS CloudFormation paraCodeDeploy (p. 438).

Para crear una configuración de implementación con la AWS CLI, ejecute el comando create-deployment-config especificando:

• Un nombre que identifique de forma unívoca la configuración de implementación. Este nombre debeser único entre todas las configuraciones de implementación creadas con CodeDeploy y asociadas a lacuenta de AWS.

• El número o el porcentaje mínimo de instancias en buen estado que deben estar disponibles encualquier momento durante la implementación. Para obtener más información, consulte Estado de lasinstancias (p. 255).

En el ejemplo siguiente se crea una configuración de implementación de EC2/On-Premises denominadaThreeQuartersHealthy que requiere que un 75% de las instancias de destino se encuentren en buenestado durante la implementación:

aws deploy create-deployment-config --deployment-config-name ThreeQuartersHealthy --minimum-healthy-hosts type=FLEET_PERCENT,value=75

En el siguiente ejemplo, se crea una configuración de implementación de AWS Lambda denominadaCanary25Percent45Minutes. Utiliza el cambio de tráfico de la versión Canary para desviar el 25 por cientodel tráfico en el primer incremento. El 75 por ciento restante se desviará 45 minutos más tarde:

aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform Lambda

En el siguiente ejemplo, se crea una configuración de implementación de Amazon ECS denominadaCanary25Percent45Minutes. Utiliza el cambio de tráfico de la versión Canary para desviar el 25 por cientodel tráfico en el primer incremento. El 75 por ciento restante se desviará 45 minutos más tarde:

aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform ECS

Consulta de los detalles de las configuraciones deimplementación con CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para ver informacióndetallada sobre las configuraciones de implementación asociadas a su cuenta de AWS. Para obtenerdescripciones de las configuraciones de implementación de CodeDeploy predefinidas, consulteConfiguraciones de implementación predefinidas para una plataforma de computación EC2/On-Premises (p. 260).

Temas• Consulta de los detalles de las configuraciones de implementación (consola) (p. 267)• Consulta de la configuración de implementación (CLI) (p. 267)

Versión de API 2014-10-06266

Page 276: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConsulta de los detalles de las

configuraciones de implementación (consola)

Consulta de los detalles de las configuraciones deimplementación (consola)Para utilizar la consola de CodeDeploy para ver una lista de los nombres de configuraciones deimplementación:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija Deploymentconfigurations (Configuraciones de implementación).

Aquí puede ver los nombres de las configuraciones de implementación y los criterios de cadaconfiguración de implementación.

Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta. Enla barra de navegación, en el selector de regiones, elija una de las regiones enumeradas enRegion and endpoints (Regiones y puntos de enlace) en AWS General Reference. CodeDeploysolo es compatible con estas regiones.

Consulta de la configuración de implementación (CLI)Si desea utilizar la AWS CLI para ver los detalles de las configuraciones de implementación, llame alcomando get-deployment-config o list-deployment-configs.

Para ver los detalles de una única configuración de implementación, llame al comando get-deployment-config, especificando el nombre único de la configuración de implementación.

Para ver detalles de varias configuraciones de implementación, llame al comando list-deployments.

Eliminación de una configuración deimplementación con CodeDeploy

Puede utilizar las API de CodeDeploy o la AWS CLI para eliminar configuraciones de implementaciónpersonalizadas asociadas a su cuenta de AWS. No puede eliminar las configuraciones de implementaciónintegradas, como CodeDeployDefault.AllAtOnce, CodeDeployDefault.HalfAtATime yCodeDeployDefault.OneAtATime.

Warning

No puede eliminar una configuración de implementación personalizadas que todavía está en uso.Si elimina una configuración de implementación personalizada no utilizada, ya no podrá asociarlacon nuevas implementaciones y nuevos grupos de implementaciones. Esta acción no se puededeshacer.

Si desea utilizar la AWS CLI para eliminar una configuración de implementación, ejecute el comandodelete-deployment-config, especificando el nombre de la configuración de implementación. Para ver unalista de los nombres de las configuraciones de implementación, llame al comando list-deployment-configs.

Versión de API 2014-10-06267

Page 277: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEliminación de una configuración de implementación

El siguiente ejemplo elimina una configuración de implementación denominada ThreeQuartersHealthy.

aws deploy delete-deployment-config --deployment-config-name ThreeQuartersHealthy

Versión de API 2014-10-06268

Page 278: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Trabajar con aplicaciones enCodeDeploy

Después de configurar las instancias, pero antes de implementar una revisión, debe crear una aplicaciónen CodeDeploy. Una aplicación es simplemente un nombre o un contenedor que CodeDeploy utiliza paraasegurarse de que se haga referencia a la revisión, la configuración de implementación y el grupo deimplementaciones correctos durante una implementación.

Utilice la siguiente información de la tabla que se indica a continuación para realizar estos pasos:

Plataforma de computación Escenario Información para el pasosiguiente

EC2/On-Premises Todavía no he creado lasinstancias.

Consulte Trabajar con instanciasde CodeDeploy (p. 202) y, acontinuación, vuelva a estapágina.

EC2/On-Premises He creado las instancias, pero noha terminado de etiquetarlas.

Consulte Instanciasde etiquetado paraimplementaciones en AWSCodeDeploy (p. 204) y, acontinuación, vuelva a estapágina.

EC2/On-Premises, AWS Lambday Amazon ECS

Todavía no he creado unaaplicación.

Consulte Creación deuna aplicación conCodeDeploy (p. 270)

EC2/On-Premises, AWS Lambday Amazon ECS

Ya he creado una aplicación,pero no he creado un grupo deimplementaciones.

Consulte Creación de un grupode implementaciones conCodeDeploy (p. 285).

EC2/On-Premises, AWS Lambday Amazon ECS

Ya he creado una aplicación y ungrupo de implementaciones, perono he creado una revisión de laaplicación.

Consulte Gestión derevisiones de aplicaciones enCodeDeploy (p. 304).

EC2/On-Premises, AWS Lambday Amazon ECS

Ya he creado una aplicación yun grupo de implementaciones,y ya he cargado la revisión demi aplicación. Estoy listo para laimplementación.

Consulte Crear unaimplementación conCodeDeploy (p. 321).

Temas• Creación de una aplicación con CodeDeploy (p. 270)• Visualización de los detalles de la aplicación con CodeDeploy (p. 280)• Creación de una regla de notificación (p. 280)

Versión de API 2014-10-06269

Page 279: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación

• Cambiar el nombre de una aplicación de CodeDeploy (p. 282)• Eliminación de una aplicación en CodeDeploy (p. 283)

Creación de una aplicación con CodeDeployUna aplicación es simplemente un nombre o contenedor que CodeDeploy utiliza para asegurarse deque se haga referencia a la revisión, la configuración de implementación y el grupo de implementacionescorrectos durante la implementación. Puede utilizar la consola de CodeDeploy, la AWS CLI y las API deCodeDeploy o una plantilla de AWS CloudFormation para crear aplicaciones.

El código, o revisión de la aplicación, se instala en las instancias mediante un proceso denominadoimplementación. CodeDeploy admite dos tipos de implementaciones:

• In-place deployment (Implementación in situ): la aplicación de cada instancia del grupo deimplementación se para, se instala la última revisión de la aplicación, y se inicia y valida la nuevaversión de la aplicación. Puede utilizar un balanceador de carga de modo que se cancele el registrode cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vezcompletada la implementación. Solo las implementaciones que usan la EC2/On-Premises plataforma decomputación pueden utilizar implementaciones "in-place". Para obtener más información acerca de lasimplementaciones in-place, consulte Información general de la implementación in situ (p. 8).

• Implementación Blue/green: el funcionamiento de la implementación depende de la plataforma decomputación que utilice:• Blue/green en unaEC2/On-Premises plataforma de computación: las instancias de un grupo de

implementación (el entorno original) se sustituyen por otro conjunto de instancias (el entorno desustitución) siguiendo estos pasos:• Las instancias se aprovisionan para el entorno de sustitución.• En las instancias de sustitución se instala la revisión de la aplicación más reciente.• Hay un tiempo de espera opcional para actividades como probar la aplicación y verificar el sistema.• Las instancias del entorno de sustitución se registran con un balanceador de carga de Elastic Load

Balancing, lo que hace que el tráfico comience a redirigirse hacia ellas. Se anula el registro de lasinstancias del entorno original, y se puede optar por terminaras o mantenerlas en ejecución paraotros usuarios.

Note

Si utiliza una EC2/On-Premises plataforma de computación, tenga en cuenta que lasimplementaciones blue/green solo funcionan con instancias Amazon EC2.

• Blue/green en una AWS Lambda plataforma de computación: el tráfico se desvía desde el entornosin servidor actual a uno con las versiones de funciones Lambda actualizadas. Puede especificarlas funciones Lambda que realizan las pruebas de validación y elegir el modo en que se realiza eldesvío de tráfico. Todas las implementaciones de AWS Lambda plataforma de computación sonimplementaciones blue/green. Por este motivo, no es necesario que especifique ningún tipo deimplementación.

• Blue/green en Amazon ECS plataforma de computación: el tráfico se desvía desde el conjunto detareas con la versión original de una aplicación de un servicio de Amazon ECS a un conjunto detareas de sustitución del mismo servicio. Puede establecer el desplazamiento de tráfico como linealo controlado a través de la configuración de implementación. Se usan el protocolo y el puerto de unagente de escucha de balanceo de carga especificado para redirigir el tráfico de producción. Duranteuna implementación, se puede usar un agente de escucha de prueba para servir el tráfico al conjuntode tareas de sustitución mientras se ejecutan las pruebas de validación.

• Implementaciones blue/green (azul/verde) a través de AWS CloudFormation: el tráfico se desplazade los recursos actuales a los recursos actualizados como parte de una actualización de pila de AWSCloudFormation. Actualmente, solo se admiten implementaciones de ECS blue/green (azul/verde).

Versión de API 2014-10-06270

Page 280: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para

una implementación in situ (consola)

Para obtener más información acerca de las implementaciones blue/green, consulte Información generalde la implementación blue/green (p. 9).

Cuando utiliza la consola de CodeDeploy para crear una aplicación, también configura su primer grupo deimplementaciones al mismo tiempo. Cuando utiliza la AWS CLI para crear una aplicación, crea su primergrupo de implementaciones en un paso independiente.

Para ver una lista de las aplicaciones ya registradas en su cuenta de AWS, consulte Visualización delos detalles de la aplicación con CodeDeploy (p. 280). Para obtener información sobre el uso de unaplantilla de AWS CloudFormation para crear una aplicación, consulte Referencia de plantillas de AWSCloudFormation para CodeDeploy (p. 438).

Los dos tipos de implementación no se aplican a todos los destinos. En la tabla siguiente se muestra unalista de los tipos de implementación que funcionan con implementaciones en los tres tipos de destinos deimplementación.

Destino de implementación In situ Blue/green (azul/verde)

Amazon EC2 Sí Sí

Implementación on-premise Sí No

Funciones de AWS Lambda sinservidor

No Sí

Aplicaciones de Amazon ECS No Sí

Temas• Creación de una aplicación para una implementación in situ (consola) (p. 271)• Creación de una aplicación para una implementación blue/green (consola) (p. 273)• Creación de una aplicación para la implementación de una servicio de Amazon ECS (consola)

(p. 276)• Creación de una aplicación para la implementación de una función de AWS Lambda

(consola) (p. 278)• Creación de una aplicación (CLI) (p. 279)

Creación de una aplicación para una implementaciónin situ (consola)Para utilizar la consola de CodeDeploy para crear una aplicación para una implementación in situ:

Warning

No siga estos pasos si:

• No ha preparado sus instancias para su uso en implementaciones de CodeDeploy.Para configurar sus instancias, siga las instrucciones de Trabajar con instancias deCodeDeploy (p. 202) y, a continuación, siga los pasos de este tema.

• Desea crear una aplicación que utilice una configuración de implementación personalizada,pero todavía no ha creado dicha configuración de implementación. Siga las instrucciones deCreación de una configuración de implementación (p. 265) y, a continuación, siga los pasos deeste tema.

Versión de API 2014-10-06271

Page 281: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para

una implementación in situ (consola)

• No tiene un rol de servicio que confíe en CodeDeploy con la confianza y los permisos mínimosnecesarios. Para crear y configurar un rol de servicio con los permisos necesarios, siga lasinstrucciones de Paso 3: Crear un rol de servicio para CodeDeploy (p. 39) y, a continuación,vuelva a los pasos de este tema.

• Desea seleccionar una instancia de Classic Load Balancer, Balanceador de carga deaplicaciones o Network Load Balancer en Elastic Load Balancing para la implementación in situ,pero todavía no la ha creado.

Para utilizar la consola de CodeDeploy para crear una aplicación para una implementación in situ:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija Getting started(Introducción).

3. Elija Create application.4. En Application name (Nombre de la aplicación), especifique el nombre de la aplicación.5. En Compute platform (Plataforma de computación) elija EC2/On-Premises.6. Elija Create application.7. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementación).8. En Deployment group name (Nombre de grupo de implementación), introduzca un nombre que

describa el grupo de implementaciones.

Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones; las etiquetas, los nombres de grupode Amazon EC2 Auto Scaling o ambos, y la configuración de implementación), especifiqueesos valores en esta página. Aunque este nuevo grupo de implementaciones y el grupo deimplementaciones existente tienen el mismo nombre, CodeDeploy los trata como grupos deimplementaciones independientes, porque cada uno de ellos está asociado a una aplicaciónindependiente.

9. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy a lainstancia de destino.

10. En Deployment type (Tipo de implementación), elija In-place (In situ).11. En Environment configuration (Configuración del entorno), seleccione una de las opciones siguientes:

a. Amazon EC2 Auto Scaling groups (Grupos de Amazon EC2 Auto Scaling): introduzca o elijael nombre del grupo de Amazon EC2 Auto Scaling en el que desea implementar la revisión dela aplicación. Cuando se lanzan instancias Amazon EC2 nuevas como parte de un grupo deAmazon EC2 Auto Scaling, CodeDeploy puede implementar automáticamente las revisiones enlas instancias nuevas. Puede añadir hasta 10 grupos de Amazon EC2 Auto Scaling a un grupo deimplementaciones.

b. Amazon EC2 instances (Instancias Amazon EC2) u On-premises instances (Instancias on-premises): en los campos Key (Clave) y Value (Valor), especifique los valores del par clave-valorque ha utilizado para etiquetar las instancias. Puede etiquetar hasta 10 pares de clave-valor en unúnico grupo de etiquetas.

i. Puede utilizar comodines en el campo Value (Valor) para identificar todas las instanciasetiquetadas en determinados patrones, por ejemplo, instancias Amazon EC2, centros de

Versión de API 2014-10-06272

Page 282: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para unaimplementación blue/green (consola)

costos, nombres de grupo y otros elementos similares. Por ejemplo, si elige Name (Nombre)en el campo Key (Clave) y especifica GRP-*a en el campo Value (Valor), CodeDeployidentifica todas las instancias que coincidan con este patrón, como GRP-1a, GRP-2a y GRP-XYZ-a.

ii. El campo Value (Valor) distingue entre mayúsculas y minúsculas.iii. Para eliminar un par clave-valor de la lista, elija Remove tag (Quitar etiqueta).

A medida que CodeDeploy busca instancias que coincidan con cada par clave-valor o nombrede grupo de Amazon EC2 Auto Scaling especificado, va mostrando el número de instanciascoincidentes. Elija el número para obtener más información sobre las instancias.

Si desea redefinir los criterios de las instancias en las que se han realizado implementaciones,elija Add tag group para crear un grupo de etiquetas. Puede crear un máximo de tres grupos deetiquetas con hasta diez pares de clave-valor cada uno. Cuando utiliza varios grupos de etiquetasen un grupo de implementaciones, solo las instancias identificadas por todos los grupos deetiquetas se incluyen en el grupo de implementaciones. Esto significa una instancia debe coincidircon al menos una de las etiquetas de cada uno de los grupos que se deben incluir en el grupo deimplementaciones.

Para obtener información sobre el uso de grupos de etiquetas para redefinir el grupo deimplementaciones, consulte Instancias de etiquetado para implementaciones en AWSCodeDeploy (p. 204).

12. En Deployment settings (Configuración de la implementación), elija una configuración deimplementación para controlar la velocidad en que la aplicación se implementa en las instancias, porejemplo, una a una o todas a la vez. Para obtener más información acerca de las configuraciones deimplementación, consulte Uso de configuraciones de implementación en CodeDeploy (p. 260).

13. (Opcional) En Load balancer (Balanceador de carga), seleccione Enable load balancing (Habilitarbalanceo de carga) y, a continuación, elija una instancia de Classic Load Balancer, Balanceador decarga de aplicaciones o Network Load Balancer existente para administrar el tráfico a las instanciasdurante los procesos de implementación.

El registro de cada instancia se anula desde el balanceador de carga (Classic Load Balancers)o el grupo de destino (Application Load Balancers y Network Load Balancers) para evitar que eltráfico se direccione a ella durante la implementación. La instancia se vuelve a registrar cuando laimplementación se haya completado.

Para obtener más información sobre los balanceadores de carga de las implementaciones deCodeDeploy, consulte Integración de CodeDeploy con Elastic Load Balancing (p. 57).

14. (Opcional) Expanda Advanced (Avanzados) y configure las opciones que desea incluir en laimplementación, por ejemplo disparadores de notificaciones de Amazon SNS, alarmas de AmazonCloudWatch o restauraciones automáticas.

Para obtener más información, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

15. Elija Create deployment group.

El siguiente paso consiste en preparar una revisión para implementar en la aplicación y el grupo deimplementaciones. Para obtener instrucciones, consulte Gestión de revisiones de aplicaciones enCodeDeploy (p. 304).

Creación de una aplicación para una implementaciónblue/green (consola)Para utilizar la consola de CodeDeploy para crear una aplicación para una implementación blue/green:

Versión de API 2014-10-06273

Page 283: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para unaimplementación blue/green (consola)

Note

Una implementación en la AWS Lambda plataforma de computación es siempre unaimplementación blue/green. No especifica una opción de tipo de implementación.Warning

No siga estos pasos si:

• No tiene instancias con el agente de CodeDeploy instalado que desea sustituir durante elproceso de implementación blue/green. Para configurar sus instancias, siga las instrucciones deTrabajar con instancias de CodeDeploy (p. 202) y, a continuación, siga los pasos de este tema.

• Desea crear una aplicación que utilice una configuración de implementación personalizada,pero todavía no ha creado dicha configuración de implementación. Siga las instrucciones deCreación de una configuración de implementación (p. 265) y, a continuación, siga los pasos deeste tema.

• No dispone de un rol de servicio que confíe en CodeDeploy, como mínimo, con la confianzay los permisos que se describen en Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).Para crear y configurar un rol de servicio, siga las instrucciones de Paso 3: Crear un rol deservicio para CodeDeploy (p. 39) y, a continuación, siga los pasos de este tema.

• No ha creado una instancia de Classic Load Balancer, Balanceador de carga de aplicacioneso Network Load Balancer en Elastic Load Balancing para el registro de las instancias ensu entorno de sustitución. Para obtener más información, consulte Configuración de unbalanceador de carga en Elastic Load Balancing para implementaciones de Amazon EC2 deCodeDeploy (p. 293).

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y, a continuación, elija Getting started(Introducción).

3. En Application name (Nombre de la aplicación), especifique el nombre de la aplicación.4. En Compute platform (Plataforma de computación) elija EC2/On-Premises.5. Elija Create application.6. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementación).7. En Deployment group name (Nombre de grupo de implementación), introduzca un nombre que

describa el grupo de implementaciones.Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones; las etiquetas, los nombres de grupo deAmazon EC2 Auto Scaling y la configuración de implementación), elija esos valores en estapágina. Aunque este nuevo grupo de implementaciones y el grupo de implementacionesexistente tienen el mismo nombre, CodeDeploy los trata como grupos de implementacionesindependientes, porque cada uno de ellos está asociado a una aplicación independiente.

8. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy a lainstancia de destino.

9. En Deployment type (Tipo de implementación) elija Blue/green.10. En Environment configuration, elija el método que desea utilizar para proporcionar instancias para su

entorno de sustitución:

Versión de API 2014-10-06274

Page 284: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para unaimplementación blue/green (consola)

a. Automatically copy Amazon EC2 Auto Scaling group (Copiar automáticamente el grupo deAmazon EC2 Auto Scaling): CodeDeploy crea un grupo de Amazon EC2 Auto Scaling copiandouno que se haya especificado.

b. Manually provision instances: no especifica las instancias de su entorno de sustitución hasta quecrea una implementación. Debe crear las instancias antes de empezar la implementación. En sulugar, en este caso debe especificar las instancias que desea sustituir.

11. En función de su elección en el paso 10, lleve a cabo alguna de las siguientes operaciones:

• Si eligió Automatically copy Amazon EC2 Auto Scaling group (Copiar automáticamente grupo deAmazon EC2 Auto Scaling): en Amazon EC2 Auto Scaling group (Grupo de Amazon EC2 AutoScaling), elija o introduzca el nombre del grupo de Amazon EC2 Auto Scaling que desee utilizarcomo plantilla para el grupo de Amazon EC2 Auto Scaling para las instancias del entorno desustitución. El número de instancias actualmente en buen estado en el grupo de Amazon EC2 AutoScaling que elija se crea en su entorno de sustitución.

• Si eligió Manually provision instances (Aprovisionar instancias manualmente): habilite Amazon EC2Auto Scaling groups (Grupos de Amazon EC2 Auto Scaling), Amazon EC2 intances (InstanciasAmazon EC2) o ambas opciones para especificar las instancias que desea añadir a este grupo deimplementación. Introduzca los valores de etiqueta de Amazon EC2 o los nombres de grupo deAmazon EC2 Auto Scaling para identificar las instancias del entorno original (es decir, las instanciasque desea reemplazar o que ejecutan la revisión de la aplicación actual).

12. (Opcional) En Load balancer (Balanceador de carga), habilite Enable load balancing (Habilitarbalanceo de carga) y, a continuación, elija una instancia de Classic Load Balancer, Balanceador decarga de aplicaciones o Network Load Balancer existente para administrar el tráfico a las instanciasdurante los procesos de implementación.

El registro de cada instancia se anula desde el balanceador de carga (Classic Load Balancers)o el grupo de destino (Application Load Balancers y Network Load Balancers) para evitar que eltráfico se direccione a ella durante la implementación. La instancia se vuelve a registrar cuando laimplementación se haya completado.

Para obtener más información sobre los balanceadores de carga de las implementaciones deCodeDeploy, consulte Integración de CodeDeploy con Elastic Load Balancing (p. 57).

13. En Deployment settings, revise las opciones predeterminadas para redirigir el tráfico al entorno desustitución, qué configuración de implementación desea utilizar para la implementación y cómo segestionan las instancias en el entorno original después de la implementación.

Si desea cambiar la configuración, continúe con el paso siguiente. De lo contrario, vaya al paso 15.14. Para cambiar la configuración de la implementación blue/green cambie cualquiera de los siguientes

ajustes.

Opción Opciones

Traffic rerouting (Nuevo enrutamiento del tráfico) • Reroute traffic immediately: tan prontocomo se aprovisionan las instancias delentorno de sustitución y se instala en ellas laúltima revisión de la aplicación, se registranautomáticamente en el balanceador de carga,lo que hace que el tráfico se redirija a ellas.Se anula el registro de las instancias en elentorno original.

• I will choose whether to reroute traffic: lasinstancias del entorno de sustitución no seregistran automáticamente en el balanceadorde carga a menos que redirija el tráfico

Versión de API 2014-10-06275

Page 285: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para la implementación

de una servicio de Amazon ECS (consola)

Opción Opcionesmanualmente. Si se agota el tiempo de esperaespecificado sin que se redirija el tráfico,el estado de la implementación cambia aStopped.

Configuración de implementación Elija el modo en que las instancias del entornode sustitución se registran en el balanceador decarga, por ejemplo, una a una o todas a la vez.

Note

Una vez que el tráfico se dirige alentorno de sustitución de formasatisfactoria, se anula el registro detodas las instancias del entorno originala la vez, independientemente de laconfiguración de implementación quehaya seleccionado.

Para obtener más información, consulte Usode configuraciones de implementación enCodeDeploy (p. 260).

Original instances (Instancias originales) • Terminate the original instances in thedeployment group: una vez que el tráfico seredirija al entorno de sustitución, las instanciascuyo registro se anuló en el balanceador decarga se terminan tras el periodo de esperaespecificado.

• Keep the original instances in the deploymentgroup running: una vez que el tráfico se redirijaal entorno de sustitución, las instancias cuyoregistro se anuló en el balanceador de cargase mantienen en ejecución.

15. (Opcional) En Advanced (Avanzados), configure las opciones que desea incluir en la implementación;por ejemplo, disparadores de notificaciones de Amazon SNS, alarmas de Amazon CloudWatch orestauraciones automáticas.

Para obtener información acerca de cómo especificar opciones avanzadas en grupos deimplementaciones, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

16. Elija Create deployment group.

El siguiente paso consiste en preparar una revisión para implementar en la aplicación y el grupo deimplementaciones. Para obtener instrucciones, consulte Gestión de revisiones de aplicaciones enCodeDeploy (p. 304).

Creación de una aplicación para la implementación deuna servicio de Amazon ECS (consola)Puede utilizar la consola de CodeDeploy para crear una aplicación que permita la implementación deservicio de Amazon ECS.

Versión de API 2014-10-06276

Page 286: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para la implementación

de una servicio de Amazon ECS (consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y elija Getting started (Introducción).3. En la página Create application (Crear aplicación), elija Use CodeDeploy (Utilizar CodeDeploy).4. En Application name (Nombre de la aplicación), especifique el nombre de la aplicación.5. En Compute platform (Plataforma de computación), elija Amazon ECS.6. Elija Create application.7. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementaciones). Para obtener más información acercade lo que necesita para crear un grupo de implementaciones para una implementación de AmazonECS, consulte Antes de empezar una implementación de Amazon ECS (p. 20).

8. En Deployment group name (Nombre de grupo de implementaciones), introduzca un nombre quedescriba el grupo de implementaciones.

Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones y la configuración de implementación),elija esos valores en esta página. Aunque este nuevo grupo de implementaciones y el grupode implementaciones existente podrían tener el mismo nombre, CodeDeploy los trata comogrupos de implementaciones independientes, porque cada uno de ellos está asociado a unaaplicación independiente.

9. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy aAmazon ECS. Para obtener más información, consulte Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39).

10. En Load balancer name (Nombre del balanceador de carga), seleccione el nombre del balanceador decarga que sirve el tráfico a su servicio Amazon ECS.

11. En Production listener port (Puerto del agente de escucha de producción), elija el puerto y el protocolodel agente de escucha que sirve el tráfico de producción a su servicio Amazon ECS.

12. (Opcional) En Test listener port (Puerto del agente de escucha de prueba), elija el puerto y el protocolode un agente de escucha de prueba que sirva el tráfico al conjunto de tareas de sustitución desu servicio Amazon ECS durante la implementación. Puede especificar una o varias funcionesLambda en el AppSpec file que se ejecuten durante el enlace AfterAllowTestTraffic. Lasfunciones pueden ejecutar pruebas de validación. Si no se supera una prueba de validación,se activa la restauración de la implementación. Si se superan las pruebas de validación, sedesencadena el siguiente enlace del ciclo de vida de la implementación, BeforeAllowTraffic.Si no se especifica un puerto del agente de escucha de prueba, no ocurre nada durante el enlaceAfterAllowTestTraffic. Para obtener más información, consulte Sección "hooks" de AppSpecpara una implementación de Amazon ECS (p. 416).

13. En Target group 1 name (Nombre de grupo de destino 1) y Target group 2 name (Nombre de grupode destino 2), elija los grupos de destino utilizados para dirigir el tráfico durante su implementación.CodeDeploy enlaza un grupo de destino al conjunto de tareas original del servicio Amazon ECS y elotro a su conjunto de tareas de sustitución. Para obtener más información, consulte Grupos de destinode los balanceadores de carga de red.

14. Elija Reroute traffic immediately (Redirigir el tráfico inmediatamente) o Specify when to reroute traffic(Especificar cuándo redirigir el tráfico) para determinar cuándo se debe redirigir el tráfico al servicioAmazon ECS actualizado.

Si ha elegido Reroute traffic immediately (Redirigir el tráfico inmediatamente), la implementaciónredirige el tráfico inmediatamente después de aprovisionar el conjunto de tareas de sustitución.

Versión de API 2014-10-06277

Page 287: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación para la implementación

de una función de AWS Lambda (consola)

Si elige Specify when to retorute traffic (Especificar cuándo redirigir el tráfico), elija el número de días,horas y minutos que se debe esperar una vez que el conjunto de tareas de sustitución se aprovisionecorrectamente. Durante este tiempo de espera, se ejecutan las pruebas de validación de las funcionesLambda especificadas en el archivo AppSpec file. Si el tiempo de espera finaliza antes de que seredirija el tráfico, el estado de la implementación cambia a Stopped.

15. En Original revision termination (Terminación de revisión original), elija el número de días, horas yminutos que se debe esperar tras una implementación correcta antes de terminar el conjunto de tareasoriginal del servicio Amazon ECS.

16. (Opcional) En Advanced (Avanzados), configure las opciones que desea incluir en la implementación;por ejemplo, disparadores de notificaciones de Amazon SNS, alarmas de Amazon CloudWatch orestauraciones automáticas.

Para obtener más información, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

Creación de una aplicación para la implementación deuna función de AWS Lambda (consola)Puede utilizar la consola de CodeDeploy para crear una aplicación que permita la implementación de unafunción de AWS Lambda.

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y elija Getting started (Introducción).3. En la página Create application (Crear aplicación), elija Use CodeDeploy (Utilizar CodeDeploy).4. Especifique el nombre de la aplicación en Application name (Nombre de la aplicación).5. En Compute platform (Plataforma de computación), elija AWS Lambda.6. Elija Create application.7. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementación).8. En Deployment group name (Nombre de grupo de implementación), introduzca un nombre que

describa el grupo de implementaciones.

Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones y la configuración de implementación),elija esos valores en esta página. Aunque este nuevo grupo de implementaciones y el grupode implementaciones existente podrían tener el mismo nombre, CodeDeploy los trata comogrupos de implementaciones independientes, porque cada uno de ellos está asociado a unaaplicación independiente.

9. En Service role (Rol de servicio), elija una rol de servicio que conceda acceso a CodeDeploya AWS Lambda. Para obtener más información, consulte Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39).

10. Si desea utilizar una configuración de implementación predefinida, elija una en Deploymentconfiguration (Configuración de implementación) y, a continuación, vaya al paso 12. Para crear unaconfiguración personalizada, continúe al paso siguiente.

Versión de API 2014-10-06278

Page 288: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una aplicación (CLI)

Para obtener más información acerca de las configuraciones de implementación, consulte Configuraciones de implementación en una plataforma de computación AWS Lambda (p. 264).

11. Para crear una configuración personalizada, elija Create deployment configuration (Crearconfiguración de implementación) y, a continuación, haga lo siguiente:

a. En Deployment configuration name (Nombre de la configuración de implementación), introduzcaun nombre para la configuración.

b. En Type (Tipo), elija un tipo de configuración. Si elige Canary, el tráfico se desvía en dosincrementos. Si elige Linear, el tráfico se desvía en incrementos iguales con el mismo número deminutos entre incrementos.

c. En Step, introduzca el porcentaje de tráfico, comprendido entre 1 y 99, que se debe desviar. Siel tipo de configuración es Canary, este es el porcentaje de tráfico que se desvía en el primerincremento. El tráfico restante se desvía después del intervalo seleccionado en el segundoincremento. Si el tipo de configuración es Linear, este es el porcentaje de tráfico que se desvía alcomienzo de cada intervalo.

d. En Interval (Intervalo), introduzca el número de minutos. Si el tipo de configuración es Canary,este es el número de minutos entre el primer y el segundo desvío de tráfico. Si el tipo deconfiguración es Linear (Lineal), este es el número de minutos entre cada desvío incremental.

Note

La duración máxima de una implementación de AWS Lambda es de dos días, o 2 880minutos. Por lo tanto, el valor máximo especificado para Interval en una configuración“canary” es de 2 800 minutos. EL valor máximo para una configuración “linear” dependedel valor de Step. Por ejemplo, si el porcentaje de incremento de un desvío de tráfico“linear” es del 25%, hay cuatro desvíos de tráfico. El valor de intervalo máximo es de2880 dividido entre cuatro, o 720 minutos.

e. Elija Create deployment configuration (Crear configuración de implementación).12. (Opcional) En Advanced (Avanzados), configure las opciones que desea incluir en la implementación;

por ejemplo, disparadores de notificaciones de Amazon SNS, alarmas de Amazon CloudWatch orestauraciones automáticas.

Para obtener más información, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

13. Elija Create deployment group.

Creación de una aplicación (CLI)Si desea utilizar la AWS CLI para crear una aplicación, llame al comando create-application, especificandoun nombre que identifique de forma exclusiva la aplicación. (En una cuenta de AWS, un nombre deaplicación de CodeDeploy solo puede utilizarse una vez en cada región. Puede reutilizar el nombre de unaaplicación en diferentes regiones).

Después de utilizar la AWS CLI para crear una aplicación, el siguiente paso consiste en crear un grupo deimplementaciones que especifica las instancias en las que se implementarán las revisiones. Para obtenerinstrucciones, consulte Creación de un grupo de implementaciones con CodeDeploy (p. 285).

Después de crear el grupo de implementaciones, el siguiente paso consiste en preparar una revisión paraimplementar en la aplicación y el grupo de implementaciones. Para obtener instrucciones, consulte Gestiónde revisiones de aplicaciones en CodeDeploy (p. 304).

Versión de API 2014-10-06279

Page 289: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los detalles de la aplicación

Visualización de los detalles de la aplicación conCodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para ver informacióndetallada acerca de todas las aplicaciones asociadas a su cuenta de AWS.

Temas• Ver los detalles de la aplicación (Consola) (p. 280)• Ver los detalles de la aplicación (CLI) (p. 280)

Ver los detalles de la aplicación (Consola)Para utilizar la consola de CodeDeploy para ver los detalles de la aplicación:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y elija Getting started (Introducción).3. Para ver información detallada adicional acerca de la aplicación, elija el nombre de la aplicación de la

lista.

Ver los detalles de la aplicación (CLI)Si desea utilizar la AWS CLI para ver los detalles de las aplicaciones, llame al comando get-application,batch-get-application o al comando list-applications.

Para ver información detallada acerca de una sola aplicación, llame al comando get-application,especificando el nombre de la aplicación.

Para ver información detallada acerca de múltiples aplicaciones, llame al comando batch-get-applications,especificando múltiples nombres de aplicaciones.

Para ver una lista de nombres de aplicaciones, ejecute el comando list-applications.

Creación de una regla de notificaciónPuede utilizar reglas de notificación para notificar a los usuarios cuando hay cambios en las aplicacionesde implementación, como éxitos y errores de implementación. Las reglas de notificación especifican tantolos eventos como el tema de Amazon SNS que se utiliza para enviar notificaciones. Para obtener másinformación, consulte ¿Qué son las notificaciones?

Puede utilizar la consola o la AWS CLI para crear reglas de notificación para AWS CodeDeploy.

Para crear una regla de notificación (consola)

1. Inicie sesión en la Consola de administración de AWS y abra la consola de CodeDeploy en https://console.aws.amazon.com/codepipeline/.

Versión de API 2014-10-06280

Page 290: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una regla de notificación

2. Elija Application (Aplicación) y, a continuación, elija una aplicación donde desea agregarnotificaciones.

3. En la página de la aplicación, elija Notify (Notificar) y, a continuación, elija Create notification rule(Crear regla de notificación). También puede ir a la página Settings (Configuración) para la aplicacióny elegir Create notification rule (Crear regla de notificación).

4. En Notification name (Nombre de la notificación), introduzca un nombre para la regla.5. En Detail type (Tipo de detalle), elija Basic si solo desea que se incluya la información proporcionada

a Amazon EventBridge en la notificación. Elija Full (Completo) si desea incluir la informaciónproporcionada a Amazon EventBridge e información que podría suministrar CodeDeploy o eladministrador de notificaciones.

Para obtener más información, consulte Descripción del contenido y la seguridad de las notificaciones.6. En Events that trigger notifications (Eventos que activan notificaciones), seleccione los eventos para

los que desea enviar notificaciones.

Categoría Eventos

Implementación Error

Succeeded

Started

7. En Targets (Destinos), elija Create SNS topic (Crear tema SNS).

Note

Al crear el tema, se aplica la política que permite a CodeDeploy publicar eventos en el tema.El uso de un tema creado específicamente para notificaciones de CodeDeploy también ayudaa garantizar que solo agregue usuarios a la lista de suscripciones para ese tema para el quedesee ver notificaciones sobre esta aplicación de implementación.

Después del prefijo codestar-notifications- escriba un nombre para el tema y, a continuación, elijaSubmit (Enviar).

Note

Si desea utilizar un tema de Amazon SNS existente en lugar de crear uno nuevo, en Targets(Destinos), elija su ARN. Asegúrese de que el tema tiene la directiva de acceso adecuaday de que la lista de suscriptores contiene salo aquellos usuarios a los que se permite verinformación sobre la aplicación de implementación. Para obtener más información, consulteConfigurar temas de Amazon SNS existentes para notificaciones y Descripción del contenidoy la seguridad de las notificaciones.

8. Para terminar de crear la regla, elija Submit (Enviar).9. Debe suscribir a los usuarios al tema de Amazon SNS de la regla antes de que puedan recibir

notificaciones. Para obtener más información, consulte Suscribir usuarios a temas de Amazon SNSque son destinos. También puede configurar la integración entre notificaciones y AWS Chatbotpara enviar notificaciones a salas de chat de Amazon Chime o canales de Slack. Para obtener másinformación, consulte Configurar la integración entre notificaciones y AWS Chatbot.

Para crear una regla de notificación (AWS CLI)

1. En un terminal o símbolo del sistema, ejecute el comando create-notification rule para generar elesqueleto JSON:

aws codestar-notifications create-notification-rule --generate-cli-skeleton > rule.json

Versión de API 2014-10-06281

Page 291: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCambiar el nombre de una aplicación

Puede asignar al archivo el nombre que desee. En este ejemplo, el archivo se denomina rule.json.2. Abra el archivo JSON en un editor de texto sin formato y edítelo para incluir el recurso, los tipos de

eventos y el destino de Amazon SNS que desea para la regla. En el ejemplo siguiente se muestrauna regla de notificación denominada MyNotificationRule para una aplicación denominadaMyDeploymentApplication en una cuenta de AWS con el ID 123456789012. Las notificacionesse envían con el tipo de detalle completo a un tema de Amazon SNS denominado CodeStar-Notifications-MyNotificationTopic cuando las implementaciones se realizan correctamente:

{ "Name": "MyNotificationRule", "EventTypeIds": [ "codedeploy-application-deployment-succeeded" ], "Resource": "arn:aws:codebuild:us-east-2:123456789012:MyDeploymentApplication", "Targets": [ { "TargetType": "SNS", "TargetAddress": "arn:aws:sns:us-east-2:123456789012:codestar-notifications-MyNotificationTopic" } ], "Status": "ENABLED", "DetailType": "FULL"}

Guarde el archivo.3. Mediante el archivo que acaba de modificar, en el terminal o línea de comandos, vuelva a ejecutar el

comando create-notification-rule para crear la regla de notificación:

aws codestar-notifications create-notification-rule --cli-input-json file://rule.json

4. Si se ejecuta correctamente, el comando devuelve el ARN de la regla de notificación, similar a losiguiente:

{ "Arn": "arn:aws:codestar-notifications:us-east-1:123456789012:notificationrule/dc82df7a-EXAMPLE"}

Cambiar el nombre de una aplicación deCodeDeploy

Puede utilizar las API de CodeDeploy o la AWS CLI para cambiar el nombre de una aplicación.

Para ver una lista de nombres de aplicaciones, realice una llamada al comando list-applications mediantela AWS CLI.

Para obtener más información sobre cómo usar la AWS CLI para cambiar el nombre de una aplicación,consulte update-application.

Para obtener información sobre el uso de las API de CodeDeploy para cambiar el nombre de unaaplicación, consulte API_UpdateApplication.

Versión de API 2014-10-06282

Page 292: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEliminación de una aplicación

Eliminación de una aplicación en CodeDeployPuede utilizar la consola de CodeDeploy, la AWS CLI o una API de CodeDeploy para eliminaraplicaciones. Para obtener información sobre el uso de la acción de la API de CodeDeploy, consulteDeleteApplication.

Warning

La eliminación de una aplicación elimina la información sobre la aplicación del sistema deCodeDeploy, incluida toda la información del grupo de implementaciones relacionada y losdetalles de implementación. La eliminación de una aplicación creada para una implementaciónde EC2/On-Premises no elimina las revisiones de la aplicación relacionadas de las instanciasni elimina la revisiones de los buckets de Amazon S3. La eliminación de una aplicación creadapara una implementación de EC2/On-Premises no termina las instancias Amazon EC2 ni anula elregistro de las instancias on-premises. Esta acción no se puede deshacer.

Temas• Eliminar una aplicación (consola) (p. 283)• Eliminar una aplicación (AWS CLI) (p. 283)

Eliminar una aplicación (consola)Para utilizar la consola de CodeDeploy para eliminar una aplicación:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la lista de aplicaciones, elija el botón situado junto a la aplicación que desea eliminar y, a

continuación, seleccione Delete (Eliminar).4. Cuando se le solicite, introduzca el nombre de la aplicación para confirmar que desea eliminarla y

seleccione Delete (Eliminar).

Eliminar una aplicación (AWS CLI)Si desea utilizar la AWS CLI para eliminar una aplicación, llame al comando delete-applicationespecificando el nombre de la aplicación. Para ver una lista de nombres de aplicaciones, ejecute elcomando list-applications.

Versión de API 2014-10-06283

Page 293: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGrupos de implementaciones en las implementaciones

en la plataforma de computación Amazon ECS

Trabajar con grupos deimplementaciones en CodeDeploy

Puede especificar uno o varios grupos de implementaciones para una aplicación de CodeDeploy.Cada implementación de aplicación utiliza uno de sus grupos de implementaciones. El grupo deimplementaciones contiene los ajustes y las configuraciones utilizadas durante la implementación. Lamayoría de los ajustes del grupo de implementaciones dependen de la plataforma de computación queutiliza su aplicación. Algunas opciones de configuración, tales como restauraciones, desencadenadores yalarmas se puede configurar para grupos de implementaciones para cualquier plataforma de computación.

Grupos de implementaciones en lasimplementaciones en la plataforma de computaciónAmazon ECS

En una implementación de Amazon ECS, un grupo de implementaciones especifica el servicio de AmazonECS el balanceador de carga, el agente de escucha de prueba opcional y dos grupos de destino. Tambiénespecifica cuando debe redirigirse el tráfico al conjunto de tareas de sustitución y cuándo terminar elconjunto de tareas original y la aplicación de Amazon ECS después de una implementación correcta.

Grupos de implementaciones en lasimplementaciones en la plataforma de computaciónAWS Lambda

En una implementación de AWS Lambda, un grupo de implementaciones define un conjunto deconfiguraciones de CodeDeploy para implementaciones futuras de una función AWS Lambda. Por ejemplo,el grupo de implementaciones especifica cómo dirigir el tráfico a una nueva versión de una funciónLambda. También podría especificar alarmas y restauraciones. Una sola implementación de un grupo deimplementaciones AWS Lambda puede invalidar una o varias configuraciones del grupo.

Grupos de implementaciones en implementacionesEC2/On-Premises Plataforma de computación

En una implementación EC2/On-Premises, un grupo de implementaciones es un conjunto de instanciasindividuales dirigidas a una implementación. Un grupo de implementación contiene instancias etiquetadasindividualmente, instancias Amazon EC2 en grupos de Amazon EC2 Auto Scaling o ambas.

En una implementación local, las instancias del grupo de implementaciones se actualizan con la últimarevisión de la aplicación.

En una implementación "blue/green" (blue/green), el tráfico se redirige de un conjunto de instancias aotra desinstalando las instancias originales de un balanceador de carga y registrando un conjunto desustitución de instancias que suele tener instalada la última revisión de la aplicación.

Versión de API 2014-10-06284

Page 294: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones

Es posible asociar más de un grupo de implementaciones a una aplicación en CodeDeploy. Esto permiteimplementar una revisión de la aplicación en diferentes conjuntos de instancias en diferentes momentos.Por ejemplo, puede utilizar un grupo de implementaciones para implementar una revisión de la aplicaciónen un conjunto de instancias etiquetadas Test, en las que garantice la calidad del código. A continuación,puede realizar una verificación adicional implementando la misma revisión de la aplicación en un grupode implementaciones con instancias etiquetadas como Staging. Por último, cuando todo esté listo paralanzar la última aplicación y ponerla a disposición de los clientes, puede implementar a un grupo deimplementaciones que incluya instancias etiquetadas como Production.

También puede utilizar varios grupos de etiquetas para afinar aún más los criterios para las instanciasincluidas en un grupo de implementaciones. Para obtener información, consulte Instancias de etiquetadopara implementaciones en AWS CodeDeploy (p. 204).

Cuando utiliza la consola de CodeDeploy para crear una aplicación, también configura su primer grupo deimplementaciones al mismo tiempo. Cuando utiliza la AWS CLI para crear una aplicación, crea su primergrupo de implementaciones en un paso independiente.

Para ver una lista de los grupos de implementaciones que ya están asociados a su cuenta de AWS,consulte Visualización de los detalles de un grupo de implementaciones con CodeDeploy (p. 298).

Para obtener información acerca de etiquetas de instancias Amazon EC2, consulte Uso de etiquetasmediante la consola. Para obtener más información acerca de instancias on-premises, consulte Trabajarcon instancias on-premise (p. 226). Para obtener más información sobre Amazon EC2 Auto Scaling,consulte Integración de CodeDeploy con Amazon EC2 Auto Scaling (p. 54).

Temas

• the section called “Creación de un grupo de implementaciones” (p. 285)• the section called “Visualización de los detalles de un grupo de implementaciones” (p. 298)• the section called “Cambio de la configuración de un grupo de implementaciones” (p. 299)• the section called “Configuración de las opciones avanzadas de un grupo de

implementaciones” (p. 301)• the section called “Eliminación de un grupo de implementaciones” (p. 303)

Creación de un grupo de implementaciones conCodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI, las API de CodeDeploy o una plantilla de AWSCloudFormation para crear grupos de implementaciones. Para obtener más información sobre cómo utilizaruna plantilla de AWS CloudFormation para crear un grupo de implementaciones, consulte Referencia deplantillas de AWS CloudFormation para CodeDeploy (p. 438).

Cuando utiliza la consola de CodeDeploy para crear una aplicación, también configura su primer grupo deimplementaciones al mismo tiempo. Cuando utiliza la AWS CLI para crear una aplicación, crea su primergrupo de implementaciones en un paso independiente.

Como parte de la creación de un grupo de implementaciones, debe especificar un rol de servicio. Paraobtener más información, consulte Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).

Temas• Creación de un grupo de implementaciones para una implementación in situ (consola) (p. 286)• Creación de un grupo de implementaciones para una implementación blue/green de EC2/On-Premises

(Consola) (p. 288)

Versión de API 2014-10-06285

Page 295: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementacionespara una implementación in situ (consola)

• Creación de un grupo de implementaciones para una implementación de Amazon ECS (Consola) (p. 291)

• Configuración de un balanceador de carga en Elastic Load Balancing para implementaciones deAmazon EC2 de CodeDeploy (p. 293)

• Configuración de un balanceador de carga, grupos de destino y agentes de escucha para laimplementación de Amazon ECS de CodeDeploy (p. 293)

• Creación de un grupo de implementaciones (CLI) (p. 297)

Creación de un grupo de implementaciones para unaimplementación in situ (consola)Para utilizar la consola de CodeDeploy para crear un grupo de implementaciones para una implementaciónin situ:

Warning

No siga estos pasos si:

• No ha preparado sus instancias para utilizarlas en la primera implementación de CodeDeployde una aplicación. Para configurar sus instancias, siga las instrucciones de Trabajar coninstancias de CodeDeploy (p. 202) y, a continuación, siga los pasos de este tema.

• Desea crear un grupo de implementaciones que utilice una configuración de implementaciónpersonalizada, pero todavía no ha creado dicha configuración de implementación. Siga lasinstrucciones de Creación de una configuración de implementación (p. 265) y, a continuación,siga los pasos de este tema.

• No dispone de un rol de servicio que confíe en CodeDeploy, como mínimo, con la confianzay los permisos que se describen en Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).Para crear y configurar un rol de servicio, siga las instrucciones de Paso 3: Crear un rol deservicio para CodeDeploy (p. 39) y, a continuación, siga los pasos de este tema.

• Desea seleccionar una instancia de Classic Load Balancer, Balanceador de carga deaplicaciones o Network Load Balancer en Elastic Load Balancing para la implementación in situ,pero todavía no la ha creado.

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la página Applications, elija el nombre de la aplicación para la que desea crear un grupo de

implementaciones.4. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementación).5. En Deployment group name (Nombre de grupo de implementación), introduzca un nombre que

describa el grupo de implementaciones.Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones; las etiquetas, los nombres de grupode Amazon EC2 Auto Scaling o ambos, y la configuración de implementación), especifiqueesos valores en esta página. Aunque este nuevo grupo de implementaciones y el grupo de

Versión de API 2014-10-06286

Page 296: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementacionespara una implementación in situ (consola)

implementaciones existente tienen el mismo nombre, CodeDeploy los trata como grupos deimplementaciones independientes, porque cada uno de ellos está asociado a una aplicaciónindependiente.

6. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy a lainstancia de destino.

7. En Deployment type (Tipo de implementación), elija In-place (In situ).8. En Environment configuration (Configuración del entorno), seleccione una de las opciones siguientes:

a. Amazon EC2 Auto Scaling groups (Grupos de Amazon EC2 Auto Scaling): introduzca o elijael nombre del grupo de Amazon EC2 Auto Scaling en el que desea implementar la revisión dela aplicación. Cuando se lanzan instancias Amazon EC2 nuevas como parte de un grupo deAmazon EC2 Auto Scaling, CodeDeploy puede implementar automáticamente las revisiones enlas instancias nuevas. Puede añadir hasta 10 grupos de Amazon EC2 Auto Scaling a un grupo deimplementaciones.

b. Amazon EC2 instances (Instancias Amazon EC2) u On-premises instances (Instancias on-premises): en los campos Key (Clave) y Value (Valor), especifique los valores del par clave-valorque ha utilizado para etiquetar las instancias. Puede etiquetar hasta 10 pares de clave-valor en unúnico grupo de etiquetas.

i. Puede utilizar comodines en el campo Value (Valor) para identificar todas las instanciasetiquetadas en determinados patrones, por ejemplo, instancias Amazon EC2, centros decostos, nombres de grupo y otros elementos similares. Por ejemplo, si elige Name (Nombre)en el campo Key (Clave) y especifica GRP-*a en el campo Value (Valor), CodeDeployidentifica todas las instancias que coincidan con este patrón, como GRP-1a, GRP-2a y GRP-XYZ-a.

ii. El campo Value (Valor) distingue entre mayúsculas y minúsculas.iii. Para eliminar un par clave-valor de la lista, elija el icono de eliminación.

A medida que CodeDeploy busca instancias que coincidan con cada par clave-valor o nombrede grupo de Amazon EC2 Auto Scaling especificado, va mostrando el número de instanciascoincidentes. Para obtener más información sobre las instancias, haga clic en el número.

Si desea redefinir los criterios de las instancias en las que se han realizado implementaciones,elija Add tag group para crear un grupo de etiquetas. Puede crear un máximo de tres grupos deetiquetas con hasta 10 pares de clave-valor cada uno. Cuando utiliza varios grupos de etiquetasen un grupo de implementaciones, solo las instancias identificadas por todos los grupos deetiquetas se incluyen en el grupo de implementaciones. Esto significa una instancia debe coincidircon al menos una de las etiquetas de cada uno de los grupos que se deben incluir en el grupo deimplementaciones.

Para obtener información sobre el uso de grupos de etiquetas para redefinir el grupo deimplementaciones, consulte Instancias de etiquetado para implementaciones en AWSCodeDeploy (p. 204).

9. En Configuración del agente con AWS Systems Manager, especifique cómo desea instalar yactualizar el agente de CodeDeploy en las instancias del grupo de implementación. Para obtener másinformación sobre el agente de CodeDeploy, consulte Trabajar con el agente de CodeDeploy. Paraobtener más información sobre AWS Systems Manager, consulte ¿Qué es AWS Systems Manager?

a. Nunca: omita la configuración de la instalación de CodeDeploy con AWS Systems Manager. Lasinstancias deben tener el agente instalado para su uso en las implementaciones; por lo tanto, elijaesta opción únicamente si desea instalar el agente de CodeDeploy de otra forma.

b. Solo una vez: AWS Systems Manager instalará el agente de CodeDeploy una vez en cadainstancia del grupo de implementación.

c. Ahora y programar actualizaciones: AWS Systems Manager creará una asociación con elAdministrador de estados que instala el agente de CodeDeploy en la programación que configure.

Versión de API 2014-10-06287

Page 297: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones para una

implementación blue/green de EC2/On-Premises (Consola)

Para obtener más información acerca del Administrador de estados y las asociaciones, consulteAcerca del Administrador de estados.

10. En la lista Deployment configuration (Configuración de implementación), elija una configuración deimplementación para controlar el modo en que se implementan las instancias, por ejemplo, una a unao todas a la vez. Para obtener más información acerca de las configuraciones de implementación,consulte Uso de configuraciones de implementación en CodeDeploy (p. 260).

11. (Opcional) En Load balancer (Balanceador de carga), seleccione Enable load balancing (Habilitarbalanceo de carga) y, a continuación, elija una instancia de Classic Load Balancer, Balanceador decarga de aplicaciones o Network Load Balancer existente para administrar el tráfico a las instanciasdurante los procesos de implementación.

El registro de cada instancia se anula desde el balanceador de carga (Classic Load Balancers)o el grupo de destino (Application Load Balancers y Network Load Balancers) para evitar que eltráfico se direccione a ella durante la implementación. La instancia se vuelve a registrar cuando laimplementación se haya completado.

Para obtener más información sobre los balanceadores de carga de las implementaciones deCodeDeploy, consulte Integración de CodeDeploy con Elastic Load Balancing (p. 57).

12. (Opcional) Expanda Advanced (Avanzados) y configure las opciones que desea incluir en laimplementación, por ejemplo disparadores de notificaciones de Amazon SNS, alarmas de AmazonCloudWatch o restauraciones automáticas.

Para obtener más información, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

13. Elija Create deployment group.

Creación de un grupo de implementaciones para unaimplementación blue/green de EC2/On-Premises(Consola)Para utilizar la consola de CodeDeploy para crear un grupo de implementaciones para una implementaciónblue/green:

Warning

No siga estos pasos si:

• No tiene instancias con el agente de CodeDeploy instalado que desea sustituir durante elproceso de implementación blue/green. Para configurar sus instancias, siga las instrucciones deTrabajar con instancias de CodeDeploy (p. 202) y, a continuación, siga los pasos de este tema.

• Desea crear una aplicación que utilice una configuración de implementación personalizada,pero todavía no ha creado dicha configuración de implementación. Siga las instrucciones deCreación de una configuración de implementación (p. 265) y, a continuación, siga los pasos deeste tema.

• No dispone de un rol de servicio que confíe en CodeDeploy, como mínimo, con la confianzay los permisos que se describen en Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).Para crear y configurar un rol de servicio, siga las instrucciones de Paso 3: Crear un rol deservicio para CodeDeploy (p. 39) y, a continuación, siga los pasos de este tema.

• No ha creado una instancia de Classic Load Balancer o Balanceador de carga de aplicacionesen Elastic Load Balancing para el registro de las instancias en el entorno de sustitución. Paraobtener más información, consulte Configuración de un balanceador de carga en Elastic LoadBalancing para implementaciones de Amazon EC2 de CodeDeploy (p. 293).

Versión de API 2014-10-06288

Page 298: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones para una

implementación blue/green de EC2/On-Premises (Consola)

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la página Applications, elija el nombre de la aplicación para la que desea crear un grupo de

implementaciones.4. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementación).5. En Deployment group name (Nombre de grupo de implementación), introduzca un nombre que

describa el grupo de implementaciones.

Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones; las etiquetas, los nombres de grupo deAmazon EC2 Auto Scaling y la configuración de implementación), elija esos valores en estapágina. Aunque este nuevo grupo de implementaciones y el grupo de implementacionesexistente tienen el mismo nombre, CodeDeploy los trata como grupos de implementacionesindependientes, porque están asociados a aplicaciones independientes.

6. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy a lainstancia de destino.

7. En Deployment type (Tipo de implementación) elija Blue/green.8. En Environment configuration, elija el método que desea utilizar para proporcionar instancias para su

entorno de sustitución:

a. Automatically copy Amazon EC2 Auto Scaling group (Copiar automáticamente el grupo deAmazon EC2 Auto Scaling): CodeDeploy crea un grupo de Amazon EC2 Auto Scaling copiandouno que se haya especificado.

b. Manually provision instances: no especifica las instancias de su entorno de sustitución hasta quecrea una implementación. Debe crear las instancias antes de empezar la implementación. En sulugar, en este caso debe especificar las instancias que desea sustituir.

9. En Configuración del agente con AWS Systems Manager, especifique cómo desea instalar yactualizar el agente de CodeDeploy en las instancias del grupo de implementación. Para obtener másinformación sobre el agente de CodeDeploy, consulte Trabajar con el agente de CodeDeploy. Paraobtener más información sobre AWS Systems Manager, consulte ¿Qué es AWS Systems Manager?

a. Nunca: omita la configuración de la instalación de CodeDeploy con AWS Systems Manager. Lasinstancias deben tener el agente instalado para su uso en las implementaciones; por lo tanto, elijaesta opción únicamente si desea instalar el agente de CodeDeploy de otra forma.

b. Solo una vez: AWS Systems Manager instalará el agente de CodeDeploy una vez en cadainstancia del grupo de implementación.

c. Ahora y programar actualizaciones: AWS Systems Manager creará una asociación con elAdministrador de estados que instala el agente de CodeDeploy en la programación que configure.Para obtener más información acerca del Administrador de estados y las asociaciones, consulteAcerca del Administrador de estados.

10. En función de su elección en el paso 8, lleve a cabo alguna de las siguientes operaciones:

• Si eligió Automatically copy Amazon EC2 Auto Scaling group (Copiar automáticamente grupo deAmazon EC2 Auto Scaling): en Amazon EC2 Auto Scaling group (Grupo de Amazon EC2 AutoScaling), elija o introduzca el nombre del grupo de Amazon EC2 Auto Scaling que desee utilizarcomo plantilla para el grupo de Amazon EC2 Auto Scaling que se crea para las instancias del

Versión de API 2014-10-06289

Page 299: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones para una

implementación blue/green de EC2/On-Premises (Consola)

entorno de sustitución. El número de instancias actualmente en buen estado en el grupo de AmazonEC2 Auto Scaling que seleccione se crea en su entorno de sustitución.

• Si eligió Manually provision instances (Aprovisionar instancias manualmente): seleccione AmazonEC2 Auto Scaling groups (Grupos de Amazon EC2 Auto Scaling), Amazon EC2 Auto Scalingintances (Instancias Amazon EC2 Auto Scaling) o ambas opciones para especificar las instanciasque desea añadir a este grupo de implementación. Introduzca los valores de etiqueta de AmazonEC2 Auto Scaling o los nombres de grupo de Amazon EC2 Auto Scaling para identificar lasinstancias del entorno original (es decir, las instancias que desea reemplazar o que ejecutan larevisión de la aplicación actual).

11. (Opcional) En Load balancer (Balanceador de carga), seleccione Enable load balancing (Habilitarbalanceo de carga) y, a continuación, elija una instancia de Classic Load Balancer, Balanceador decarga de aplicaciones o Network Load Balancer existente para administrar el tráfico a las instanciasdurante los procesos de implementación.

El registro de cada instancia se anula desde el balanceador de carga (Classic Load Balancers)o el grupo de destino (Application Load Balancers y Network Load Balancers) para evitar que eltráfico se direccione a ella durante la implementación. La instancia se vuelve a registrar cuando laimplementación se haya completado.

Para obtener más información sobre los balanceadores de carga de las implementaciones deCodeDeploy, consulte Integración de CodeDeploy con Elastic Load Balancing (p. 57).

12. En Deployment settings, revise las opciones predeterminadas para redirigir el tráfico al entorno desustitución, qué configuración de implementación desea utilizar para la implementación y cómo segestionan las instancias en el entorno original después de la implementación.

Si desea cambiar la configuración, continúe con el paso siguiente. De lo contrario, vaya al paso 13.13. Para cambiar la configuración de la implementación blue/green elija cualquiera de los siguientes

ajustes.

Opción Opciones

Traffic rerouting (Nuevo enrutamiento del tráfico) • Reroute traffic immediately: tan prontocomo se aprovisionan las instancias delentorno de sustitución y se instala en ellas laúltima revisión de la aplicación, se registranautomáticamente en el balanceador de carga,lo que hace que el tráfico se redirija a ellas.Se anula el registro de las instancias en elentorno original.

• I will choose whether to reroute traffic: lasinstancias del entorno de sustitución no seregistran automáticamente en el balanceadorde carga a menos que redirija el tráficomanualmente. Si se agota el tiempo de esperaespecificado sin que se redirija el tráfico,el estado de la implementación cambia aStopped.

Configuración de implementación Elija el modo en que las instancias del entornode sustitución se registran en el balanceador decarga, por ejemplo, una a una o todas a la vez.

Note

Una vez que el tráfico se dirige alentorno de sustitución de forma

Versión de API 2014-10-06290

Page 300: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones parauna implementación de Amazon ECS (Consola)

Opción Opcionessatisfactoria, se anula el registro detodas las instancias del entorno originala la vez, independientemente de laconfiguración de implementación quehaya seleccionado.

Para obtener más información, consulte Usode configuraciones de implementación enCodeDeploy (p. 260).

Original instances (Instancias originales) • Terminate the original instances in thedeployment group: una vez que el tráfico seredirija al entorno de sustitución, las instanciascuyo registro se anuló en el balanceador decarga se terminan tras el periodo de esperaespecificado.

• Keep the original instances in the deploymentgroup running: una vez que el tráfico se redirijaal entorno de sustitución, las instancias cuyoregistro se anuló en el balanceador de cargase mantienen en ejecución.

14. (Opcional) En Advanced (Avanzados), configure las opciones que desea incluir en la implementación;por ejemplo, disparadores de notificaciones de Amazon SNS, alarmas de Amazon CloudWatch orestauraciones automáticas.

Para obtener información acerca de cómo especificar opciones avanzadas en grupos deimplementaciones, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

15. Elija Create deployment group.

Creación de un grupo de implementaciones para unaimplementación de Amazon ECS (Consola)1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. Desde la Applications table (Tabla de aplicaciones), seleccione el nombre de la aplicación asociada al

grupo de implementaciones que desea editar.4. En la página de aplicación, en Deployment groups (Grupos de implementaciones), seleccione el

nombre del grupo de implementaciones que desea editar.5. En la página de la aplicación, en la pestaña Deployment groups (Grupos de implementaciones), elija

Create deployment group (Crear grupo de implementaciones). Para obtener más información acercade lo que necesita para crear un grupo de implementaciones para una implementación de AmazonECS, consulte Antes de empezar una implementación de Amazon ECS (p. 20).

6. En Deployment group name (Nombre de grupo de implementaciones), introduzca un nombre quedescriba el grupo de implementaciones.

Versión de API 2014-10-06291

Page 301: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones parauna implementación de Amazon ECS (Consola)

Note

Si desea utilizar la misma configuración empleada en otro grupo de implementaciones(incluido el nombre del grupo de implementaciones y la configuración de implementación),elija esos valores en esta página. Aunque este nuevo grupo de implementaciones y el grupode implementaciones existente podrían tener el mismo nombre, CodeDeploy los trata comogrupos de implementaciones independientes, porque cada uno de ellos está asociado a unaaplicación independiente.

7. En Service role (Rol de servicio), elija un rol de servicio que conceda acceso a CodeDeploy aAmazon ECS. Para obtener más información, consulte Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39).

8. En Load balancer name (Nombre del balanceador de carga), seleccione el nombre del balanceador decarga que sirve el tráfico a su servicio Amazon ECS.

9. En Production listener port (Puerto del agente de escucha de producción), elija el puerto y el protocolodel agente de escucha que sirve el tráfico de producción a su servicio Amazon ECS.

10. (Opcional) En Test listener port (Puerto del agente de escucha de prueba), elija el puerto y el protocolode un agente de escucha de prueba que sirva el tráfico al conjunto de tareas de sustitución desu servicio Amazon ECS durante la implementación. Puede especificar una o varias funcionesLambda en el AppSpec file que se ejecuten durante el enlace AfterAllowTestTraffic. Lasfunciones pueden ejecutar pruebas de validación. Si no se supera una prueba de validación,se activa la restauración de la implementación. Si se superan las pruebas de validación, sedesencadena el siguiente enlace del ciclo de vida de la implementación, BeforeAllowTraffic.Si no se especifica un puerto del agente de escucha de prueba, no ocurre nada durante el enlaceAfterAllowTestTraffic. Para obtener más información, consulte Sección "hooks" de AppSpecpara una implementación de Amazon ECS (p. 416).

11. En Target group 1 name (Nombre de grupo de destino 1) y Target group 2 name (Nombre de grupode destino 2), elija los grupos de destino utilizados para dirigir el tráfico durante su implementación.CodeDeploy enlaza un grupo de destino al conjunto de tareas original del servicio Amazon ECS y elotro a su conjunto de tareas de sustitución. Para obtener más información, consulte Grupos de destinode los balanceadores de carga de red.

12. Elija Reroute traffic immediately (Redirigir el tráfico inmediatamente) o Specify when to reroute traffic(Especificar cuándo redirigir el tráfico) para determinar cuándo se debe redirigir el tráfico al servicioAmazon ECS actualizado.

Si ha elegido Reroute traffic immediately (Redirigir el tráfico inmediatamente), la implementaciónredirige el tráfico inmediatamente después de aprovisionar el conjunto de tareas de sustitución.

Si elige Specify when to retorute traffic (Especificar cuándo redirigir el tráfico), elija el número de días,horas y minutos que se debe esperar una vez que el conjunto de tareas de sustitución se aprovisionecorrectamente. Durante este tiempo de espera, se ejecutan las pruebas de validación de las funcionesLambda especificadas en el archivo AppSpec file. Si el tiempo de espera finaliza antes de que seredirija el tráfico, el estado de la implementación cambia a Stopped.

13. En Original revision termination (Terminación de revisión original), elija el número de días, horas yminutos que se debe esperar tras una implementación correcta antes de terminar el conjunto de tareasoriginal del servicio Amazon ECS.

14. (Opcional) En Advanced (Avanzados), configure las opciones que desea incluir en la implementación;por ejemplo, disparadores de notificaciones de Amazon SNS, alarmas de Amazon CloudWatch orestauraciones automáticas.

Para obtener más información, consulte Configuración de las opciones avanzadas de un grupo deimplementaciones (p. 301).

Versión de API 2014-10-06292

Page 302: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de un balanceador decarga en Elastic Load Balancing para

implementaciones de Amazon EC2 de CodeDeploy

Configuración de un balanceador de carga en ElasticLoad Balancing para implementaciones de AmazonEC2 de CodeDeployAntes de ejecutar cualquier implementación blue/green o una implementación in situ para la que se deseaespecificar un balanceador de carga opcional en el grupo de implementaciones, es necesario crear unClassic Load Balancer, Balanceador de carga de aplicaciones o Network Load Balancer en Elastic LoadBalancing. Para las implementaciones blue/green, debe utilizar dicho balanceador de carga para registrarlas instancias que componen su entorno de sustitución. Opcionalmente, las instancias de su entornooriginal pueden registrarse en este mismo balanceador de carga.

Para configurar un Classic Load Balancer, siga las instrucciones que se describen Tutorial: Creación de unClassic Load Balancer en la Guía del usuario de Classic Load Balancers. Tenga en cuenta lo siguiente:

• En el Paso 2: Definir el balanceador de carga, en Crear LB dentro, elija la misma VPC que seleccionó alcrear las instancias.

• En el Paso 5: Registrar instancias EC2 en su balanceador de carga, seleccione las instancias quese encuentren actualmente en su grupo de implementaciones (implementaciones in situ) o que hadesignado que estén en su entorno original (implementaciones blue/green).

• En el Paso 7: Crear y probar su balanceador de carga, anote la dirección DNS del balanceador de carga.

Por ejemplo, si denominó su balanceador de carga my-load-balancer, su dirección DNS apareceráen un formato como my-load-balancer-1234567890.us-east-2.elb.amazonaws.com.

Para configurar un elemento Balanceador de carga de aplicaciones, siga las instrucciones en uno de lossiguientes temas:

• Creación de un Balanceador de carga de aplicaciones• Tutorial: Crear un Balanceador de carga de aplicaciones con la AWS CLI

Para configurar un Network Load Balancer, siga las instrucciones en uno de los siguientes temas:

• Creación de un Network Load Balancer• Tutorial: Crear un Network Load Balancer con la AWS CLI

Para configurar un Classic Load Balancer, siga las instrucciones del Tutorial: Creación de un Classic LoadBalancer.

Configuración de un balanceador de carga, grupos dedestino y agentes de escucha para la implementaciónde Amazon ECS de CodeDeployAntes de ejecutar una implementación con Amazon ECS plataforma de computación, debe crear unBalanceador de carga de aplicaciones o un Network Load Balancer, dos grupos de destino y uno o dosagentes de escucha. En este tema se muestra cómo crear un Balanceador de carga de aplicaciones. Paraobtener más información, consulte Antes de empezar una implementación de Amazon ECS (p. 20).

Uno de los grupos de destino dirige el tráfico al conjunto de tareas original de la aplicación de AmazonECS. El otro grupo de destino dirige el tráfico a su conjunto de tareas de sustitución. Durante la

Versión de API 2014-10-06293

Page 303: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de un balanceador de carga,

grupos de destino y agentes de escucha para laimplementación de Amazon ECS de CodeDeploy

implementación, CodeDeploy crea un conjunto de tareas de sustitución y redirige el tráfico desde elconjunto de tareas original al nuevo. CodeDeploy determina qué grupo de destino se utiliza para cadaconjunto de tareas.

El balanceador de carga utiliza un agente de escucha para dirigir el tráfico hacia los grupos de destino.Es obligatorio un agente de escucha de producción. Puede especificar un agente de escucha de pruebaopcional que dirija el tráfico hacia conjunto de tareas de sustitución mientras ejecuta las pruebas devalidación.

El balanceador de carga debe utilizar una VPC con dos subredes públicas en diferentes zonas dedisponibilidad. Los siguientes pasos muestran cómo confirmar la VPC predeterminada, crear unBalanceador de carga de aplicaciones de Amazon EC2 y, a continuación, crear dos grupos de destino parael balanceador de carga. Para obtener más información, consulte Grupos de destino de los Network LoadBalancers.

Verificación de la VPC predeterminada, las subredes públicas yel grupo de seguridadEn este tema se muestra cómo crear un Balanceador de carga de aplicaciones de Amazon EC2, dosgrupos de destino y dos puertos que se pueden utilizar durante una implementación de Amazon ECS. Unode los puertos es opcional y solo es necesario si dirige el tráfico a un puerto de prueba para las pruebas devalidación durante la implementación.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.

2. Compruebe la VPC predeterminada que se va a utilizar. En el panel de navegación, elija Your VPCs.Fíjese en qué VPC muestra Yes (Sí) en la columna Default VPC (VPC predeterminada). Esta será suVPC predeterminada. Contiene las subredes predeterminadas que utiliza.

3. Elija Subnets (Subredes). Anote los ID de subred de dos subredes que muestran Yes (Sí) en lacolumna Default subnet (Subred predeterminada). Puede utilizar estos ID al crear el balanceador decarga.

4. Elija cada subred y, a continuación, elija la pestaña Description (Descripción). Compruebe que lassubredes que desea utilizar se encuentran en diferentes zonas de disponibilidad.

5. Elija las subredes y, a continuación, elija la pestaña Route Table (Tabla de ruteo). Para verificar quecada subred que desea utilizar es una subred pública, confirme que la tabla de enrutamiento incluyeuna fila con un enlace a una gateway de Internet.

6. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

7. En el panel de navegación, elija Security Groups.8. Compruebe que el grupo de seguridad que desee utilizar esté disponible y anote su ID de grupo (por

ejemplo, sg-abcd1234). Puede utilizarlo al crear el balanceador de carga.

Creación de un Balanceador de carga de aplicaciones deAmazon EC2, dos grupos de destino y agentes de escucha(consola)Para usar la consola de Amazon EC2 para crear un Balanceador de carga de aplicaciones de AmazonEC2, realice el siguiente procedimiento:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

Versión de API 2014-10-06294

Page 304: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de un balanceador de carga,

grupos de destino y agentes de escucha para laimplementación de Amazon ECS de CodeDeploy

2. En el panel de navegación, seleccione Load Balancers.3. Elija Create Load Balancer.4. Elija Application Load Balancer (Balanceador de carga de aplicación) y a continuación, Create (Crear).5. En Name (Nombre), especifique el nombre del balanceador de carga.6. En Scheme (Esquema), elija Internet-facing (Expuesto a Internet).7. En IP address type (Tipo de dirección IP), elija ipv4.8. Configure un segundo puerto de agente de escucha para el balanceador de carga (opcional). Puede

ejecutar pruebas de validación de implementación con el tráfico de prueba que se ofrece a estepuerto.

a. En Load Balancer Protocol (Protocolo de balanceador de carga), elija Add listener (Añadir agentede escucha).

b. En Load Balancer Protocol (Cargar protocolo de balanceador) del segundo agente de escucha,elija HTTP.

c. En Load Balancer Port (Puerto del balanceador de carga), escriba 8080.9. En Availability Zones (Zonas de disponibilidad), en VPC, elija la VPC predeterminada y, a

continuación, seleccione las dos subredes predeterminadas que desea utilizar.10. Elija Next: Configure Security Settings (Siguiente: Definir la configuración de seguridad).11. Elija Next: Configure Security Groups (Siguiente: configurar grupos de seguridad).12. Elija Select an existing security group (Seleccionar un grupo de seguridad existente), después el grupo

de seguridad predeterminado y, a continuación, anote su ID.13. Elija Next: Configure Routing (Siguiente: Configuración del enrutamiento).14. En Target group (Grupo de destino), elija New target group (Nuevo grupo de destino) y configure su

primer grupo de destino:

a. En Name (Nombre), introduzca un nombre de grupo de destino (por ejemplo, target-group-1).b. En Target type (Tipo de destino), elija IP.c. En Protocol (Protocolo), elija HTTP. En Port (Puerto), introduzca 80.d. Elija Next: Register Targets.

15. Elija Next: Review (Siguiente: análisis) y, a continuación, seleccione Create (Crear).

Para crear un segundo grupo de destino para el balanceador de carga

1. Después de aprovisionar el balanceador de carga, abra la consola de Amazon EC2. En el panel denavegación, elija Target Groups.

2. Elija Create target group.3. En Name (Nombre), introduzca un nombre de grupo de destino (por ejemplo, target-group-2).4. En Target type (Tipo de destino), elija IP.5. En Protocol (Protocolo), elija HTTP. En Port (Puerto), introduzca 80.6. En VPC, elija la VPC predeterminada.7. Seleccione Create.

Note

Para que la implementación de Amazon ECS se ejecute, debe tener dos grupos de destinocreados para el balanceador de carga. Puede utilizar el ARN de uno de los grupos dedestino al crear su servicio de Amazon ECS. Para obtener más información, consulte Paso 4:Creación de un servicio Amazon ECS en la Guía de usuario de Amazon ECS.

Versión de API 2014-10-06295

Page 305: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de un balanceador de carga,

grupos de destino y agentes de escucha para laimplementación de Amazon ECS de CodeDeploy

Creación de un Balanceador de carga de aplicaciones deAmazon EC2, dos grupos de destino y agentes de escucha (CLI)Para crear un Balanceador de carga de aplicaciones mediante la AWS CLI, realice el siguienteprocedimiento:

1. Utilice el comando create-load-balancer para crear un Balanceador de carga de aplicaciones.Especifique dos subredes que no estén en la misma zona de disponibilidad y un grupo de seguridad.

aws elbv2 create-load-balancer --name bluegreen-alb \--subnets subnet-abcd1234 subnet-abcd5678 --security-groups sg-abcd1234 --region us-east-1

El resultado contiene el nombre de recurso de Amazon (ARN) del balanceador de carga con elsiguiente formato:

arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642

2. Utilice el comando create-target-group para crear su primer grupo de destino. CodeDeploy dirige eltráfico de este grupo de destino al conjunto de tareas original o de sustitución del servicio.

aws elbv2 create-target-group --name bluegreentarget1 --protocol HTTP --port 80 \--target-type ip --vpc-id vpc-abcd1234 --region us-east-1

El resultado contiene el ARN del primer grupo de destino con el siguiente formato:

arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4

3. Utilice el comando create-target-group para crear su segundo grupo de destino. CodeDeploy dirigeel tráfico del grupo de destino al conjunto de tareas no ofrecido por su primer grupo de destino. Porejemplo, si su primer grupo de destino dirige el tráfico al conjunto de tareas original, este grupo dedestino dirige el tráfico al conjunto de tareas de sustitución.

aws elbv2 create-target-group --name bluegreentarget2 --protocol HTTP --port 80 \--target-type ip --vpc-id vpc-abcd1234 --region us-east-1

El resultado contiene el ARN del segundo grupo de destino con el siguiente formato:

arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4

4. Utilice el comando create-listener para crear un agente de escucha con una regla predeterminada quereenvíe el tráfico de producción al puerto 80.

aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \--protocol HTTP --port 80 \--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 --region us-east-1

El resultado incluye el ARN del agente de escucha con el siguiente formato:Versión de API 2014-10-06

296

Page 306: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un grupo de implementaciones (CLI)

arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4

5. Utilice el comando create-listener para crear un segundo agente de escucha con una reglapredeterminada que reenvíe el tráfico de prueba al puerto 8080 (opcional). Puede ejecutar pruebas devalidación de implementación con el tráfico de prueba que se ofrece a este puerto.

aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \--protocol HTTP --port 8080 \--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4 --region us-east-1

El resultado incluye el ARN del agente de escucha con el siguiente formato:

arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4

Creación de un grupo de implementaciones (CLI)Para crear un grupo de implementaciones mediante la AWS CLI, realice una llamada al comando create-deployment-group especificando:

• El nombre de la aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-applications.

• Un nombre para el grupo de implementaciones. Se creará un grupo de implementaciones con estenombre para la aplicación especificada. Un grupo de implementación solo se puede asociar a unaaplicación.

• Información sobre las etiquetas, grupos de etiquetas o nombres de grupo de Amazon EC2 Auto Scalingque identifican las instancias que se deben incluir en el grupo de implementaciones.

• El identificador del nombre de recurso de Amazon (ARN) del rol de servicio que permite a CodeDeployactuar en nombre de su cuenta de AWS cuando interactúa con otros servicios de AWS. Para obtener elARN del rol de servicio, consulte Obtención del ARN del rol de servicio (CLI) (p. 44). Para obtener másinformación sobre los roles de servicio, consulte Términos y conceptos de roles en la Guía del usuario deIAM.

• Información sobre el tipo de implementación, ya sea una implementación in situ o blue/green, que sedesea asociar al grupo de implementaciones.

• (Opcional) El nombre de una configuración de implementación existente. Para ver una lista deconfiguraciones de implementación, consulte Consulta de los detalles de las configuraciones deimplementación (p. 266). Si no se especifica, CodeDeploy utiliza una configuración de implementaciónpredeterminada.

• (Opcional) Comandos para crear un disparador que inserta notificaciones sobre eventos deimplementaciones e instancias a los que están suscritos a un tema de Amazon Simple NotificationService. Para obtener más información, consulte Monitorización de implementaciones con notificacionesde eventos de Amazon SNS (p. 363).

• (Opcional) Comandos para añadir alarmas de CloudWatch existentes al grupo de implementaciones quese activan si una métrica especificada en una alarma no alcanza o supera el umbral definido.

• (Opcional) Comandos de una implementación para restaurar la última revisión correcta conocida cuandofalla una implementación o se activa una alarma de CloudWatch.

• Para las implementaciones in situ:

Versión de API 2014-10-06297

Page 307: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los detalles deun grupo de implementaciones

• (Opcional) El nombre de la instancia de Classic Load Balancer o Balanceador de carga deaplicaciones en Elastic Load Balancing que administra el tráfico a las instancias durante los procesosde implementación.

• Para las implementaciones blue/green:• Configuración del proceso de implementación blue/green:

• Cómo se aprovisionan las nuevas instancias en el entorno de sustitución.• Si se redirige el tráfico hacia el entorno de sustitución de inmediato o se espera un período de

tiempo especificado para redirigir el tráfico manualmente.• Si se deben terminar las instancias del entorno original.

• El nombre de la instancia de Classic Load Balancer o Balanceador de carga de aplicaciones en ElasticLoad Balancing que se debe utilizar para las instancias registradas en el entorno de sustitución.

Visualización de los detalles de un grupo deimplementaciones con CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para ver informacióndetallada sobre todos los grupos de implementaciones asociados a una aplicación.

Temas• Ver los detalles del grupo de implementaciones (consola) (p. 298)• Ver los detalles del grupo de implementaciones (CLI) (p. 299)

Ver los detalles del grupo de implementaciones(consola)Para utilizar la consola de CodeDeploy para ver los detalles del grupo de implementaciones:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la página Applications, elija el nombre de aplicación asociado con el grupo de implementaciones.

Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta. Enla barra de navegación, en el selector de regiones, elija una de las regiones enumeradas enRegion and endpoints (Regiones y puntos de enlace) en AWS General Reference. CodeDeploysolo es compatible con estas regiones.

4. Para ver los detalles de un solo grupo de implementaciones, en la pestaña Deployment groups (Grupode implementaciones), elija el nombre del grupo de implementaciones.

Versión de API 2014-10-06298

Page 308: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVer los detalles del grupo de implementaciones (CLI)

Ver los detalles del grupo de implementaciones (CLI)Para utilizar la AWS CLI para ver los detalles del grupo de implementaciones, ejecute el comando get-deployment-group o al comando list-deployment-groups.

Para ver los detalles sobre un único grupo de implementaciones, ejecute el comando get-deployment-group, especificando:

• El nombre de la aplicación asociada con el grupo de implementaciones. Para obtener el nombre de laaplicación, ejecute el comando list-applications.

• El nombre del grupo de implementaciones. Para obtener el nombre del grupo de implementaciones,ejecute el comando list-deployment-groups.

Para ver una lista de los nombres de grupos de implementaciones, ejecute el comando list-deployment-groups, especificando el nombre de aplicación asociado a los grupos de implementaciones. Para obtenerel nombre de la aplicación, ejecute el comando list-applications.

Cambio de la configuración de un grupo deimplementaciones con CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para cambiar laconfiguración de un grupo de implementaciones.

Warning

No utilice estos pasos si desea que el grupo de implementaciones utilice un grupo deimplementaciones personalizado que todavía no se ha creado. En lugar de ello, siga lasinstrucciones en Creación de una configuración de implementación (p. 265) y, a continuación,vuelva a este tema. No utilice estos pasos si desea que el grupo de implementaciones utilice unrol de servicio diferente, que todavía no se ha creado. El rol de servicio de confiar en CodeDeploy,como mínimo, con los permisos que se describen en Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39). Para crear y configurar un rol de servicio con los permisos correctos, sigalas instrucciones de Paso 3: Crear un rol de servicio para CodeDeploy (p. 39) y, a continuación,vuelva a este tema.

Temas• Cambie la configuración del grupo de implementaciones (consola) (p. 299)• Cambie la configuración del grupo de implementaciones (CLI) (p. 300)

Cambie la configuración del grupo deimplementaciones (consola)Para utilizar la consola de CodeDeploy para cambiar la configuración del grupo de implementaciones:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

Versión de API 2014-10-06299

Page 309: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCambie la configuración del

grupo de implementaciones (CLI)

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la lista de aplicaciones, elija el nombre de la aplicación que está asociada al grupo de

implementaciones que desea cambiar.

Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta. Enla barra de navegación, en el selector de regiones, elija una de las regiones enumeradas enRegion and endpoints (Regiones y puntos de enlace) en AWS General Reference. CodeDeploysolo es compatible con estas regiones.

4. Elija la pestaña Deployment groups (Grupos de implementaciones) y, a continuación, elija el nombre delgrupo de implementaciones que desea modificar.

5. En la página Depoyment group (Grupo de implementaciones), elija Edit (Editar).6. Edite las opciones del grupo de implementaciones según sea necesario.

Para obtener más información sobre los componentes del grupo de implementaciones, consulteCreación de un grupo de implementaciones con CodeDeploy (p. 285).

7. Elija Save changes.

Cambie la configuración del grupo deimplementaciones (CLI)Para cambiar la configuración de un grupo de implementaciones mediante la AWS CLI, llame al comandoupdate-deployment-group especificando:

• Para implementaciones de EC2/On-Premises y de AWS Lambda:• El nombre de la aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-

applications.• El nombre actual del grupo de implementaciones. Para ver una lista de los nombres de los grupos de

implementaciones, llame al comando list-deployment-groups.• (Opcional) Un nombre diferente para el grupo de implementaciones.• (Opcional) Un nombre de recurso de Amazon (ARN) que corresponde a un rol de servicio que permite

a CodeDeploy actuar en nombre de su cuenta de AWS cuando interactúe con otros servicios de AWS.Para obtener el ARN del rol de servicio, consulte Obtención del ARN del rol de servicio (CLI) (p. 44).Para obtener más información sobre los roles de servicio, consulte Términos y conceptos de roles enla Guía del usuario de IAM.

• (Opcional) El nombre de la configuración de implementación. Para ver una lista de configuraciones deimplementación, consulte Consulta de los detalles de las configuraciones de implementación (p. 266).(Si no se especifica, CodeDeploy utiliza una configuración de implementación predeterminada).

• (Opcional) Comandos para añadir una o varias alarmas de CloudWatch existentes al grupo deimplementaciones que se activan si un métrica especificada en una alarma no alcanza o supera elumbral definido.

• (Opcional) Comandos de una implementación para restaurar la última revisión correcta conocidacuando falla una implementación o se activa una alarma de CloudWatch.

• (Opcional) Comandos para crear o actualizar un disparador que publica en un tema en AmazonSimple Notification Service, para que los suscriptores de ese tema reciban notificaciones sobreeventos de implementaciones e instancias en este grupo de implementaciones. Para obtenerinformación, consulte Monitorización de implementaciones con notificaciones de eventos de AmazonSNS (p. 363).

• Solo para implementaciones de EC2/On-Premises:• (Opcional) Etiquetas o grupos de etiquetas de sustitución que identifican de forma exclusiva las

instancias que se deben incluir en el grupo de implementaciones.

Versión de API 2014-10-06300

Page 310: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de las opciones avanzadas

de un grupo de implementaciones

• (Opcional) Los nombres de los grupos de sustitución de Amazon EC2 Auto Scaling que se van aañadir al grupo de implementaciones.

• Solo para implementaciones de Amazon ECS:• El servicio Amazon ECS que implementar.• Información de balanceador de carga, incluido el Balanceador de carga de aplicaciones o Network

Load Balancer, los grupos de destino requeridos para una implementación de Amazon ECS einformación del agente de escucha de prueba opcional.

Configuración de las opciones avanzadas de ungrupo de implementaciones

Al crear o actualizar un grupo de implementaciones, puede configurar una serie de opciones paraproporcionar mayor control y supervisión de las implementaciones de dicho grupo de implementaciones.

Utilice la información de esta página para ayudarle a configurar las opciones avanzadas cuando trabajecon grupos de implementaciones en los siguientes temas:

• Creación de una aplicación con CodeDeploy (p. 270)• Creación de un grupo de implementaciones con CodeDeploy (p. 285)• Cambio de la configuración de un grupo de implementaciones con CodeDeploy (p. 299)

Desencadenadores de notificaciones de Amazon SNS: puede añadir desencadenadores a un grupode implementaciones de CodeDeploy para recibir notificaciones sobre eventos relacionados con lasimplementaciones de dicho grupo de implementaciones. Estas notificaciones se envían a los destinatariosque están suscritos a un tema de Amazon SNS que forma parte de la acción del desencadenador.

Ya debe haber configurado el tema de Amazon SNS al que señalará este disparador y CodeDeploy debetener permiso para publicar en el tema desde este grupo de implementaciones. Si aún no ha completadoestos pasos de configuración, puede añadir disparadores al grupo de implementaciones más adelante.

Si desea crear un disparador ahora para recibir notificaciones sobre los eventos de implementación delgrupo de implementaciones de esta aplicación, elija Create trigger.

Si la implementación es para una instancia Amazon EC2, puede crear y recibir notificaciones sobre lasinstancias.

Para obtener más información, consulte Monitorización de implementaciones con notificaciones de eventosde Amazon SNS (p. 363).

Alarmas de Amazon CloudWatch: puede crear una alarma de CloudWatch que vigile una sola métricadurante el periodo especificado y realice una o varias acciones en función del valor de la métrica conrespecto a un determinado umbral durante varios periodos de tiempo. En una implementación de AmazonEC2, puede crear una alarma para la instancia o el grupo de Amazon EC2 Auto Scaling que esté utilizandoen las operaciones de CodeDeploy. En un AWS Lambda y una implementación de Amazon ECS, puedecrear una alarma para los errores de una función Lambda.

Puede configurar que una implementación se detenga cuando una alarma de Amazon CloudWatch detecteque una métrica no alcanza o supera un umbral definido.

Ya debe haber creado la alarma en CloudWatch para poder añadirla a un grupo de implementaciones.

1. Para añadir la monitorización de alarmas al grupo de implementaciones, en Alarms (Alarmas), elija Addalarm (Añadir alarma).

Versión de API 2014-10-06301

Page 311: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguración de las opciones avanzadas

de un grupo de implementaciones

2. Introduzca el nombre de una alarma de CloudWatch que ya haya configurado para monitorizar estaimplementación.

Debe escribir la alarma de CloudWatch exactamente como se creó en CloudWatch. Para ver una listade las alarmas, abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/ y, acontinuación, elija ALARM (ALARMA).

Opciones adicionales:

• Si quiere que las implementaciones procedan sin tener en cuenta las alarmas de cuenta que hayaañadido, elija Ignore alarm configuration.

Esta opción resulta útil si desea desactivar temporalmente la monitorización de alarmas de un grupo deimplementaciones sin tener que añadir las mismas alarmas de nuevo más tarde.

• (Opcional) Si desea que las implementaciones continúen en caso de que CodeDeploy no puedarecuperar el estado de la alarma de Amazon CloudWatch, elija Continue deployments even if alarmstatus is unavailable (Continuar las implementaciones aunque el estado de la alarma no esté disponible).

Note

Esta opción corresponde a ignorePollAlarmFailure en el objeto AlarmConfiguration de la API deCodeDeploy.

Para obtener más información, consulte Monitorizar implementaciones con alarmas de CloudWatch enCodeDeploy (p. 357).

Restauraciones automáticas: puede configurar una implementación o un grupo de implementaciones paraque se restauren automáticamente si falla una implementación o si se supera un umbral de monitorizaciónque haya especificado. En este caso, se implementa la última versión correcta conocida de una revisiónde la aplicación. Puede configurar ajustes opcionales para un grupo de implementaciones cuando utilice laconsola para crear una aplicación y crear o actualizar un grupo de implementaciones. Al crear una nuevaimplementación, también puede optar por anular la configuración de restauración automática especificadapara el grupo de implementaciones.

• Puede habilitar la restauración de las implementaciones a la versión correcta conocida más reciente siocurre algún problema eligiendo una o ambas de las opciones siguientes:

• Roll back when a deployment fails (Restaurar si una implementación da error): CodeDeploy volveráa implementar la última revisión correcta conocida como una implementación nueva.

• Roll back when alarm thresholds are met (Restaurar cuando se alcancen los umbrales de alarma).Si añadió una alarma a esta aplicación en el paso anterior, CodeDeploy redistribuirá la últimarevisión correcta conocida cuando se active una o varias de las alarmas especificadas.

Note

Para no tener en cuenta temporalmente una configuración de restauración, elija Disablerollbacks. Esta opción resulta útil si desea deshabilitar temporalmente las restauracionesautomáticas sin tener que configurar la misma configuración de nuevo más tarde.

Para obtener más información, consulte Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Versión de API 2014-10-06302

Page 312: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEliminación de un grupo de implementaciones

Eliminación de un grupo de implementacionesmediante CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy, para eliminar grupos deimplementaciones asociados a su cuenta de AWS.

Warning

Si elimina un grupo de implementaciones, todos los detalles asociados a ese grupo tambiénse eliminarán de CodeDeploy. Las instancias utilizadas en el grupo de implementaciones nocambiarán. Esta acción no se puede deshacer.

Temas• Eliminar un grupo de implementaciones (consola) (p. 303)• Eliminar un grupo de implementaciones (CLI) (p. 303)

Eliminar un grupo de implementaciones (consola)Para utilizar la consola de CodeDeploy para eliminar un grupo de implementaciones:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la lista de aplicaciones, seleccione el nombre de la aplicación asociada al grupo de

implementaciones.4. En la página Application details (Detalles de la aplicación), en la pestaña Deployment groups (Grupos de

implementaciones), elija el nombre del grupo de implementaciones que desea eliminar.5. En la página Deployment details (Detalles de la implementación), elija Delete (Eliminar).6. Cuando se le solicite, escriba el nombre del grupo de implementaciones que desea eliminar y, a

continuación, seleccione Delete.

Eliminar un grupo de implementaciones (CLI)Para eliminar un grupo de implementaciones mediante la AWS CLI, realice una llamada al comandodelete-deployment-group especificando:

• El nombre de la aplicación asociada al grupo de implementaciones. Para ver una lista de nombres deaplicaciones, ejecute el comando list-applications.

• El nombre del grupo de implementaciones asociado a la aplicación. Para ver una lista de los nombres delos grupos de implementaciones, llame al comando list-deployment-groups.

Versión de API 2014-10-06303

Page 313: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPlanear una revisión

Gestión de revisiones de aplicacionesen CodeDeploy

En CodeDeploy, una revisión contiene una versión de los archivos de origen que CodeDeployimplementará en las instancias o de los scripts que CodeDeploy ejecutará en las instancias.

Debe planificar la revisión, añadir un AppSpec file a la revisión y, a continuación, enviarla a Amazon S3 oGitHub. Una vez enviada la revisión, puede implementarla.

Temas• Planear una revisión para CodeDeploy (p. 304)• Adición de un archivo de especificación de aplicación a una revisión para CodeDeploy (p. 305)• Elección de un tipo de repositorio de CodeDeploy (p. 311)• Envío de una revisión para CodeDeploy a Amazon S3 (solo implementaciones de EC2/On-

Premises) (p. 313)• Visualización de los detalles de una revisión de aplicación con CodeDeploy (p. 316)• Registro de una revisión de una aplicación en Amazon S3 con CodeDeploy (p. 317)

Planear una revisión para CodeDeployCon unos buenos planes es mucho más fácil implementar las revisiones.

Para las implementaciones en una AWS Lambda o una plataforma de computación de Amazon ECS,una revisión es lo mismo que el AppSpec file. La siguiente información no es aplicable. Para obtenermás información, consulte Adición de un archivo de especificación de aplicación a una revisión paraCodeDeploy (p. 305)

Para las implementaciones en una EC2/On-Premises plataforma de computación, comience por crear undirectorio raíz vacío en la máquina de desarrollo. Ahí es donde almacenará los archivos de código fuente(como los archivos de texto y binarios, los ejecutables, los paquetes, etc.) que se van a implementan en lasinstancias o los scripts que se van a ejecutar en las instancias.

Por ejemplo, en la carpeta raíz /tmp/ de Linux, macOS, or Unix o en la carpeta raíz c:\temp deWindows:

/tmp/ or c:\temp (root folder) |--content (subfolder) | |--myTextFile.txt | |--mySourceFile.rb | |--myExecutableFile.exe | |--myInstallerFile.msi | |--myPackage.rpm | |--myImageFile.png |--scripts (subfolder) | |--myShellScript.sh | |--myBatchScript.bat | |--myPowerShellScript.ps1

Versión de API 2014-10-06304

Page 314: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdición de un AppSpec File

|--appspec.yml

La carpeta raíz también debe incluir un application specification file (AppSpec file), tal y como se muestraaquí. Para obtener más información, consulte Adición de un archivo de especificación de aplicación a unarevisión para CodeDeploy (p. 305).

Adición de un archivo de especificación deaplicación a una revisión para CodeDeploy

En este tema se muestra cómo añadir un AppSpec file a una implementación. También incluye plantillasque permiten crear un AppSpec file para una implementación de AWS Lambda y EC2/On-Premises.

Temas• Adición de un archivo AppSpec para una implementación de Amazon ECS (p. 305)• Adición de un archivo AppSpec para una implementación de AWS Lambda (p. 307)• Adición de un archivo AppSpec para una implementación de EC2/On-Premises (p. 309)

Adición de un archivo AppSpec para unaimplementación de Amazon ECSPara una implementación en una Amazon ECS plataforma de computación:

• El AppSpec file especifica la definición de tareas Amazon ECS utilizada para la implementación,un nombre de contenedor y el mapeo de puertos utilizado para dirigir el tráfico y funciones Lambdaopcionales ejecutadas después de los eventos de ciclo de vida de implementación.

• Una revisión es lo mismo que un AppSpec file.• Se puede escribir un AppSpec file utilizando JSON o YAML.• Un AppSpec file se puede guardar como un archivo de texto o introducir directamente al crear una

implementación. Para obtener más información, consulte Creación de una implementación AmazonECS Plataforma de computación (consola) (p. 324).

Para crear un AppSpec file

1. Copie la plantilla JSON o YAML en un editor de texto o en el editor de AppSpec en la consola.2. Modifique la plantilla como sea necesario.3. Utilice un validador de JSON o YAML para validar el AppSpec file. Si utiliza el editor de AppSpec, el

archivo se valida al elegir Create deployment (Crear implementación).4. Si utiliza un editor de texto, guarde el archivo. Si utiliza la AWS CLI para crear la implementación,

utilice una referencia al AppSpec file si está en el disco duro o en un bucket de Amazon S3. Si utilizala consola, debe enviar el AppSpec file a Amazon S3.

Plantilla YAML del archivo AppSpec para una implementación deAmazon ECS con instruccionesA continuación se muestra una plantilla YAML de un AppSpec file para una implementación de AmazonECS con todas las opciones disponibles. Para obtener más información acerca de los eventos del ciclo

Versión de API 2014-10-06305

Page 315: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdición de un archivo AppSpec para

una implementación de Amazon ECS

de vida que se deben utilizar en la sección hooks, consulte Sección "hooks" de AppSpec para unaimplementación de Amazon ECS (p. 416).

✔ This is an appspec.yml template file for use with an Amazon ECS deployment in CodeDeploy.✔ The lines in this template that start with the hashtag are ✔ comments that can be safely left in the file or ✔ ignored.✔ For help completing this file, see the "AppSpec File Reference" in the ✔ "CodeDeploy User Guide" at✔ https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.htmlversion: 0.0✔ In the Resources section, you must specify the following: the Amazon ECS service, task definition name, ✔ and the name and port of the your load balancer to route traffic,✔ target version, and (optional) the current version of your AWS Lambda function. Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "" ✔ Specify the ARN of your task definition (arn:aws:ecs:region:account-id:task-definition/task-definition-family-name:task-definition-revision-number) LoadBalancerInfo: ContainerName: "" ✔ Specify the name of your Amazon ECS application's container ContainerPort: "" ✔ Specify the port for your container where traffic reroutes ✔ Optional properties PlatformVersion: "" ✔ Specify the version of your Amazon ECS Service NetworkConfiguration: AwsvpcConfiguration: Subnets: ["",""] ✔ Specify one or more comma-separated subnets in your Amazon ECS service SecurityGroups: ["",""] ✔ Specify one or more comma-separated security groups in your Amazon ECS service AssignPublicIp: "" ✔ Specify "ENABLED" or "DISABLED" ✔ (Optional) In the Hooks section, specify a validation Lambda function to run during ✔ a lifecycle event. Hooks:✔ Hooks for Amazon ECS deployments are: - BeforeInstall: "" ✔ Specify a Lambda function name or ARN - AfterInstall: "" ✔ Specify a Lambda function name or ARN - AfterAllowTestTraffic: "" ✔ Specify a Lambda function name or ARN - BeforeAllowTraffic: "" ✔ Specify a Lambda function name or ARN - AfterAllowTraffic: "" ✔ Specify a Lambda function name or ARN

Plantilla JSON del archivo AppSpec para una implementación deAmazon ECSA continuación se muestra una plantilla JSON de un AppSpec file para una implementación de AmazonECS con todas las opciones disponibles. Para ver las instrucciones de plantilla, consulte los comentariosde la versión YAML en la sección anterior. Para obtener más información acerca de los eventos delciclo de vida que se deben utilizar en la sección hooks, consulte Sección "hooks" de AppSpec para unaimplementación de Amazon ECS (p. 416).

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": {

Versión de API 2014-10-06306

Page 316: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdición de un archivo AppSpec para

una implementación de AWS Lambda

"ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ], "Hooks": [ { "BeforeInstall": "" }, { "AfterInstall": "" }, { "AfterAllowTestTraffic": "" }, { "BeforeAllowTraffic": "" }, { "AfterAllowTraffic": "" } ]}

Adición de un archivo AppSpec para unaimplementación de AWS LambdaPara una implementación en una AWS Lambda plataforma de computación:

• El AppSpec file contiene instrucciones acerca de cómo se deben implementar y utilizar las funciones deLambda para la validación de la implementación.

• Una revisión es lo mismo que un AppSpec file.• Se puede escribir un AppSpec file utilizando JSON o YAML.• Un AppSpec file se puede guardar como un archivo de texto o introducir directamente en un editor de

AppSpec de la consola al crear una implementación. Para obtener más información, consulte Creaciónde una implementación AWS Lambda Plataforma de computación (consola) (p. 325).

Para crear un AppSpec file:

1. Copie la plantilla JSON o YAML en un editor de texto o en el editor de AppSpec en la consola.2. Modifique la plantilla como sea necesario.3. Utilice un validador de JSON o YAML para validar el AppSpec file. Si utiliza el editor de AppSpec, el

archivo se valida al elegir Create deployment (Crear implementación).

Versión de API 2014-10-06307

Page 317: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdición de un archivo AppSpec para

una implementación de AWS Lambda

4. Si utiliza un editor de texto, guarde el archivo. Si utiliza la AWS CLI para crear la implementación,utilice una referencia al AppSpec file si está en el disco duro o en un bucket de Amazon S3. Si utilizala consola, debe enviar el AppSpec file a Amazon S3.

Plantilla YAML del archivo AppSpec para una implementación deAWS Lambda con instruccionesPara obtener más información acerca de los eventos del ciclo de vida que se deben utilizar en la secciónhooks, consulte Sección "hooks" de AppSpec para una implementación de AWS Lambda (p. 419).

✔ This is an appspec.yml template file for use with an AWS Lambda deployment in CodeDeploy.✔ The lines in this template starting with the hashtag symbol are ✔ instructional comments and can be safely left in the file or ✔ ignored.✔ For help completing this file, see the "AppSpec File Reference" in the ✔ "CodeDeploy User Guide" at✔ https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.htmlversion: 0.0✔ In the Resources section specify the name, alias, ✔ target version, and (optional) the current version of your AWS Lambda function. Resources: - MyFunction: ✔ Replace "MyFunction" with the name of your Lambda function Type: AWS::Lambda::Function Properties: Name: "" ✔ Specify the name of your Lambda function Alias: "" ✔ Specify the alias for your Lambda function CurrentVersion: "" ✔ Specify the current version of your Lambda function TargetVersion: "" ✔ Specify the version of your Lambda function to deploy✔ (Optional) In the Hooks section, specify a validation Lambda function to run during ✔ a lifecycle event. Replace "LifeCycleEvent" with BeforeAllowTraffic✔ or AfterAllowTraffic. Hooks: - LifeCycleEvent: "" ✔ Specify a Lambda validation function between double-quotes.

Plantilla JSON del archivo AppSpec para una implementación deAWS LambdaEn la siguiente plantilla, sustituya “MyFunction” por el nombre de la función de AWS Lambda. En la secciónHooks opcional, sustituya los eventos del ciclo de vida por BeforeAllowTraffic o AfterAllowTraffic.

Para obtener más información acerca de los eventos del ciclo de vida que se deben utilizar en la secciónHooks, consulte Sección "hooks" de AppSpec para una implementación de AWS Lambda (p. 419).

{ "version": 0.0, "Resources": [{ "MyFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "", "Alias": "", "CurrentVersion": "", "TargetVersion": "" } } }], "Hooks": [{ "LifeCycleEvent": ""

Versión de API 2014-10-06308

Page 318: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdición de un archivo AppSpec para una

implementación de EC2/On-Premises

} ] }

Adición de un archivo AppSpec para unaimplementación de EC2/On-PremisesSin un AppSpec file, CodeDeploy no puede asignar un destino a los archivos de origen de la revisiónde la aplicación, ni ejecutar scripts para la implementación en una EC2/On-Premises plataforma decomputación.

Cada revisión debe contener un único AppSpec file.

Para añadir un AppSpec file a una revisión:

1. Copie la plantilla en un editor de texto.2. Modifique la plantilla como sea necesario.3. Utilice un validador YAML para comprobar la validez del AppSpec file.4. Guarde el archivo como appspec.yml en el directorio raíz de la revisión.5. Ejecute uno de los comandos siguientes para comprobar que ha situado el AppSpec file en el

directorio raíz:

• En Linux, macOS, or Unix:

find /path/to/root/directory -name appspec.yml

Si se encuentra AppSpec file el comando no devuelve ninguna salida.• Para Windows:

dir path\to\root\directory\appspec.yml

Si el archivo AppSpec file no está allí, se mostrará el error File Not Found (Archivo no encontrado).6. Almacene la revisión en Amazon S3 o GitHub.

Para obtener instrucciones, consulte Envío de una revisión para CodeDeploy a Amazon S3 (soloimplementaciones de EC2/On-Premises) (p. 313).

Plantilla del archivo AppSpec para una implementación de EC2/On-Premises con instrucciones

Note

Las implementaciones en instancias de Windows Server no admiten el elemento runas. Si va arealizar la implementación en instancias de Windows Server, no lo incluya en el AppSpec file.

✔ This is an appspec.yml template file for use with an EC2/On-Premises deployment in CodeDeploy.✔ The lines in this template starting with the hashtag symbol are ✔ instructional comments and can be safely left in the file or ✔ ignored.✔ For help completing this file, see the "AppSpec File Reference" in the

Versión de API 2014-10-06309

Page 319: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdición de un archivo AppSpec para una

implementación de EC2/On-Premises

✔ "CodeDeploy User Guide" at✔ https://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref.htmlversion: 0.0✔ Specify "os: linux" if this revision targets Amazon Linux, ✔ Red Hat Enterprise Linux (RHEL), or Ubuntu Server ✔ instances.✔ Specify "os: windows" if this revision targets Windows Server instances.✔ (You cannot specify both "os: linux" and "os: windows".)os: linux ✔ os: windows✔ During the Install deployment lifecycle event (which occurs between the ✔ BeforeInstall and AfterInstall events), copy the specified files ✔ in "source" starting from the root of the revision's file bundle ✔ to "destination" on the Amazon EC2 instance.✔ Specify multiple "source" and "destination" pairs if you want to copy ✔ from multiple sources or to multiple destinations.✔ If you are not copying any files to the Amazon EC2 instance, then remove the✔ "files" section altogether. A blank or incomplete "files" section✔ may cause associated deployments to fail.files: - source: destination: - source: destination:✔ For deployments to Amazon Linux, Ubuntu Server, or RHEL instances,✔ you can specify a "permissions" ✔ section here that describes special permissions to apply to the files ✔ in the "files" section as they are being copied over to ✔ the Amazon EC2 instance.✔ For more information, see the documentation.✔ If you are deploying to Windows Server instances,✔ then remove the ✔ "permissions" section altogether. A blank or incomplete "permissions"✔ section may cause associated deployments to fail.permissions: - object: pattern: except: owner: group: mode: acls: - context: user: type: range: type: -✔ If you are not running any commands on the Amazon EC2 instance, then remove ✔ the "hooks" section altogether. A blank or incomplete "hooks" section✔ may cause associated deployments to fail.hooks:✔ For each deployment lifecycle event, specify multiple "location" entries ✔ if you want to run multiple scripts during that event.✔ You can specify "timeout" as the number of seconds to wait until failing the deployment ✔ if the specified scripts do not run within the specified time limit for the ✔ specified event. For example, 900 seconds is 15 minutes. If not specified, ✔ the default is 1800 seconds (30 minutes).✔ Note that the maximum amount of time that all scripts must finish executing ✔ for each individual deployment lifecycle event is 3600 seconds (1 hour). ✔ Otherwise, the deployment will stop and CodeDeploy will consider the deployment✔ to have failed to the Amazon EC2 instance. Make sure that the total number of seconds ✔ that are specified in "timeout" for all scripts in each individual deployment ✔ lifecycle event does not exceed a combined 3600 seconds (1 hour).✔ For deployments to Amazon Linux, Ubuntu Server, or RHEL instances,

Versión de API 2014-10-06310

Page 320: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioElección de un tipo de repositorio

✔ you can specify "runas" in an event to✔ run as the specified user. For more information, see the documentation.✔ If you are deploying to Windows Server instances,✔ remove "runas" altogether.✔ If you do not want to run any commands during a particular deployment✔ lifecycle event, remove that event declaration altogether. Blank or ✔ incomplete event declarations may cause associated deployments to fail.✔ During the ApplicationStop deployment lifecycle event, run the commands ✔ in the script specified in "location" starting from the root of the ✔ revision's file bundle. ApplicationStop: - location: timeout: runas: - location: timeout: runas: ✔ During the BeforeInstall deployment lifecycle event, run the commands ✔ in the script specified in "location". BeforeInstall: - location: timeout: runas: - location: timeout: runas:✔ During the AfterInstall deployment lifecycle event, run the commands ✔ in the script specified in "location". AfterInstall: - location: timeout: runas: - location: timeout: runas:✔ During the ApplicationStart deployment lifecycle event, run the commands ✔ in the script specified in "location". ApplicationStart: - location: timeout: runas: - location: timeout: runas:✔ During the ValidateService deployment lifecycle event, run the commands ✔ in the script specified in "location". ValidateService: - location: timeout: runas: - location: timeout: runas:

Elección de un tipo de repositorio de CodeDeployLa ubicación de almacenamiento de los archivos necesarios para CodeDeploy se denomina repositorio. Eluso de un repositorio depende de la plataforma de computación que se utilice en la implementación.

• EC2/On-Premises: para implementar el código de la aplicación en una o varias instancias, elcódigo debe agruparse en un archivo de almacenamiento y colocarse en un repositorio al queCodeDeploy pueda tener acceso durante el proceso de implementación. Tiene que agrupar el contenido

Versión de API 2014-10-06311

Page 321: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioElección de un tipo de repositorio

implementable y un archivo AppSpec en un archivo de almacenamiento y, a continuación, cargarlo enuno de los tipos de repositorio admitidos por CodeDeploy.

• AWS Lambda y Amazon ECS: las implementaciones necesitan un AppSpec file al que se pueda teneracceso durante una implementación de una de las siguientes maneras:• Desde un bucket de Amazon S3.• Desde el texto escrito directamente en el editor de AppSpec de la consola. Para obtener más

información, consulte Creación de una implementación AWS Lambda Plataforma de computación(consola) (p. 325) y Creación de una implementación Amazon ECS Plataforma de computación(consola) (p. 324).

• Si utiliza la AWS CLI, puede hacer referencia a un AppSpec file que esté en el disco duro o en unaunidad de red. Para obtener más información, consulte Creación de una implementación AWSLambda Plataforma de computación (CLI) (p. 331) y Creación de una implementación Amazon ECSPlataforma de computación (CLI) (p. 330).

CodeDeploy admite actualmente los siguientes tipos de repositorio:

Tipo de repositorio Detalles del repositorio Plataforma de computacióncompatible

Amazon S3 Amazon Simple Storage Service(Amazon S3) es la solución deAWS que ofrece almacenamientode objetos seguro y escalable.Amazon S3 almacena datoscomo objetos dentro de buckets.Un objeto consta de un archivoy, opcionalmente, cualquiermetadato que describa esearchivo.

Para almacenar un objeto enAmazon S3, debe cargar enun bucket el archivo. Al cargarun archivo, puede configurarpermisos y metadatos en elobjeto.

Más información:

• Crear un bucket en Amazon S3• Envío de una revisión para

CodeDeploy a Amazon S3(solo implementaciones deEC2/On-Premises) (p. 313)

• Implementación automáticadesde Amazon S3 medianteCodeDeploy

Las implementaciones queutilizan las siguientes plataformasde computación puedenalmacenar la revisión en unbucket de Amazon S3.

• EC2/On-Premises• AWS Lambda• Amazon ECS

GitHub Puede almacenar las revisionesde aplicación en repositoriosde GitHub. Puede activar unaimplementación desde unrepositorio de GitHub siempreque el código fuente de eserepositorio cambie.

Solo las implementacionesde EC2/On-Premises puedenalmacenar la revisión en unrepositorio de GitHub.

Versión de API 2014-10-06312

Page 322: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEnvío de una revisión

Más información:

• Integración de CodeDeploycon GitHub (p. 64)

• Tutorial: Uso de CodeDeploypara implementaruna aplicación desdeGitHub (p. 128)

Bitbucket Puede implementar códigoen grupos de implementaciónde instancias EC2 medianteel uso de la canalización deCodeDeploy en BitbucketPipelines. Bitbucket Pipelinesofrece funciones de integracióncontinua e implementacióncontinua (CI/CD), incluidas lasimplementaciones de Bitbucket.La canalización de CodeDeployinserta primero el artefacto enun bucket de S3 especificadoy, a continuación, implementael artefacto de código desde elbucket.

Más información:

• Consulte la canalización deCodeDeploy para Bitbucket

Solo las implementacionesde EC2/On-Premises puedenalmacenar la revisión en unrepositorio de BitBucket.

Note

Una implementación de AWS Lambda solo funciona con un repositorio de Amazon S3.

Envío de una revisión para CodeDeploy a AmazonS3 (solo implementaciones de EC2/On-Premises)

Después de planificar la revisión como se describe en Planear una revisión para CodeDeploy (p. 304)y añadir un AppSpec file a la revisión como se describe en Adición de un archivo de especificaciónde aplicación a una revisión para CodeDeploy (p. 305), estará listo para agrupar los archivos de loscomponentes y enviar la revisión a Amazon S3. Para las implementaciones en instancias Amazon EC2,puede utilizar CodeDeploy después de enviar la revisión para implementar la revisión desde Amazon S3en las instancias.

Note

CodeDeploy también puede utilizarse para implementar revisiones que se han enviado a GitHub.Para obtener más información, consulte su documentación de GitHub.

Suponemos que ya ha seguido las instrucciones de Introducción a CodeDeploy (p. 37) para configurar laAWS CLI. Esto resulta de gran importancia para ejecutar el comando push que se describe más adelante.

Asegúrese de que tiene un bucket de Amazon S3. Siga las instrucciones de Crear un bucket.

Versión de API 2014-10-06313

Page 323: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEnvío de una revisión

Si la implementación se realiza en instancias Amazon EC2, el bucket de Amazon S3 de destino se debecrear o encontrar en la misma región que las instancias de destino. Por ejemplo, si desea implementaruna revisión en algunas instancias en la Región EE.UU. Este (Norte de Virginia) y en otras instancias enla Región EE.UU. Oeste (Oregón), deberá tener un bucket en la Región EE.UU. Este (Norte de Virginia)con una copia de la revisión y otro bucket en la Región EE.UU. Oeste (Oregón) con otra copia de la mismarevisión. En este caso, debería crear dos implementaciones independientes, una en la Región EE.UU. Este(Norte de Virginia) y otra en la Región EE.UU. Oeste (Oregón), aunque la revisión es la misma en ambasregiones y en ambos buckets.

Debe tener permisos para cargar en el bucket de Amazon S3. Puede especificar estos permisos medianteuna política de bucket de Amazon S3. Por ejemplo, en la siguiente política de bucket de Amazon S3 eluso del carácter comodín (*) permite a la cuenta de AWS 111122223333 cargar archivos en cualquierdirectorio del bucket de Amazon S3 llamado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "111122223333" ] } } ]}

Para ver el ID de la cuenta de AWS, consulte Buscar su ID de cuenta de AWS.

Para obtener información sobre cómo generar y asociar una política de bucket de Amazon S3, consulteEjemplos de política de bucket.

El usuario de IAM que llama al comando push debe disponer, como mínimo, de permisos paracargar la revisión en cada bucket de Amazon S3 de destino. Por ejemplo, la siguiente política permiteque el usuario de IAM cargue revisiones en cualquier lugar del bucket de Amazon S3 denominadocodedeploydemobucket:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::codedeploydemobucket/*" } ]}

Para obtener información sobre cómo crear y asociar una política de IAM, consulte el tema relacionado conel Administración de políticas.

Versión de API 2014-10-06314

Page 324: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEnvío de una revisión usando la AWS CLI

Envío de una revisión usando la AWS CLINote

El comando push agrupa los artefactos de aplicación y un AppSpec file en una revisión. Elformato de archivo de esta revisión es un archivo ZIP comprimido. El comando no se puedeutilizar con una AWS Lambda o una implementación de Amazon ECS porque cada una esperauna revisión que sea un AppSpec file con formato JSON o YAML.

Ejecute el comando push para agrupar y enviar la revisión de una implementación. Sus parámetros son:

• --application-name: (cadena) obligatorio. El nombre de la aplicación CodeDeploy que se asociará a larevisión de la aplicación.

• --s3-location: (cadena) obligatorio. Información sobre la ubicación de la revisión de la aplicación quese cargará en Amazon S3. Debe especificar un bucket de Amazon S3 y una clave. La clave es elnombre de la revisión. CodeDeploy comprime el contenido antes de que se cargue. Utilice el formatos3://your-S3-bucket-name/your-key.zip.

• --ignore-hidden-files o --no-ignore-hidden-files: (booleano) opcional. Utilice la marca --no-ignore-hidden-files (el valor predeterminado) para agrupar y cargar archivos ocultos en Amazon S3. Utilicela marca --ignore-hidden-files si no desea agrupar y cargar los archivos ocultos en Amazon S3.

• --source (cadena) opcional. La ubicación del contenido que se implementará y el AppSpec file en elequipo de desarrollo que se comprimirá y se cargará en Amazon S3. La ubicación se especifica comouna ruta relativa al directorio actual. Si no se especifica la ruta relativa o si se utiliza un único punto parala ruta ("."), se utiliza el directorio actual.

• --description (cadena) opcional. Un comentario que resume la revisión de la aplicación. Si no seespecifica, se utiliza la cadena predeterminada "Uploaded by AWS CLI 'time' UTC", donde 'time' es lahora actual del sistema en horario universal coordinado (UTC).

Puede usar la AWS CLI para enviar una revisión de una implementación de Amazon EC2. Un comando deenvío de ejemplo tiene este aspecto:

En Linux, macOS, or Unix:

aws deploy push \ --application-name WordPress_App \ --description "This is a revision for the application WordPress_App" \ --ignore-hidden-files \ --s3-location s3://codedeploydemobucket/WordPressApp.zip \ --source .

En Windows:

aws deploy push --application-name WordPress_App --description "This is a revision for the application WordPress_App" --ignore-hidden-files --s3-location s3://codedeploydemobucket/WordPressApp.zip --source .

Este comando hace lo siguiente:

• Asocia los archivos agrupados con una aplicación denominada WordPress_App.• Adjunta una descripción a la revisión.• Ignora los archivos ocultos.• Asigna a la revisión el nombre WordPressApp.zip y la envía a un bucket llamadocodedeploydemobucket.

• Agrupa todos los archivos del directorio raíz en la revisión.

Versión de API 2014-10-06315

Page 325: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los detalles de una revisión de aplicación

Después de que el comando push se ejecute correctamente, se puede utilizar la AWS CLI o la consola deCodeDeploy para implementar la revisión desde Amazon S3. Para implementar esta revisión con la AWSCLI:

En Linux, macOS, or Unix:

aws deploy create-deployment \ --application-name WordPress_App \ --deployment-config-name your-deployment-config-name \ --deployment-group-name your-deployment-group-name \ --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

En Windows:

aws deploy create-deployment --application-name WordPress_App --deployment-config-name your-deployment-config-name --your-deployment-group-name your-deployment-group-name --s3-location bucket=codedeploydemobucket,key=WordPressApp.zip,bundleType=zip

Para obtener más información, consulte Crear una implementación con CodeDeploy (p. 321).

Visualización de los detalles de una revisión deaplicación con CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para ver detalles de todaslas revisiones registradas en su cuenta de AWS para una aplicación especificada.

Para obtener información sobre el registro de una revisión, consulte Registro de una revisión de unaaplicación en Amazon S3 con CodeDeploy (p. 317).

Temas• Visualización de los detalles de una revisión de aplicación (consola) (p. 316)• Visualización de los detalles de una revisión de aplicación (CLI) (p. 317)

Visualización de los detalles de una revisión deaplicación (consola)Para ver los detalles de una revisión de aplicación:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introducción aCodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y elija Applications (Aplicaciones).Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta. Enla barra de navegación, en el selector de regiones, elija una de las regiones enumeradas enRegion and endpoints (Regiones y puntos de enlace) en AWS General Reference. CodeDeploysolo es compatible con estas regiones.

Versión de API 2014-10-06316

Page 326: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los detalles deuna revisión de aplicación (CLI)

3. Elija el nombre de la aplicación que tiene la revisión que desea ver.4. En la página Application details (Detalles de la aplicación), elija la pestaña Revisions (Revisiones) y

examine la lista de revisiones registradas para la aplicación. Elija una revisión y, a continuación, elijaView details (Ver detalles).

Visualización de los detalles de una revisión deaplicación (CLI)Si desea utilizar la AWS CLI para ver una revisión de una aplicación, llame al comando get-application-revision o al comando list-application-revisions .

Note

Las referencias a GitHub solo se aplican a implementaciones de EC2/On-Premises. Lasrevisiones para las implementaciones de AWS Lambda no funcionan con GitHub.

Para ver detalles de una sola revisión de aplicación, ejecute el comando get-application-revisionespecificando:

• El nombre de la aplicación. Para obtener el nombre de la aplicación, ejecute el comando list-applications.• En el caso de una revisión almacenada en GitHub, el nombre del repositorio de GitHub y el ID de la

confirmación asociada a la revisión almacenada en el repositorio.• En el caso de una revisión almacenada en Amazon S3, el nombre del bucket de Amazon S3 que

contiene la revisión, el nombre y tipo del archivo de almacenamiento y, opcionalmente, el identificadorde versión de Amazon S3 y la ETag del archivo de almacenamiento. Si se especificó el identificador deversión, la ETag o ambos al ejecutar register-application-revision, deben especificarse aquí de nuevo.

Para ver detalles de varias revisiones de la aplicación, ejecute el comando list-application-revisionsespecificando:

• El nombre de la aplicación. Para obtener el nombre de la aplicación, ejecute el comando list-applications.• Si solo desea ver los detalles de las revisiones de la aplicación en Amazon S3, el nombre del bucket de

Amazon S3 que contiene las revisiones.• Si solo desea ver los detalles de las revisiones de la aplicación en Amazon S3, una cadena de

prefijo para limitar la búsqueda a las revisiones de la aplicación en Amazon S3. (Si no se especifica,CodeDeploy mostrará todas las revisiones de la aplicación que coincidan en Amazon S3).

• Opcionalmente, si se deben mostrar los detalles de las revisiones en función de si son revisionesde destino de un grupo de implementaciones. (Si no se especifica, CodeDeploy mostrará todas lasrevisiones coincidentes).

• Opcionalmente, el nombre de la columna y el orden en que deben mostrarse la lista de detalles de lasrevisiones. (Si no se especifica, CodeDeploy mostrará los resultados en un orden arbitrario).

Es posible incluir todas las revisiones, o solo las revisiones almacenadas en Amazon S3. No es posibleincluir solo las revisiones almacenadas en GitHub.

Registro de una revisión de una aplicación enAmazon S3 con CodeDeploy

Si ya ha ejecutado el comando push para enviar una revisión de la aplicación a Amazon S3, no esnecesario registrar la revisión. Sin embargo, si carga una revisión en Amazon S3 por otros medios y desea

Versión de API 2014-10-06317

Page 327: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistro de una revisión en

Amazon S3 con CodeDeploy (CLI)

que aparezca en la consola de CodeDeploy o a través de la AWS CLI, siga primero estos pasos pararegistrar la revisión.

Si ha enviado una revisión de la aplicación a un repositorio de GitHub y desea que aparezca en la consolade CodeDeploy o a través de la AWS CLI, también debe seguir estos pasos.

Para registrar revisiones de aplicaciones en Amazon S3 o en GitHub solo puede utilizar la AWS CLI o lasAPI de CodeDeploy.

Temas• Registro de una revisión en Amazon S3 con CodeDeploy (CLI) (p. 318)• Registro de una revisión en GitHub con CodeDeploy (CLI) (p. 319)

Registro de una revisión en Amazon S3 conCodeDeploy (CLI)1. Cargue la revisión en Amazon S3.2. Ejecute el comando register-application-revision especificando lo siguiente:

• El nombre de la aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-applications.

• información acerca de la revisión que desea registrar:• Nombre del bucket de Amazon S3 que contiene la revisión.• Nombre y tipo de archivo de la revisión cargada. Para las implementaciones de AWS Lambda,

la revisión es un AppSpec file escrito en JSON o en YAML. Para las implementaciones deEC2/On-Premises, la revisión contiene una versión de los archivos de origen que CodeDeployimplementará en las instancias o de los scripts que CodeDeploy ejecutará en estas.

Note

Los formatos de archivo tar y tar comprimido (.tar y .tar.gz) no se admiten en lasinstancias de Windows Server.

• (Opcional) Identificador de versión de Amazon S3 correspondiente a la versión. (Si no seespecifica el identificador de versión, CodeDeploy usará la versión más reciente).

• (Opcional) ETag de la revisión. (Si no se especifica la ETag, CodeDeploy omitirá la validación deobjeto).

• (Opcional) Una descripción que desee asociar a la revisión.

La información sobre las revisiones de Amazon S3 puede especificarse en la línea de comandos utilizandola sintaxis siguiente como parte de la llamada a register-application-revision. (version y eTag sonopcionales).

Para un archivo de revisión para una implementación de EC2/On-Premises:

--s3-location bucket=string,key=string,bundleType=tar|tgz|zip,version=string,eTag=string

Para un archivo de revisión para una implementación de AWS Lambda:

--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string

Versión de API 2014-10-06318

Page 328: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRegistro de una revisión en GitHub con CodeDeploy (CLI)

Registro de una revisión en GitHub con CodeDeploy(CLI)

Note

Las implementaciones de AWS Lambda no funcionan con GitHub.

1. Cargue la revisión en el repositorio GitHub.2. Ejecute el comando register-application-revision especificando lo siguiente:

• El nombre de la aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-applications.

• información acerca de la revisión que desea registrar:• El nombre de usuario de GitHub o el nombre del grupo asignado al repositorio que contiene la

revisión, seguido de una barra inclinada (/) y del nombre del repositorio.• El ID de la confirmación correspondiente a la revisión en el repositorio.

• (Opcional) Una descripción que desee asociar a la revisión.

La información sobre las revisiones de GitHub puede especificarse en la línea de comandos utilizando lasintaxis siguiente como parte de la llamada a register-application-revision:

--github-location repository=string,commitId=string

Versión de API 2014-10-06319

Page 329: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Trabajo con implementaciones enCodeDeploy

En CodeDeploy, una implementación es el proceso de instalar contenido en una o varias instanciasy los componentes implicados en él. El contenido puede ser código, archivos web y de configuración,ejecutables, paquetes, scripts, etc. CodeDeploy implementa el contenido almacenado en un repositorio deorigen, de acuerdo con las reglas de configuración que se especifiquen.

Si utiliza la EC2/On-Premises plataforma de computación, pueden ejecutarse simultáneamente dosimplementaciones en el mismo conjunto de instancias.

CodeDeploy ofrece dos opciones en cuanto al tipo de implementación: in situ e implementación blue/green.

• In-place deployment (Implementación in situ): la aplicación de cada instancia del grupo deimplementación se para, se instala la última revisión de la aplicación, y se inicia y valida la nuevaversión de la aplicación. Puede utilizar un balanceador de carga de modo que se cancele el registrode cada instancia durante su implementación y, a continuación, vuelva a ponerse en servicio una vezcompletada la implementación. Solo las implementaciones que usan la EC2/On-Premises plataforma decomputación pueden utilizar implementaciones "in-place". Para obtener más información acerca de lasimplementaciones in-place, consulte Información general de la implementación in situ (p. 8).

• Implementación Blue/green: el funcionamiento de la implementación depende de la plataforma decomputación que utilice:• Blue/green en unaEC2/On-Premises plataforma de computación: las instancias de un grupo de

implementación (el entorno original) se sustituyen por otro conjunto de instancias (el entorno desustitución) siguiendo estos pasos:• Las instancias se aprovisionan para el entorno de sustitución.• En las instancias de sustitución se instala la revisión de la aplicación más reciente.• Hay un tiempo de espera opcional para actividades como probar la aplicación y verificar el sistema.• Las instancias del entorno de sustitución se registran con un balanceador de carga de Elastic Load

Balancing, lo que hace que el tráfico comience a redirigirse hacia ellas. Se anula el registro de lasinstancias del entorno original, y se puede optar por terminaras o mantenerlas en ejecución paraotros usuarios.

Note

Si utiliza una EC2/On-Premises plataforma de computación, tenga en cuenta que lasimplementaciones blue/green solo funcionan con instancias Amazon EC2.

• Blue/green en una AWS Lambda plataforma de computación: el tráfico se desvía desde el entornosin servidor actual a uno con las versiones de funciones Lambda actualizadas. Puede especificarlas funciones Lambda que realizan las pruebas de validación y elegir el modo en que se realiza eldesvío de tráfico. Todas las implementaciones de AWS Lambda plataforma de computación sonimplementaciones blue/green. Por este motivo, no es necesario que especifique ningún tipo deimplementación.

• Blue/green en Amazon ECS plataforma de computación: el tráfico se desvía desde el conjunto detareas con la versión original de una aplicación de un servicio de Amazon ECS a un conjunto detareas de sustitución del mismo servicio. Puede establecer el desplazamiento de tráfico como linealo controlado a través de la configuración de implementación. Se usan el protocolo y el puerto de unagente de escucha de balanceo de carga especificado para redirigir el tráfico de producción. Durante

Versión de API 2014-10-06320

Page 330: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCrear una implementación

una implementación, se puede usar un agente de escucha de prueba para servir el tráfico al conjuntode tareas de sustitución mientras se ejecutan las pruebas de validación.

• Implementaciones blue/green (azul/verde) a través de AWS CloudFormation: el tráfico se desplazade los recursos actuales a los recursos actualizados como parte de una actualización de pila de AWSCloudFormation. Actualmente, solo se admiten implementaciones de ECS blue/green (azul/verde).

Para obtener más información acerca de las implementaciones blue/green, consulte Información generalde la implementación blue/green (p. 9).

Para obtener información sobre la implementación automática desde Amazon S3 consulte Implementaciónautomática desde Amazon S3 con CodeDeploy.

Temas• Crear una implementación con CodeDeploy (p. 321)• Visualización de los detalles de las implementaciones de CodeDeploy (p. 337)• Visualización de los datos de log de las implementaciones de EC2/On-Premises de

CodeDeploy (p. 339)• Detener una implementación con CodeDeploy (p. 341)• Volver a implementar y restaurar una implementación con CodeDeploy (p. 342)• Implementar una aplicación en otra cuenta de AWS (p. 346)• Uso del agente de CodeDeploy para validar un paquete de implementación en una máquina

local (p. 349)

Crear una implementación con CodeDeployUtilice la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para crear una implementaciónque instale revisiones aplicaciones que ya haya enviado a Amazon S3 o, si la implementación serealiza en una EC2/On-Premises plataforma de computación, GitHub, en las instancias de un grupo deimplementaciones.

El proceso para crear una implementación depende de la plataforma de computación usada en laimplementación.

Temas• Requisitos previos para una implementación (p. 321)• Creación de una implementación Amazon ECS Plataforma de computación (consola) (p. 324)• Creación de una implementación AWS Lambda Plataforma de computación (consola) (p. 325)• Creación de una implementación EC2/On-Premises Plataforma de computación (consola) (p. 327)• Creación de una implementación Amazon ECS Plataforma de computación (CLI) (p. 330)• Creación de una implementación AWS Lambda Plataforma de computación (CLI) (p. 331)• Creación de una implementación EC2/On-Premises Plataforma de computación (CLI) (p. 332)• Crear una implementación blue/green (azul/verde) de Amazon ECS a través de AWS

CloudFormation (p. 335)

Requisitos previos para una implementaciónAsegúrese de seguir estos pasos antes de iniciar una implementación.

Versión de API 2014-10-06321

Page 331: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos para una implementación

Requisitos previos de implementación en una plataforma decomputación AWS Lambda• Cree una aplicación que incluya al menos un grupo de implementaciones. Para obtener información,

consulte Creación de una aplicación con CodeDeploy (p. 270) y Creación de un grupo deimplementaciones con CodeDeploy (p. 285).

• Prepare la revisión de la aplicación (es decir, el AppSpec file) que especifica la versión de la función deLambda que va a implementar. El AppSpec file también puede especificar funciones de Lambda paravalidar la implementación. Para obtener más información, consulte Gestión de revisiones de aplicacionesen CodeDeploy (p. 304).

• Si desea utilizar una configuración de implementación personalizada para su implementación, créelaantes de iniciar el proceso de implementación. Para obtener información, consulte Creación de unaconfiguración de implementación (p. 265).

Requisitos previos de implementación en una plataforma decomputación EC2/On-Premises• Si se trata de una implementación "in-place", cree o configure las instancias en las que desea realizar

la implementación. Para obtener información, consulte Trabajar con instancias de CodeDeploy (p. 202).Si se trata de una implementación blue/green, dispone de un grupo de Amazon EC2 Auto Scaling parautilizarlo como plantilla para el entorno de sustitución, o de una o varias instancias o grupos de AmazonEC2 Auto Scaling que deberá especificar como entorno original. Para obtener más información, consulteTutorial: Uso de CodeDeploy para la implementación de una aplicación en un grupo de Amazon EC2Auto Scaling (p. 111) y Integración de CodeDeploy con Amazon EC2 Auto Scaling (p. 54).

• Cree una aplicación que incluya al menos un grupo de implementaciones. Para obtener información,consulte Creación de una aplicación con CodeDeploy (p. 270) y Creación de un grupo deimplementaciones con CodeDeploy (p. 285).

• Prepare la revisión de la aplicación que desea implementar en las instancias del grupo deimplementaciones. Para obtener información, consulte Gestión de revisiones de aplicaciones enCodeDeploy (p. 304).

• Si desea utilizar una configuración de implementación personalizada para su implementación, créelaantes de iniciar el proceso de implementación. Para obtener información, consulte Creación de unaconfiguración de implementación (p. 265).

• Si está implementando una revisión de la aplicación desde un bucket de Amazon S3, el bucket debeestar en la misma región de AWS que las instancias del grupo de implementaciones.

• Si está implementando la revisión de la aplicación desde un bucket de Amazon S3, debe haberseaplicado al bucket una política de bucket de Amazon S3. Esta política concede a las instancias lospermisos necesarios para descargar la revisión de la aplicación.

Por ejemplo, la siguiente política de bucket de Amazon S3 permite a cualquier instancia Amazon EC2asociada a un perfil de instancia de IAM que contenga el ARN arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo descargar desde cualquier lugar al bucket de Amazon S3 llamadocodedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*",

Versión de API 2014-10-06322

Page 332: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos para una implementación

"Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ]}

La siguiente política de bucket de Amazon S3 permite a cualquier instancia on-premises con un usuariode IAM asociado que contenga el ARN arn:aws:iam::80398EXAMPLE:user/CodeDeployUserdescargar desde cualquier lugar al bucket de Amazon S3 denominado codedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:user/CodeDeployUser" ] } } ]}

Para obtener información acerca de cómo generar y asociar una política de bucket de Amazon S3,consulte Ejemplos de política de bucket.

• Si está creando una implementación "blue/green" (azul/verde) o si ha especificado una instancia deClassic Load Balancer, Balanceador de carga de aplicaciones o Network Load Balancer en el grupo deimplementaciones para una implementación in situ, habrá creado una VPC mediante Amazon VPC quecontiene al menos dos subredes. (CodeDeploy utiliza Elastic Load Balancing, que requiere que todas lasinstancias de un grupo de balanceadores de carga se encuentren en una única VPC).

Si no ha creado una VPC, consulte la Guía de introducción a Amazon VPC.• Si está creando una implementación "blue/green" (azul/verde), habrá configurado una instancia de

Classic Load Balancer, Balanceador de carga de aplicaciones o Network Load Balancer en Elastic LoadBalancing y la habrá usado para registrar las instancias que componen el entorno original.

Note

Las instancias del entorno de sustitución se registrarán con el balanceador de carga en otromomento.

Para configurar un Classic Load Balancer, siga los pasos que se describen en Tutorial: Creación de unClassic Load Balancer en la Guía del usuario de Classic Load Balancers. Al hacerlo, tenga presente losiguiente:• En el Paso 2: Definir el balanceador de carga, en Crear LB dentro, elija la misma VPC que seleccionó

al crear las instancias.• En el Paso 5: Registrar instancias EC2 con el balanceador de carga, seleccione las instancias de su

entorno original.• En el Paso 7: Crear y probar su balanceador de carga, anote la dirección DNS del balanceador de

carga.Versión de API 2014-10-06

323

Page 333: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación Amazon

ECS Plataforma de computación (consola)

Por ejemplo, si denominó su balanceador de carga my-load-balancer, su dirección DNS apareceráen un formato como my-load-balancer-1234567890.us-east-2.elb.amazonaws.com.

Al pegar el nombre del DNS en el campo de dirección de un navegador web, debe poder ver laaplicación que ha implementado para su entorno original.

Para configurar un elemento Balanceador de carga de aplicaciones, siga las instrucciones en uno de lossiguientes temas:• Creación de un Balanceador de carga de aplicaciones• Tutorial: Crear un Balanceador de carga de aplicaciones con la AWS CLI

Para configurar un Network Load Balancer, siga las instrucciones en uno de los siguientes temas:• Creación de un Network Load Balancer• Tutorial: Crear un Network Load Balancer con la AWS CLI

Requisitos previos de implementación para una implementaciónazul/verde a través de AWS CloudFormation• La plantilla no necesita modelar recursos para una aplicación o grupo de implementación de

CodeDeploy.• La plantilla debe incluir recursos para una VPC usando Amazon VPC que contenga al menos dos

subredes.• La plantilla debe incluir recursos para Classic Load Balancer, Balanceador de carga de aplicaciones,

o Network Load Balancer en Elastic Load Balancing que se utilice para dirigir el tráfico a los grupos dedestino.

Creación de una implementación Amazon ECSPlataforma de computación (consola)En este tema se muestra cómo implementar un servicio de Amazon ECS mediante la consola. Paraobtener más información, consulte Tutorial: Implementación de un servicio de Amazon ECS (p. 140) yTutorial: Implementación de un servicio de Amazon ECS con una prueba de validación (p. 148).

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. Aplique alguna de las siguientes acciones:

• Si desea implementar una aplicación, en el panel de navegación, expanda Deploy (Implementar)y, a continuación, elija Applications (Aplicaciones). Elija el nombre de la aplicación que deseaimplementar. Asegúrese de que la columna Compute platform (Plataforma de computación) de laaplicación sea Amazon ECS.

• Si desea volver a implementar una implementación, en el panel de navegación, expandaDeploy (Implementar) y, a continuación, elija Deployments (Implementaciones). Seleccione laimplementación que desea volver a implementar y, en la columna Application (Aplicación), elijael nombre de su aplicación. Asegúrese de que la columna Compute platform (Plataforma decomputación) de la implementación sea Amazon ECS.

Versión de API 2014-10-06324

Page 334: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación AWS

Lambda Plataforma de computación (consola)

3. En la pestaña Deployments (Implementaciones), elija Create deployment (Crear implementación).

Note

La aplicación debe tener un grupo de implementación para que se pueda implementar. Si laaplicación no tiene un grupo de implementación, en la pestaña Deployment groups (Gruposde implementación), elija Create deployment group (Crear grupo de implementación).Para obtener más información, consulte Creación de un grupo de implementaciones conCodeDeploy (p. 285).

4. En Deployment group (Grupo de implementaciones), elija el grupo de implementaciones que va autilizar para esta implementación.

5. Junto a Revision location (Ubicación de la revisión) elija el lugar donde se encuentra la revisión:

• My application is stored in Amazon S3 (Mi aplicación está almacenada en Amazon S3): para obtenerinformación, consulte Especificar información acerca de una revisión almacenada en un bucket deAmazon S3 (p. 329) y vuelva al paso 6.

• Use AppSpec editor (Utilizar el editor de AppSec): seleccione JSON o YAML y, a continuación,escriba el AppSpec file en el editor proporcionado. Elija Save as text file (Guardar como archivode texto) para guardar el AppSpec file. Cuando elija Deploy (Implementar) al final de estos pasos,recibirá un error si el código JSON o YAML no es válido. Para obtener más información sobre cómocrear un AppSpec file, consulte Adición de un archivo de especificación de aplicación a una revisiónpara CodeDeploy (p. 305).

6. (Opcional) En el cuadro Deployment description (Descripción de la implementación), introduzca unadescripción para la implementación.

7. (Opcional) En Rollback configuration overrides, puede especificar opciones de restauraciónautomática de esta implementación distintas de las que se hayan especificado para el grupo deimplementaciones, si las hay.

Para obtener información acerca de restauraciones en CodeDeploy, consulte Reimplementaciones yrestauración de implementaciones (p. 20) y Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Elija una de las siguientes opciones:

• Roll back when a deployment fails (Restaurar si una implementación da error): CodeDeploy volveráa implementar la última revisión correcta conocida como una nueva implementación.

• Roll back when alarm thresholds are met (Restaurar si se alcanzan los umbrales de alarma): sise añaden alarmas al grupo de implementaciones, CodeDeploy volverá a implementar la últimarevisión correcta conocida al activarse una o varias de las alarmas especificadas.

• Disable rollbacks (Deshabilitar restauraciones): no se realizan restauraciones de estaimplementación.

8. Elija Create deployment (Crear implementación).

Para realizar un seguimiento del estado de la implementación, consulte Visualización de los detallesde las implementaciones de CodeDeploy (p. 337).

Creación de una implementación AWS LambdaPlataforma de computación (consola)En este tema se muestra cómo implementar una función de Lambda mediante la consola.

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Versión de API 2014-10-06325

Page 335: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación AWS

Lambda Plataforma de computación (consola)

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. Aplique alguna de las siguientes acciones:

• Si desea implementar una aplicación, en el panel de navegación, expanda Deploy (Implementar)y, a continuación, elija Applications (Aplicaciones). Elija el nombre de la aplicación que deseaimplementar. Asegúrese de que la columna Compute platform (Plataforma de computación) de laaplicación sea AWS Lambda.

• Si desea volver a implementar una implementación, en el panel de navegación, expandaDeploy (Implementar) y, a continuación, elija Deployments (Implementaciones). Seleccione laimplementación que desea volver a implementar y, en la columna Application (Aplicación), elijael nombre de su aplicación. Asegúrese de que la columna Compute platform (Plataforma decomputación) de la implementación sea AWS Lambda.

3. En la pestaña Deployments (Implementaciones), elija Create deployment (Crear implementación).

Note

La aplicación debe tener un grupo de implementación para que se pueda implementar. Si laaplicación no tiene un grupo de implementación, en la pestaña Deployment groups (Gruposde implementación), elija Create deployment group (Crear grupo de implementación).Para obtener más información, consulte Creación de un grupo de implementaciones conCodeDeploy (p. 285).

4. En Deployment group (Grupo de implementaciones), elija el grupo de implementaciones que va autilizar para esta implementación.

5. Junto a Revision location (Ubicación de la revisión) elija el lugar donde se encuentra la revisión:

• My application is stored in Amazon S3 (Mi aplicación está almacenada en Amazon S3): para obtenerinformación, consulte Especificar información acerca de una revisión almacenada en un bucket deAmazon S3 (p. 329) y vuelva al paso 6.

• Use AppSpec editor (Utilizar el editor de AppSec): seleccione JSON o YAML y, a continuación,escriba el AppSpec file en el editor proporcionado. Elija Save as text file (Guardar como archivode texto) para guardar el AppSpec file. Cuando elija Deploy (Implementar) al final de estos pasos,recibirá un error si el código JSON o YAML no es válido. Para obtener más información sobre cómocrear un AppSpec file, consulte Adición de un archivo de especificación de aplicación a una revisiónpara CodeDeploy (p. 305).

6. (Opcional) En el cuadro Deployment description (Descripción de la implementación), introduzca unadescripción para la implementación.

7. (Opcional) Expanda Deployment group overrides (Anulaciones del grupo de implementaciones) paraelegir una configuración de implementación que controle cómo se desvía el tráfico a una versión de lafunción Lambda distinta de la que se especifica en el grupo de implementaciones.

Para obtener más información, consulte Configuraciones de implementación en una plataforma decomputación AWS Lambda (p. 264).

8. (Opcional) En Rollback configuration overrides, puede especificar opciones de restauraciónautomática de esta implementación distintas de las que se hayan especificado para el grupo deimplementaciones, si las hay.

Para obtener información acerca de restauraciones en CodeDeploy, consulte Reimplementaciones yrestauración de implementaciones (p. 20) y Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Elija una de las siguientes opciones:

Versión de API 2014-10-06326

Page 336: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación EC2/On-

Premises Plataforma de computación (consola)

• Roll back when a deployment fails (Restaurar si una implementación da error): CodeDeploy volveráa implementar la última revisión correcta conocida como una nueva implementación.

• Roll back when alarm thresholds are met (Restaurar si se alcanzan los umbrales de alarma): sise añaden alarmas al grupo de implementaciones, CodeDeploy volverá a implementar la últimarevisión correcta conocida al activarse una o varias de las alarmas especificadas.

• Disable rollbacks (Deshabilitar restauraciones): no se realizan restauraciones de estaimplementación.

9. Elija Create deployment (Crear implementación).

Para realizar un seguimiento del estado de la implementación, consulte Visualización de los detallesde las implementaciones de CodeDeploy (p. 337).

Creación de una implementación EC2/On-PremisesPlataforma de computación (consola)En este tema se muestra cómo implementar una aplicación en Amazon EC2 o en un servidor localmediante la consola.

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. Aplique alguna de las siguientes acciones:

• Si desea implementar una aplicación, en el panel de navegación, expanda Deploy (Implementar)y, a continuación, elija Applications (Aplicaciones). Elija el nombre de la aplicación que deseaimplementar. Asegúrese de que la columna Compute platform (Plataforma de computación) de laaplicación sea EC2/On-Premises.

• Si desea volver a implementar una implementación, en el panel de navegación, expanda Deploy(Implementar) y, a continuación, elija Deployments (Implementaciones). Localice la implementaciónque desea volver a implementar y, a continuación, elija el nombre de su aplicación en la columnaApplication (Aplicación). Asegúrese de que la columna Compute platform (Plataforma decomputación) de la implementación sea EC2/On-Premises.

3. En la pestaña Deployments (Implementaciones), elija Create deployment (Crear implementación).

Note

La aplicación debe tener un grupo de implementación para que se pueda implementar. Si laaplicación no tiene un grupo de implementación, en la pestaña Deployment groups (Gruposde implementación), elija Create deployment group (Crear grupo de implementación).Para obtener más información, consulte Creación de un grupo de implementaciones conCodeDeploy (p. 285).

4. En Deployment group (Grupo de implementaciones), elija el grupo de implementaciones que va autilizar para esta implementación.

5. Junto a Repository type (Tipo de repositorio), seleccione el tipo de repositorio en el que estáalmacenada la revisión:

• My application is stored in Amazon S3 (Mi aplicación está almacenada en Amazon S3): para obtenerinformación, consulte Especificar información acerca de una revisión almacenada en un bucket deAmazon S3 (p. 329) y vuelva al paso 6.

Versión de API 2014-10-06327

Page 337: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación EC2/On-

Premises Plataforma de computación (consola)

• My application is stored in GitHub (Mi aplicación está almacenada en GitHub): para obtenerinformación, consulte Especifique información acerca de una revisión almacenada en un repositoriode GitHub (p. 329) y vuelva al paso 6.

6. (Opcional) En el cuadro Deployment description (Descripción de la implementación), introduzca unadescripción para la implementación.

7. (Opcional) Expanda Override deployment configuration (Anular la configuración de la implementación)para elegir una configuración de implementación que controle cómo se desvía el tráfico al servidorde Amazon EC2, o a uno en las instalaciones, distinto del que se especifica en el grupo deimplementaciones.

Para obtener más información, consulte Uso de configuraciones de implementación enCodeDeploy (p. 260).

8. a. Seleccione Don't fail the deployment if the ApplicationStop lifecycle event fails (Dar como válidala implementación si el evento ApplicationStop del ciclo de vida produce un error) si desea queuna implementación en una instancia se realice correctamente si el evento del ciclo de vidaApplicationStop produce un error.

b. Expanda Additional deployment behavior settings (Configuración adicional del comportamientode la implementación) para especificar el modo en que CodeDeploy gestiona los archivos de unaubicación de destino de implementación que no haya formado parte de la última implementaciónrealizada correctamente.

Elija una de las siguientes opciones:

• Fail the deployment (Error de implementación): se notifica un error y el estado de laimplementación cambia a Failed.

• Overwrite the content (Sobrescribir el contenido): si hay un archivo con el mismo nombre en laubicación de destino, la versión de la revisión de la aplicación lo sustituye.

• Retain the content (Conservar el contenido): si hay un archivo con el mismo nombre en laubicación de destino, este se conserva y la versión de la revisión de la aplicación no se copiaen la instancia.

Para obtener más información, consulte Comportamiento de la restauración con contenidoexistente (p. 344).

9. (Opcional) En Rollback configuration overrides, puede especificar opciones de restauraciónautomática de esta implementación distintas de las que se hayan especificado para el grupo deimplementaciones, si las hay.

Para obtener información acerca de restauraciones en CodeDeploy, consulte Reimplementaciones yrestauración de implementaciones (p. 34) y Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Elija una de las siguientes opciones:

• Roll back when a deployment fails (Restaurar si una implementación da error): CodeDeploy volveráa implementar la última revisión correcta conocida como una nueva implementación.

• Roll back when alarm thresholds are met (Restaurar si se alcanzan los umbrales de alarma): sise agregan alarmas al grupo de implementaciones, CodeDeploy volverá a implementar la últimarevisión correcta conocida al activarse una o varias de las alarmas especificadas.

• Disable rollbacks (Deshabilitar restauraciones): no se realizan restauraciones de estaimplementación.

10. Elija Start deployment (Iniciar la implementación).

Para realizar un seguimiento del estado de la implementación, consulte Visualización de los detallesde las implementaciones de CodeDeploy (p. 337).

Versión de API 2014-10-06328

Page 338: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación EC2/On-

Premises Plataforma de computación (consola)

Temas• Especificar información acerca de una revisión almacenada en un bucket de Amazon S3 (p. 329)• Especifique información acerca de una revisión almacenada en un repositorio de GitHub (p. 329)

Especificar información acerca de una revisión almacenada en unbucket de Amazon S3Si está siguiendo los pasos descritos en Creación de una implementación EC2/On-Premises Plataformade computación (consola) (p. 327), siga estos también para añadir detalles acerca de una revisión de laaplicación almacenada en un bucket de Amazon S3.

1. Copie el enlace de Amazon S3 de la revisión en el cuadro Revision location (Ubicación de la revisión).Para encontrar el valor del enlace:

a. En una pestaña diferente del navegador:

Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

Busque y seleccione la revisión.b. Si el panel Properties no está visible, elija el botón Properties.c. En el panel Properties (Propiedades), copie el valor del campo Link (Enlace) en el cuadro

Revision location (Ubicación de la revisión) de la consola de CodeDeploy.

Para especificar una ETag (una suma de comprobación de archivo) como parte de la ubicación de larevisión:

• Si el valor del campo Link (Enlace) termina en ?versionId=versionId, añada &etag= y la ETagal final del valor del campo Link (Enlace).

• Si el valor del campo Link (Enlace) no especifica un ID de versión, añada ?etag= y la ETag al finaldel valor del campo Link (Enlace).

Note

Aunque no es tan fácil como copiar el valor del campo Link, también puede escribir laubicación de la revisión en uno de los siguientes formatos:s3://bucket-name/folders/objectNames3://bucket-name/folders/objectName?versionId=versionIds3://bucket-name/folders/objectName?etag=etags3://bucket-name/folders/objectName?versionId=versionId&etag=etagbucket-name.s3.amazonaws.com/folders/objectName

2. Si aparece un mensaje en la lista File type que indique que no se ha podido detectar el tipo de archivo,seleccione el tipo de archivo de la revisión. En caso contrario, acepte el tipo de archivo detectado.

Especifique información acerca de una revisión almacenada enun repositorio de GitHubSi está siguiendo los pasos descritos en Creación de una implementación EC2/On-Premises Plataformade computación (consola) (p. 327), siga estos también para añadir detalles acerca de una revisión de laaplicación almacenada en un repositorio de GitHub.

1. En Connect to GitHub, realice una de las siguientes acciones:

Versión de API 2014-10-06329

Page 339: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación Amazon

ECS Plataforma de computación (CLI)

• Para crear una conexión para aplicaciones de CodeDeploy en una cuenta de GitHub, cierre lasesión de GitHub en otra pestaña del navegador web. En GitHub account (Cuenta de GitHub),introduzca un nombre para identificar esta conexión y luego elija Connect to GitHub (Conectar aGitHub). La página web le pedirá que autorice a CodeDeploy para interactuar con GitHub para laaplicación. Continúe en el paso 2.

• Para utilizar una conexión que haya creado previamente, seleccione su nombre en GitHub accounty, a continuación, elija Connect to GitHub. Continúe en el paso 4.

• Para crear una conexión con una cuenta de GitHub distinta, cierre la sesión de GitHub en otrapestaña del navegador web. Elija Connect to a different GitHub account y, a continuación, elijaConnect to GitHub. Continúe en el paso 2.

2. Si se le pide iniciar sesión en GitHub, siga las instrucciones de la página Sign in. Inicie sesión con sunombre de usuario de GitHub o su dirección de correo electrónico y contraseña.

3. Si aparece la página Authorize application, elija Authorize application.4. En la página Create deployment (Crear implementación), en el cuadro Repository name (Nombre de

repositorio), escriba el nombre de usuario de GitHub o el nombre de la organización que contiene larevisión, seguido de una barra inclinada (/) y del nombre del repositorio que contiene la revisión. Si noestá seguro del valor que debe especificar:

a. En otra pestaña del navegador web, abra el panel de Github.b. En Your repositories, pase el cursor sobre el nombre del repositorio de destino. Aparecerá un

mensaje informativo con el nombre de usuario de GitHub o el nombre de la organización seguidode una barra inclinada (/) y del nombre del repositorio. Escriba el valor mostrado en el cuadroRepository name (Nombre de repositorio).

Note

Si el nombre de repositorio de destino no aparece en Your repositories, use el cuadroSearch GitHub para buscar repositorio de GitHub de destino y el nombre de usuario onombre de organización.

5. En el campo Commit ID (ID de confirmación), escriba el ID de la confirmación que hace referencia a larevisión en el repositorio. Si no está seguro del valor que debe especificar:

a. En otra pestaña del navegador web, abra el panel de Github.b. En Your repositories, seleccione el nombre del repositorio que contiene la confirmación de

destino.c. En la lista de confirmaciones, busque y copie el ID de confirmación que hace referencia a la

revisión en el repositorio. Este ID suele tener 40 caracteres y se compone de letras y números.No utilice la versión corta del ID de confirmación, que suele ser los primeros 10 caracteres de laversión larga.

d. Pegue el ID de confirmación en el cuadro Commit ID.

Creación de una implementación Amazon ECSPlataforma de computación (CLI)Una vez creada la aplicación y la revisión (en las implementaciones de Amazon ECS, este es el AppSpecfile):

Realice una llamada al comando create-deployment, especificando:

• Un nombre de aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-applications.

Versión de API 2014-10-06330

Page 340: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación AWS

Lambda Plataforma de computación (CLI)

• El nombre del grupo de implementaciones. Para ver una lista de los nombres de los grupos deimplementaciones, llame al comando list-deployment-groups.

• Información acerca de la revisión a implementar:

Para revisiones almacenadas en Amazon S3:• El nombre del bucket de Amazon S3 que contiene la revisión.• El nombre de la revisión cargada.• El identificador de versión de Amazon S3 de la revisión (opcional). (Si no se especifica el identificador

de versión, CodeDeploy usa la versión más reciente).• La ETag de la revisión (opcional). (Si no se especifica la ETag, CodeDeploy omite la validación de

objeto).

Para las revisiones almacenadas en un archivo que no está en Amazon S3, necesita el nombre dearchivo y su ruta. El archivo de revisión está escrito en JSON o YAML, por lo que probablemente tengauna extensión .json o .yaml.

• Una descripción para la implementación (opcional).

El archivo de revisión se puede especificar como un archivo cargado en un bucket de Amazon S3 o comouna cadena. La sintaxis de cada uno cuando se usa como parte del comando create-deployment es:

• Bucket de Amazon S3:

Los parámetros version y eTag son opcionales.

--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string

• Cadena:

--revision '{"revisionType": "String", "string": {"content":"revision-as-string"}}'

Note

El comando create-deployment puede cargar una revisión desde un archivo. Para obtener másinformación, consulte Carga de parámetros desde un archivo.

Para las plantillas de revisión de implementaciones de AWS Lambda, consulte Adición de un archivoAppSpec para una implementación de AWS Lambda (p. 307). Para ver una revisión de ejemplo, consulte AppSpec File Ejemplo de una implementación de AWS Lambda (p. 431).

Para realizar un seguimiento del estado de la implementación, consulte Visualización de los detalles de lasimplementaciones de CodeDeploy (p. 337).

Creación de una implementación AWS LambdaPlataforma de computación (CLI)Una vez creada la aplicación y la revisión (en las implementaciones de AWS Lambda, este es el AppSpecfile):

Realice una llamada al comando create-deployment, especificando:

• Un nombre de aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-applications.

Versión de API 2014-10-06331

Page 341: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación EC2/On-Premises Plataforma de computación (CLI)

• El nombre del grupo de implementaciones. Para ver una lista de los nombres de los grupos deimplementaciones, llame al comando list-deployment-groups.

• Información acerca de la revisión a implementar:

Para revisiones almacenadas en Amazon S3:• El nombre del bucket de Amazon S3 que contiene la revisión.• El nombre de la revisión cargada.• El identificador de versión de Amazon S3 de la revisión (opcional). (Si no se especifica el identificador

de versión, CodeDeploy usa la versión más reciente).• La ETag de la revisión (opcional). (Si no se especifica la ETag, CodeDeploy omite la validación de

objeto).

Para las revisiones almacenadas en un archivo que no está en Amazon S3, necesita el nombre dearchivo y su ruta. El archivo de revisión está escrito en JSON o YAML, por lo que probablemente tengauna extensión .json o .yaml.

• El nombre de la configuración de implementación a utilizar (opcional). Para ver una lista de lasconfiguraciones de implementación, realice una llamada al comando list-deployment-configs. (Si no seespecifica una configuración de implementación, CodeDeploy utiliza una predeterminada específica).

• Una descripción para la implementación (opcional).

El archivo de revisión se puede especificar como un archivo cargado en un bucket de Amazon S3 o comouna cadena. La sintaxis de cada uno cuando se usa como parte del comando create-deployment es:

• Bucket de Amazon S3:

Los parámetros version y eTag son opcionales.

--s3-location bucket=string,key=string,bundleType=JSON|YAML,version=string,eTag=string

• Cadena:

--revision '{"revisionType": "String", "string": {"content":"revision-as-string"}}'

Note

El comando create-deployment puede cargar una revisión desde un archivo. Para obtener másinformación, consulte Carga de parámetros desde un archivo.

Para las plantillas de revisión de implementaciones de AWS Lambda, consulte Adición de un archivoAppSpec para una implementación de AWS Lambda (p. 307). Para ver una revisión de ejemplo, consulte AppSpec File Ejemplo de una implementación de AWS Lambda (p. 431).

Para realizar un seguimiento del estado de la implementación, consulte Visualización de los detalles de lasimplementaciones de CodeDeploy (p. 337).

Creación de una implementación EC2/On-PremisesPlataforma de computación (CLI)Para usar la AWS CLI para implementar una revisión en la EC2/On-Premises plataforma de computación:

1. Una vez preparadas las instancias, creada la aplicación y enviada la revisión, realice alguna de lassiguientes acciones:• Si desea implementar una revisión de un bucket de Amazon S3, continúe con el paso 2.

Versión de API 2014-10-06332

Page 342: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación EC2/On-Premises Plataforma de computación (CLI)

• Si desea implementar una revisión de un repositorio de GitHub, primero siga los pasos descritos enConectar una aplicación de CodeDeploy a un repositorio de GitHub (p. 334) y después continúe conel paso 2.

2. Realice una llamada al comando create-deployment especificando:• Un nombre de aplicación. Para ver una lista de nombres de aplicaciones, ejecute el comando list-

applications.• Un grupo de implementaciones de Amazon EC2. Para ver una lista de los nombres de los grupos de

implementaciones, llame al comando list-deployment-groups.• Información acerca de la revisión a implementar:

Para revisiones almacenadas en Amazon S3:• El nombre del bucket de Amazon S3 que contiene la revisión.• Nombre y tipo de archivo de la revisión cargada.

Note

Los formatos de archivo tar y tar comprimido (.tar y .tar.gz) no se admiten en las instanciasde Windows Server.

• El identificador de versión de Amazon S3 de la revisión (opcional). (Si no se especifica elidentificador de versión, CodeDeploy usa la versión más reciente).

• La ETag de la revisión (opcional). (Si no se especifica la ETag, CodeDeploy omite la validación deobjeto).

Para revisiones almacenadas en GitHub:• El nombre de usuario de GitHub o el nombre del grupo asignado al repositorio que contiene la

revisión, seguido de una barra inclinada (/) y del nombre del repositorio.• El ID de confirmación de la revisión.

• El nombre de la configuración de implementación a utilizar (opcional). Para ver una lista de lasconfiguraciones de implementación, realice una llamada al comando list-deployment-configs. (Si no seespecifica una configuración de implementación, CodeDeploy utiliza una predeterminada específica).

• Si desea que la implementación en una instancia continúe y pase al evento del ciclo de vidaBeforeInstall en caso de que se produzca un error en el evento del ciclo de vida de laimplementación ApplicationStop (opcional).

• Una descripción para la implementación (opcional).• En el caso de las implementaciones blue/green, información sobre las instancias que pertenecen

al entorno de sustitución en una implementación blue/green, incluidos los nombres de uno o variosgrupos de Amazon EC2 Auto Scaling, o la clave, el tipo y el valor del filtro de etiquetas utilizado paraidentificar las instancias Amazon EC2.

Note

Utilice esta sintaxis como parte de la llamada create-deployment para especificar informaciónsobre una revisión en Amazon S3 directamente en la línea de comandos. Los parámetrosversion y eTag son opcionales.

--s3-location bucket=string,key=string,bundleType=tar|tgz|zip,version=string,eTag=string

Utilice esta sintaxis como parte de la llamada create-deployment para especificar informaciónsobre una revisión en GitHub directamente en la línea de comandos:

--github-location repository=string,commitId=stringVersión de API 2014-10-06

333

Page 343: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación EC2/On-Premises Plataforma de computación (CLI)

Para obtener información acerca de las revisiones que se han transferido, realice una llamada alcomando list-application-revisions.

Para realizar un seguimiento del estado de la implementación, consulte Visualización de los detalles de lasimplementaciones de CodeDeploy (p. 337).

Temas• Conectar una aplicación de CodeDeploy a un repositorio de GitHub (p. 334)

Conectar una aplicación de CodeDeploy a un repositorio deGitHubAntes de implementar una aplicación desde un repositorio de GitHub por primera vez con la AWS CLI,primero debe dar permiso a CodeDeploy para interactuar con GitHub en nombre de su cuenta de GitHub.Este paso seguirse una vez por cada aplicación en la consola de CodeDeploy.

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. Elija Applications (Aplicaciones).3. En Applications (Aplicaciones), elija la aplicación que desea vincular a su cuenta de usuario de GitHub

y seleccione Deploy application (Implementar aplicación).

Note

No está creando una implementación. Actualmente esta es la única manera de conceder aCodeDeploy el permiso para interactuar con GitHub en nombre de su cuenta de usuario deGitHub.

4. Junto a Repository type, elija My application revision is stored in GitHub.5. Elija Connect to GitHub.

Note

Si ve un enlace Connect to a different GitHub account:Puede haber autorizado ya a CodeDeploy para interactuar con GitHub en nombre de unacuenta de GitHub distinta para la aplicación.Puede haber revocado a CodeDeploy la autorización para interactuar con GitHub en nombrede la cuenta de GitHub registrada para todas las aplicaciones vinculadas en CodeDeploy.Para obtener más información, consulte Autenticación en GitHub con aplicaciones deCodeDeploy (p. 65).

6. Si todavía no ha iniciado sesión en GitHub, siga las instrucciones de la página Sign in.7. En la página Authorize application, elija Authorize application.8. Ahora que CodeDeploy tiene permiso, seleccione Cancel (Cancelar) y continúe con los pasos que

se describen en Creación de una implementación EC2/On-Premises Plataforma de computación(CLI) (p. 332).

Versión de API 2014-10-06334

Page 344: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCrear una implementación blue/green (azul/verde)de Amazon ECS a través de AWS CloudFormation

Crear una implementación blue/green (azul/verde) deAmazon ECS a través de AWS CloudFormationPuede usar AWS CloudFormation para administrar implementaciones blue/green (azul/verde) de AmazonECS a través de CodeDeploy. Para generar la implementación, defina los recursos verdes y azules yespecifique la configuración de enrutamiento y estabilización del tráfico que se va a utilizar en AWSCloudFormation. En este tema se describen las diferencias entre las implementaciones blue/green (azul/verde) de Amazon ECS administradas por CodeDeploy y las implementaciones administradas por AWSCloudFormation.

Para obtener instrucciones paso a paso sobre cómo utilizar AWS CloudFormation para administrar lasimplementaciones blue/green (azul/verde) de Amazon ECS, consulte Automatizar implementaciones blue/green (azul/verde) de ECS a través de CodeDeploy usando AWS CloudFormation en la Guía del usuariode AWS CloudFormation.

Note

La administración de implementaciones azul/verde de Amazon ECS con AWS CloudFormation noestá disponible en las regiones MXP, CPT o KIX.

Diferencias entre implementaciones blue/green (azul/verde) deAmazon ECS a través de CodeDeploy y de AWS CloudFormationLa plantilla de pila de AWS CloudFormation modela recursos e infraestructura de relacionados contareas de Amazon ECS, así como las opciones de configuración para implementaciones. Por lo tanto,hay diferencias entre las implementaciones blue/green (azul/verde) estándar de Amazon ECS y lasimplementaciones blue/green (azul/verde) que se crean a través de AWS CloudFormation.

A diferencia de las implementaciones blue/green (azul/verde) estándar de Amazon ECS, usted no modelani crea manualmente lo siguiente:

• No crea una aplicación de AWS CodeDeploy especificando un nombre que represente de formaexclusiva lo que desea implementar.

• No crea un grupo de implementación de AWS CodeDeploy.• No especifica un application specification file (AppSpec file). La información que normalmente se

administra con el archivo AppSpec, como las opciones de configuración ponderadas o los eventos delciclo de vida, se administra mediante el enlace AWS::CodeDeploy::BlueGreen.

En esta tabla se resumen las diferencias en el flujo de trabajo de alto nivel entre los tipos deimplementación.

Función Implementaciones blue/green(azul/verde) estándar

Implementaciones blue/green (azul-verde) con AWSCloudFormation

Especifique el clúster de AmazonECS, el servicio de AmazonECS, Balanceador de carga deaplicaciones o Network LoadBalancer, el agente de escuchade producción, el agente deescucha de prueba y dos gruposde destino.

Cree un grupo deimplementación de CodeDeployque especifique estos recursos.

Cree una plantilla de AWSCloudFormation para modelarestos recursos.

Versión de API 2014-10-06335

Page 345: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCrear una implementación blue/green (azul/verde)de Amazon ECS a través de AWS CloudFormation

Función Implementaciones blue/green(azul/verde) estándar

Implementaciones blue/green (azul-verde) con AWSCloudFormation

Especifique el cambio que se vaa implementar.

Creación de una aplicación deCodeDeploy

Cree una plantilla de AWSCloudFormation que especifiquela imagen del contenedor.

Especifique la definición de tareade Amazon ECS, el nombredel contenedor y el puerto delcontenedor.

Cree un AppSpec file queespecifique estos recursos.

Cree una plantilla de AWSCloudFormation para modelarestos recursos.

Especifique las opcionesde cambio de tráfico deimplementación y los enlaces deeventos de ciclo de vida.

Cree un AppSpec file queespecifique estas opciones.

Cree una plantilla de AWSCloudFormation que utilicelos parámetros de enlaceAWS::CodeDeploy::BlueGreenpara especificar estas opciones.

Alarmas de CloudWatch. Cree una alarma de CloudWatchque desencadene unarestauración.

Configure una alarma deCloudWatch en el nivel de pilade AWS CloudFormation quedesencadene una restauración.

Restauración/reimplementación. Especifique las opciones derestauración y reimplementación.

Cancele la actualización de lapila en AWS CloudFormation.

Monitorización de implementaciones blue/green (azul/verde) deAmazon ECS a través de AWS CloudFormationPuede monitorizar implementaciones blue/green (azul/verde) a través de AWS CloudFormation yCodeDeploy. Para obtener información sobre la monitorización a través de AWS CloudFormation, consulteMonitorización de eventos blue/green (azul/verde) en AWS CloudFormation en la Guía del usuario de AWSCloudFormation.

Para ver el estado de implementación de implementaciones blue/green (azul/verde) enCodeDeploy

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En Deployments (Implementaciones), aparece la implementación desencadenada por la actualizaciónde la pila de AWS CloudFormation. Elija la implementación para ver el Deployment history (Historial deimplementaciones).

Versión de API 2014-10-06336

Page 346: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los detalles de las implementaciones

3. Elija la implementación para ver el estado de cambio de tráfico. Tenga en cuenta que el grupo deaplicación e implantación no se han creado.

4. Lo siguiente se aplica para restaurar o detener la implementación:

• La implementación correcta aparece en CodeDeploy y muestra que la implementación fue iniciadapor AWS CloudFormation.

• Si desea detener y restaurar la implementación, debe cancelar la actualización de la pila en AWSCloudFormation.

Visualización de los detalles de lasimplementaciones de CodeDeploy

Puede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para ver informacióndetallada acerca de las implementaciones asociadas a su cuenta de AWS.

Note

Puede ver los logs de las implementaciones de EC2/On-Premises de las instancias en lassiguientes ubicaciones:

• Amazon Linux, RHEL y Ubuntu Server: /opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log

• Windows Server: C:\ProgramData\Amazon\CodeDeploy<ID-DEL-GRUPO-DE-IMPLEMENTACIONES><ID-DE-LA-IMPLEMENTACIÓN>\logs\scripts.log

Para obtener más información, consulte Análisis de archivos de registro para investigar los erroresde implementación en instancias (p. 465).

Temas

Versión de API 2014-10-06337

Page 347: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVer los detalles de las implementaciones (consola)

• Ver los detalles de las implementaciones (consola) (p. 338)• Ver los detalles de las implementaciones (CLI) (p. 338)

Ver los detalles de las implementaciones (consola)Para utilizar la consola de CodeDeploy y ver los detalles de las implementaciones:

1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://console.aws.amazon.com/codedeploy.

Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Deployments(Implementaciones).

Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta.En la barra de navegación, en el selector de regiones, elija una de las regiones enumeradasen Region and endpoints (Regiones y puntos de enlace) en AWS General Reference.CodeDeploy solo es compatible con estas regiones.

3. Para ver más detalles sobre una única implementación, en Deployment history (Historial deimplementaciones), elija el ID de la implementación o seleccione el botón situado junto al ID deimplementación y, a continuación, elija View (Ver).

Ver los detalles de las implementaciones (CLI)Para utilizar la AWS CLI para ver los detalles de las implementaciones, ejecute el comando get-deployment o al comando batch-get-deployments. Puede llamar al comando list-deploymentspara obtener una lista de ID exclusivos de las implementaciones para utilizar como entradas del comandoget-deployment y del comando batch-get-deployments.

Para ver los detalles de una única implementación, ejecute el comando get-deployment, especificando elidentificador exclusivo de la implementación. Para obtener el ID de implementación, ejecute el comandolist-deployments.

Para ver los detalles de múltiples implementaciones, ejecute el comando batch-get-deployments,especificando los identificadores exclusivos de las múltiples implementaciones. Para obtener los ID de lasimplementaciones, ejecute el comando list-deployments.

Para ver una lista de los ID de las implementaciones, ejecute el comando list-deployments y especifique:

• El nombre de la aplicación asociada a la implementación. Para ver una lista de nombres de aplicaciones,ejecute el comando list-applications.

• El nombre del grupo de implementaciones asociado a la implementación. Para ver una lista de losnombres de los grupos de implementaciones, ejecute el comando list-deployment-groups.

• Si lo prefiere, puede incluir detalles acerca de las implementaciones por su estado de implementación.(Si no se especifican, se enumerarán todas las implementaciones coincidentes, independientemente desu estado de implementación).

• Si lo prefiere, puede incluir detalles acerca de las implementaciones por la hora de inicio o final decreación o ambas. (Si no se especifican, se enumerarán todas las implementaciones coincidentes,independientemente de sus horas de creación).

Versión de API 2014-10-06338

Page 348: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los datos de

registro de una implementación

Visualización de los datos de log de lasimplementaciones de EC2/On-Premises deCodeDeploy

Para ver los datos de registro creados por una implementación de CodeDeploy, configure el agente deAmazon CloudWatch Logs de modo que muestre los datos agregados en la consola de CloudWatch o bieninicie sesión en una instancia individual para consultar el archivo de registro.

Note

Los registros no son compatibles con implementaciones de AWS Lambda o Amazon ECS. Sepueden crear para implementaciones de EC2/On-Premises solo.

Temas• Visualización de los datos del archivo de log en la consola de Amazon CloudWatch (p. 339)• Visualización de los archivos de log de una instancia (p. 339)

Visualización de los datos del archivo de log en laconsola de Amazon CloudWatchCuando el agente de Amazon CloudWatch Logs está instalado en una instancia, los datos de registrode todas las implementaciones efectuadas en ella estarán disponibles en la consola de CloudWatch.Para simplificar, le recomendamos que utilice Amazon CloudWatch Logs para monitorizar de formacentralizada los archivos de log, en lugar de hacerlo en cada instancia. Para obtener información sobrela configuración del agente de Amazon CloudWatch Logs, consulte la entrada de blog View CodeDeployLogs in CloudWatch Logs Console.

Visualización de los archivos de log de una instanciaPara ver los datos del log de implementación de una instancia individual, puede iniciar sesión en lainstancia y examinar la información sobre errores u otros eventos de implementación.

Temas• Para ver los archivos de registro de la implementación en instancias de Amazon Linux, RHEL y Ubuntu

Server (p. 339)• Para ver los archivos de log de implementación en las instancias de Windows Server (p. 341)

Para ver los archivos de registro de la implementación eninstancias de Amazon Linux, RHEL y Ubuntu ServerEn las instancias de Amazon Linux, RHEL y Ubuntu Server, los registros de implementación se encuentranen la siguiente ubicación:

/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log

Para ver o analizar los registros de implementación de las instancias de Amazon Linux, RHEL y UbuntuServer, inicie sesión en la instancia y, a continuación, ejecute el comando siguiente para abrir el archivo deregistro del agente de CodeDeploy:

Versión de API 2014-10-06339

Page 349: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioVisualización de los archivos de log de una instancia

less /var/log/aws/codedeploy-agent/codedeploy-agent.log

Ejecute los comandos siguientes para buscar mensajes de error en el archivo de log:

Comando Resultado

& ERROR Muestra solo los mensajes de error del archivo delog. Utilice un único espacio delante y detrás de lapalabra ERROR.

/ ERROR Busca el mensaje de error siguiente.¹

? ERROR Busca el mensaje de error anterior.² Utilice unúnico espacio delante y detrás de la palabraERROR.

G Ir al final del archivo de log.

g Ir al inicio del archivo de log.

q Salir del archivo de log.

h Conozca otros comandos.

¹ Después de escribir / ERROR , escriba n para ir al mensaje de error siguiente. Escriba N para ir almensaje de error anterior.

² Después de escribir ? ERROR , escriba n para ir al mensaje de error siguiente o N para ir al mensajede error anterior.

También puede ejecutar el comando siguiente para abrir un archivo de registro de scripts de CodeDeploy:

less /opt/codedeploy-agent/deployment-root/deployment-group-ID/deployment-ID/logs/scripts.log

Ejecute los comandos siguientes para buscar mensajes de error en el archivo de registro:

Comando Resultado

&stderr Muestra solo los mensajes de error del archivo delog.

/stderr Busca el mensaje de error siguiente.¹

?stderr Busca el mensaje de error anterior.²

G Ir al final del archivo de log.

g Ir al inicio del archivo de log.

q Salir del archivo de log.

h Conozca otros comandos.

¹Después de escribir /stderr, escriba n para ir al mensaje de error siguiente hacia delante. Escriba Npara ir al mensaje de error anterior hacia atrás.

Versión de API 2014-10-06340

Page 350: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDetener una implementación

Comando Resultado² Después de escribir ?stderr, escriba n para ir al mensaje de error siguiente hacia atrás. Escriba Npara ir al mensaje de error anterior hacia delante.

Para ver los archivos de log de implementación en las instanciasde Windows ServerArchivo de registro del agente de CodeDeploy: en las instancias de Windows Server, el archivo de registrodel agente de CodeDeploy se encuentra en la ubicación siguiente:

C:\ProgramData\Amazon\CodeDeploy\log\codedeploy-agent-log.txt

Para ver o analizar el archivo de registro del agente de CodeDeploy en una instancia de Windows Server,inicie sesión en la instancia y, a continuación, ejecute el comando siguiente para abrir el archivo:

notepad C:\ProgramData\Amazon\CodeDeploy\log\codedeploy-agent-log.txt

Para buscar mensajes de error en el archivo de registro, pulse CTRL+F, escriba ERROR [ y, acontinuación, pulse Intro para encontrar el primer error.

Archivos de registro de los scripts de CodeDeploy: en las instancias de Windows Server, los registros deimplementación se encuentran en la ubicación siguiente:

C:\ProgramData\Amazon\CodeDeploy\deployment-group-id\deployment-id\logs\scripts.log

Donde:

• deployment-group-id es una cadena similar a examplebf3a9c7a-7c19-4657-8684-b0c68d0cd3c4

• deployment-id es un identificador similar a d-12EXAMPLE

Ejecute el comando siguiente para abrir un archivo de registro de scripts de CodeDeploy:

notepad C:\ProgramData\Amazon\CodeDeploy\deployment-group-ID\deployment-ID\logs\scripts.log

Para buscar mensajes de error en el archivo de registro, pulse CTRL+F, escriba stderr y, a continuación,pulse Intro para encontrar el primer error.

Detener una implementación con CodeDeployPuede utilizar la consola de CodeDeploy, la AWS CLI o las API de CodeDeploy para detenerimplementaciones asociadas a su cuenta de AWS.

Warning

Si se detiene una implementación de EC2/On-Premises, es posible que algunas o todaslas instancias de los grupos de implementaciones queden en un estado de implementaciónindeterminado. Para obtener más información, consulte Implementaciones detenidas y queproducen error (p. 33).

Puede detener una implementación o detener y restaurar una implementación.• Detener una implementación (consola) (p. 342)

Versión de API 2014-10-06341

Page 351: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDetener una implementación (consola)

• Detener una implementación (CLI) (p. 342)

Note

Si la implementación es una implementación blue/green (azul/verde) a través de AWSCloudFormation, no puede realizar esta tarea en la consola de CodeDeploy. Vaya a la consola deAWS CloudFormation para realizar esta tarea.

Detener una implementación (consola)1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Deployments(Implementaciones).

Note

Si no se muestra ninguna entrada, asegúrese de que está seleccionada la región correcta.En la barra de navegación, en el selector de regiones, elija una de las regiones enumeradasen Region and endpoints (Regiones y puntos de enlace) en AWS General Reference.CodeDeploy solo es compatible con estas regiones.

3. Elija la implementación que desea que deje de hacer una de las siguientes acciones:

1. Elija Stop deployment (Detener la implementación) para detener la implementación sin realizar unarestauración.

2. Elija Stop and roll back deployment (Detener y restaurar la implementación) para detener yrestaurar la implementación.

Para obtener más información, consulte Volver a implementar y restaurar una implementación conCodeDeploy (p. 342).

Note

Si Stop deployment (Detener la implementación) y Stop and roll back deployment (Detenery restaurar la implementación) aparecen no disponibles, la implementación ha progresadohasta un punto en el que no puede detenerse.

Detener una implementación (CLI)Llame al comando stop-deployment y especifique el ID de la implementación. Para ver una lista de los IDde implementación, llame al comando list-deployments.

Volver a implementar y restaurar unaimplementación con CodeDeploy

CodeDeploy restaura las implementaciones volviendo a implementar una revisión implementadaanteriormente de una aplicación como una nueva implementación. Estas implementaciones restauradas

Versión de API 2014-10-06342

Page 352: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRestauraciones automáticas

son, desde el punto de vista técnico, nuevas implementaciones, con nuevos ID de implementación, enlugar de versiones recuperadas de una implementación anterior.

Las implementaciones se pueden restaurar de forma automática o manual.

Temas• Restauraciones automáticas (p. 343)• Restauraciones manuales (p. 343)• Flujo de trabajo de la restauración y reimplementación (p. 343)• Comportamiento de la restauración con contenido existente (p. 344)

Restauraciones automáticasPuede configurar una implementación o un grupo de implementaciones para que se restaurenautomáticamente si falla una implementación o si se supera un umbral de monitorización que hayaespecificado. En este caso, se implementa la última versión correcta conocida de una revisión de laaplicación. Puede configurar restauraciones automáticas al crear una aplicación o al crear o actualizar ungrupo de implementaciones.

Al crear una nueva implementación, también puede optar por anular la configuración de restauraciónautomática especificada para el grupo de implementaciones.

Note

Puede utilizar Amazon Simple Notification Service para recibir una notificación cuando se restaureautomáticamente una implementación. Para obtener información, consulte Monitorización deimplementaciones con notificaciones de eventos de Amazon SNS (p. 363).

Para obtener más información acerca de cómo configurar restauraciones automáticas, consulteConfiguración de las opciones avanzadas de un grupo de implementaciones (p. 301).

Restauraciones manualesSi no ha configurado restauraciones automáticas, puede restaurar manualmente una implementacióncreando una nueva implementación que utilice cualquier revisión de una aplicación implementadaanteriormente y siguiendo los pasos para volver a implementar una revisión. Puede hacerlo si unaaplicación se ha quedado en un estado desconocido. En lugar de dedicar mucho tiempo a resolverproblemas, puede volver a implementar la aplicación a un estado operativo conocido. Para obtener másinformación, consulte Crear una implementación con CodeDeploy (p. 321).

Note

Si elimina una instancia de un grupo de implementaciones, CodeDeploy no desinstala nada quepuede que ya se haya instalado en dicha instancia.

Flujo de trabajo de la restauración y reimplementaciónCuando se inicia una restauración automática, o cuando inicia manualmente una reimplementación o unarestauración manual, CodeDeploy intenta primero eliminar de cada instancia participante todos los archivosque se han instalado correctamente por última vez. CodeDeploy realiza este proceso comprobando elarchivo de limpieza:

El archivo /opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanup (para las instancias de Amazon Linux, UbuntuServer y RHEL)

El archivo C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanup (para las instancias de Windows Server)

Versión de API 2014-10-06343

Page 353: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComportamiento de la restauración con contenido existente

Si existe, CodeDeploy utiliza el archivo de limpieza para eliminar de la instancia todos los archivosenumerados antes de empezar la nueva implementación.

Por ejemplo, los dos primeros archivos de texto y los dos archivos de script ya estaban implementadosuna instancia Amazon EC2 que ejecutaba Windows Server y los scripts crearon dos archivos de texto másdurante los eventos del ciclo de vida de la implementación:

c:\temp\a.txt (previously deployed by CodeDeploy)c:\temp\b.txt (previously deployed by CodeDeploy)c:\temp\c.bat (previously deployed by CodeDeploy)c:\temp\d.bat (previously deployed by CodeDeploy)c:\temp\e.txt (previously created by c.bat)c:\temp\f.txt (previously created by d.bat)

El archivo de limpieza enumerará únicamente los dos primeros archivos de texto y dos archivos de script:

c:\temp\a.txtc:\temp\b.txt c:\temp\c.bat c:\temp\d.bat

Antes de la nueva implementación, CodeDeploy eliminará solo los dos primeros archivos de texto y los dosarchivos de script, dejando intactos los últimos dos archivos de texto:

c:\temp\a.txt will be removedc:\temp\b.txt will be removedc:\temp\c.bat will be removedc:\temp\d.bat will be removedc:\temp\e.txt will remainc:\temp\f.txt will remain

Como parte de este proceso, CodeDeploy no intentará revertir o conciliar de algún modo las accionesrealizadas por ningún script en las implementaciones anteriores durante las reimplementacionesposteriores, ya sean restauraciones manuales o automáticas. Por ejemplo, si los archivos c.bat y d.batcontienen lógica para no volver a crear los archivos e.txt y f.txt si ya existen, las antiguas versionesde e.txt y f.txt permanecerán intactas siempre que CodeDeploy ejecute c.bat y d.bat en lasimplementaciones subsiguientes. Puede añadir lógica c.bat y d.bat para comprobar y eliminar siemprelas versiones anteriores de e.txt y f.txt antes de crear otras nuevas.

Comportamiento de la restauración con contenidoexistenteComo parte del proceso de implementación, el agente de CodeDeploy elimina de cada instancia todoslos archivos instalados por la implementación más reciente. Si en las ubicaciones de implementación dedestino aparecen archivos que no formaban parte de una implementación anterior, puede elegir qué haceCodeDeploy con ellos durante la siguiente implementación:

• Fail the deployment (Error de implementación): se notifica un error y el estado de la implementacióncambia a Failed (Error).

• Overwrite the content (Sobrescribir el contenido) — la versión del archivo de la revisión de la aplicaciónsustituye a la versión ya incluida en la instancia.

• Retain the content (Conservar el contenido) — el archivo de la ubicación de destino se conserva y laversión de la revisión de la aplicación no se copia en la instancia.

Puede optar por conservar los archivos que desea que formen parte de la próxima implementación sintener que añadirlos al paquete de revisión de la aplicación. Por ejemplo, podría cargar directamente en la

Versión de API 2014-10-06344

Page 354: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioComportamiento de la restauración con contenido existente

instancia los archivos que son necesarios para la implementación pero que no se añadieron al paquetede revisión de la aplicación. O podría cargar archivos en la instancia si sus aplicaciones ya están en suentorno de producción, pero desea utilizar CodeDeploy por primera vez para implementarlos.

En el caso de las restauraciones, en las que se vuelve a implementar la última revisión de la aplicaciónimplementada correctamente debido a un error de implementación, se aplica la opción de gestión decontenido de la última implementación correcta a la implementación de restauración.

Sin embargo, si la implementación errónea se configuró para sobrescribir, en lugar de para conservar losarchivos, podría producirse un resultado inesperado durante la restauración. En concreto, los archivosque esperaba conservar puede que los elimine la implementación errónea. Los archivos no están en lainstancia cuando se ejecuta la implementación de restauración.

En el siguiente ejemplo, existen tres implementaciones. Cualquier archivo que se sobrescribe (elimina)durante la segunda implementación errónea ya no estará disponible (no se puede conservar) cuando seimplemente de nuevo la 1ª revisión de la aplicación durante la 3ª implementación:

Implementación Revisión de laaplicación

Opción desobrescritura delcontenido

Estado de laimplementación

Comportamiento yresultado

1ª implementación 1ª revisión de laaplicación

RETAIN Correcto CodeDeploydetecta archivosen las ubicacionesde destinoque no fueronimplementados porla implementaciónanterior. Estosarchivos podríancolocarse allídeliberadamentepara que formenparte de laimplementaciónactual. Seconservan yregistran comoparte del paquetede implementaciónactual.

2ª implementación 2ª revisión de laaplicación

OVERWRITE Con error Durante elproceso deimplementación,CodeDeployelimina todoslos archivos queforman partede la anteriorimplementacióncorrecta. Estoincluye losarchivos quese conservarondurante la 1ªimplementación.

Versión de API 2014-10-06345

Page 355: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementar una aplicación en otra cuenta de AWS

Implementación Revisión de laaplicación

Opción desobrescritura delcontenido

Estado de laimplementación

Comportamiento yresultado

Sin embargo, laimplementaciónfalla por motivosajenos.

3ª implementación 1ª revisión de laaplicación

CONSERVAR Dado que estáhabilitada larestauraciónautomática parala implementacióno grupo deimplementaciones,CodeDeployimplementa laúltima revisiónde la aplicacióncorrecta conocida:la 1ª revisión de laaplicación.

Sin embargo,los archivosque deseabaconservar en la 1ªimplementación seeliminaron antesde que fallara la2ª implementacióny no se puedenrecuperarmediante AWSCodeDeploy.Puede añadirlosusted mismo a lainstancia si sonnecesarios parala 1ª revisión dela aplicación, opuede crear unanueva revisión dela aplicación.

Implementar una aplicación en otra cuenta de AWSLas organizaciones suelen tener varias cuentas de AWS que utilizan para fines diferentes (por ejemplo,una para tareas de administración de sistemas y otra para tareas de desarrollo, prueba y producción o unaasociada a entornos de desarrollo y prueba y otra asociada a un entorno de producción).

Si bien puede llevar a cabo tareas relacionadas en cuentas diferentes, los grupos de implementaciones deCodeDeploy y las instancias Amazon EC2 en las que se implementan están estrictamente vinculadas a lascuentas con las que se crearon. Por ejemplo, no se puede añadir una instancia que lanzó en una cuenta aun grupo de implementaciones en otra.

Versión de API 2014-10-06346

Page 356: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 1: Crear un bucket de S3 en cualquiera de las cuentas

Suponga que tiene dos cuentas de AWS: su cuenta de desarrollo y su cuenta de producción. Trabajaprincipalmente en la cuenta de desarrollo, pero desea poder iniciar implementaciones en su cuenta deproducción sin un conjunto completo de credenciales allí o sin tener que salir de la cuenta de desarrollo einiciar sesión en la cuenta de producción.

Después de seguir los pasos de configuración entre cuentas, puede iniciar implementaciones quepertenecen a otra cuenta de la organización, sin necesitar un conjunto completo de credenciales para esaotra cuenta. Esto es posible, en parte, utilizando una capacidad proporcionada en el AWS Security TokenService (AWS STS) que le concede acceso temporario a esa cuenta.

Paso 1: Crear un bucket de S3 en cualquiera de lascuentasEn la cuenta de desarrollo o en la cuenta de producción:

• Si aún no lo ha hecho, cree un bucket de Amazon S3 en el cual se almacenarán las revisiones dela aplicación para la cuenta de producción. Para obtener información, consulte Crear un bucket enAmazon S3. Incluso, puede utilizar el mismo bucket y revisiones de la aplicación para ambas cuentas,implementando los mismos archivos a su entorno de producción que ya probó y verificó en la cuenta dedesarrollo.

Paso 2: Conceder permisos de bucket de AmazonS3 al perfil de instancia de IAM de la cuenta deproducciónSi el bucket de Amazon S3 que creó en el paso 1 está en la cuenta de producción, este paso no esnecesario. El rol que asuma después ya tendrá acceso a este bucket porque también estará en la cuentade producción.

Si creó el bucket de Amazon S3 en la cuenta de desarrollo, haga lo siguiente:

• En la cuenta de producción, cree un perfil de instancia de IAM. Para obtener información, consulte Paso4: Crear un perfil de instancia de IAM para las instancias Amazon EC2 (p. 44).

Note

Anote el ARN de este perfil de instancia de IAM. Deberá añadirlo a la política de bucketscruzados que cree a continuación.

• En la cuenta de desarrollo, conceda acceso al bucket de Amazon S3 que creó en la cuenta de desarrolloal perfil de instancia de IAM que acaba de crear en la cuenta de producción. Para obtener másinformación, consulte Ejemplo 2: Propietario del bucket que concede permisos de bucket entre cuentas.

Tenga en cuenta lo siguiente cuando complete el proceso de conceder permisos de bucket entrecuentas:• En el ejemplo del tutorial, la Cuenta A representa la cuenta de desarrollo y la Cuenta B representa la

cuenta de producción.• Cuando realice las tareas de la cuenta A (cuenta de desarrollo), modifique la siguiente política de

bucket para conceder permisos entre cuentas en lugar de utilizar la política de ejemplo del tutorial.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Cross-account permissions",

Versión de API 2014-10-06347

Page 357: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 3: Crear recursos y un rol entrecuentas en la cuenta de producción

"Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ]}

account-id representa el número de cuenta de la cuenta de producción en la que acaba de crear elperfil de instancia de IAM.

role-name representa el nombre del perfil de instancia de IAM que acaba de crear.

bucket-name representa el nombre del bucket que creó en el paso 1. Asegúrese de incluir /*después del nombre de su bucket para conceder acceso a cada uno de los archivos dentro del bucket.

Paso 3: Crear recursos y un rol entre cuentas en lacuenta de producciónEn su cuenta de producción:

• Cree los recursos de CodeDeploy — aplicación, grupo de implementaciones, configuración deimplementación, instancias Amazon EC2, perfil de instancia Amazon EC2, rol de servicio, etc. —siguiendo las instrucciones de esta guía.

• Cree un rol adicional, un rol de IAM entre cuentas, que un usuario de su cuenta de desarrollo puedaasumir para llevar a cabo operaciones de CodeDeploy en esta cuenta de producción.

Utilice el Tutorial: Delegación del acceso entre cuentas de AWS mediante roles de IAM como guíapara ayudarle a crear el rol entre cuentas. En lugar de añadir los permisos de muestra del tutorialal documento de la política, debería adjuntar, como mínimo, las dos políticas siguientes que AWSproporciona para el rol:• AmazonS3FullAccess: necesaria solamente si el bucket de S3 está en la cuenta de desarrollo.

Proporciona el rol asumido de la cuenta de producción con acceso total a los servicios y recursos deAmazon S3 en la cuenta de desarrollo donde se almacena la revisión.

• AWSCodeDeployDeployerAccess: habilita a un usuario de IAM a registrar e implementar revisiones.

Si desea crear y administrar grupos de implementaciones y no solamente iniciarimplementaciones, añada la política AWSCodeDeployFullAccess en lugar de la políticaAWSCodeDeployDeployerAccess. Para obtener más información acerca del uso de políticasadministradas de IAM para conceder permisos para tareas de CodeDeploy, consulte Políticasadministradas (predefinidas) de AWS para CodeDeploy (p. 384).

Puede adjuntar políticas adicionales si desea ejecutar tareas en otros servicios de AWS mientras utilizaeste rol entre cuentas.

Important

Cuando cree el rol de IAM entre cuentas, anote los detalles que necesitará para acceder a lacuenta de producción.

Versión de API 2014-10-06348

Page 358: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPaso 4: Cargar la revisión de la

aplicación al bucket de Amazon S3

Para utilizar la Consola de administración de AWS para intercambiar los roles, debe proporcionaruna de las siguientes opciones:

• Una URL para acceder a la cuenta de producción con las credenciales del rol asumido.Encontrará la URL en la página Review, que aparece al final del proceso de creación de rolentre cuentas.

• El nombre del rol entre cuentas y el número del ID de la cuenta o el alias.

Para utilizar la AWS CLI para intercambiar los roles, debe proporcionar una de las siguientesopciones:

• El ARN del rol entre cuentas que asumirá.

Paso 4: Cargar la revisión de la aplicación al bucket deAmazon S3En la cuenta en la que creó el bucket de Amazon S3:

• Cargue la revisión de la aplicación al bucket de Amazon S3. Para obtener información, consulte Envío deuna revisión para CodeDeploy a Amazon S3 (solo implementaciones de EC2/On-Premises) (p. 313).

Paso 5: Asumir el rol entre cuentas e implementar lasaplicacionesEn la cuenta de desarrollo, puede utilizar la AWS CLI o la Consola de administración de AWS para asumirel rol entre cuentas e iniciar la implementación en la cuenta de producción.

Para obtener instrucciones acerca de cómo usar la Consola de administración de AWS para cambiar de role iniciar implementaciones, consulte Cambio a un rol (Consola) y Creación de una implementación EC2/On-Premises Plataforma de computación (consola) (p. 327).

Para obtener instrucciones acerca de cómo utilizar la AWS CLI para asumir el rol entre cuentas e iniciarimplementaciones, consulte Cambio a un rol de IAM (AWS CLI) y Creación de una implementación EC2/On-Premises Plataforma de computación (CLI) (p. 332).

Para obtener más información acerca de cómo asumir un rol a través de AWS STS, consulte AssumeRoleen la AWS Security Token Service User Guide y assume-role en la AWS CLI Command Reference.

Tema relacionado:

• CodeDeploy: Deploying from a Development Account to a Production Account

Uso del agente de CodeDeploy para validar unpaquete de implementación en una máquina local

Mediante el agente de CodeDeploy, puede implementar contenido en una instancia a la que estéconectado. Esto le permite probar la integridad del archivo de especificación de la aplicación (AppSpec file)que va a utilizar en una implementación y del contenido que va a implementar.

No necesita crear una aplicación ni un grupo de implementaciones. Si desea implementar contenidoalmacenado en la instancia local, tampoco necesita una cuenta de AWS. Para las pruebas más sencillas,

Versión de API 2014-10-06349

Page 359: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos

puede ejecutar el comando codedeploy-local, sin especificar opciones, en un directorio que contenga elarchivo AppSpec file y el contenido que va a implementar. Existen opciones para otros escenarios deprueba en la herramienta.

Mediante la validación de un paquete de implementación en una máquina local, puede:

• Probar la integridad de una revisión de la aplicación• Probar el contenido de un archivo AppSpec file• Probar CodeDeploy por primera vez con su código de aplicación existente• Implementar contenido rápidamente cuando ya ha iniciado sesión en una instancia

Puede implementar el contenido almacenado en la instancia local o en un tipo de repositorio remotocompatible (buckets de Amazon S3 o repositorios de GitHub públicos).

Requisitos previosAntes de iniciar una implementación local, siga los pasos que se indican a continuación:

• Cree o utilice un tipo de instancia compatible con el agente de CodeDeploy. Para obtener información,consulte Sistemas operativos admitidos por el agente de CodeDeploy (p. 176).

• Instale la versión 1.0.1.1352 o posterior del agente de CodeDeploy. Para obtener información, consulteInstalación del agente de CodeDeploy (p. 187).

• Si va a implementar su contenido desde un bucket de Amazon S3 o un repositorio de GitHub,aprovisione un usuario de IAM para su uso con CodeDeploy. Para obtener información, consulte Paso 1:Aprovisionar un usuario de IAM (p. 37).

• Si va a implementar la revisión de la aplicación desde un bucket de Amazon S3, cree un bucket deAmazon S3 en la región en la que está trabajando y aplique una política de bucket de Amazon S3 albucket. Esta política concede a las instancias los permisos necesarios para descargar la revisión de laaplicación.

Por ejemplo, la siguiente política de bucket de Amazon S3 permite a cualquier instancia Amazon EC2asociada a un perfil de instancia de IAM que contenga el ARN arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo descargar desde cualquier lugar al bucket de Amazon S3 llamadocodedeploydemobucket:

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:role/CodeDeployDemo" ] } } ]}

La siguiente política de bucket de Amazon S3 permite a cualquier instancia on-premises con un usuariode IAM asociado que contenga el ARN arn:aws:iam::80398EXAMPLE:user/CodeDeployUserdescargar desde cualquier lugar al bucket de Amazon S3 denominado codedeploydemobucket:

Versión de API 2014-10-06350

Page 360: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRequisitos previos

{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::codedeploydemobucket/*", "Principal": { "AWS": [ "arn:aws:iam::80398EXAMPLE:user/CodeDeployUser" ] } } ]}

Para obtener información acerca de cómo generar y asociar una política de bucket de Amazon S3,consulte Ejemplos de política de bucket.

• Si va a implementar la revisión de la aplicación desde un bucket de Amazon S3 o un repositorio deGitHub, configure un perfil de instancia de IAM y asócielo a la instancia. Para obtener información,consulte Paso 4: Crear un perfil de instancia de IAM para las instancias Amazon EC2 (p. 44), Creaciónde una instancia Amazon EC2 para CodeDeploy (AWS CLI o consola de Amazon EC2) (p. 212) yCreación de una instancia Amazon EC2 para CodeDeploy (plantilla de AWS CloudFormation) (p. 216).

• Si va a implementar su contenido desde GitHub, cree una cuenta y un repositorio público de GitHub.Para crear una cuenta de GitHub, consulte Join GitHub. Para crear un repositorio de GitHub, consulteCreate a Repo.

Note

Actualmente no se admiten repositorios privados. Si el contenido está almacenado en unrepositorio de GitHub privado, puede descargarlo en la instancia y utilizar la opción --bundle-location para especificar su ruta local.

• Prepare el contenido (incluido un archivo AppSpec) que desea implementar en la instancia y colóqueloen la instancia local, en su bucket de Amazon S3 o en el repositorio de GitHub. Para obtenerinformación, consulte Gestión de revisiones de aplicaciones en CodeDeploy (p. 304).

• Si desea utilizar valores distintos de los predeterminados para otras opciones de configuración,cree el archivo de configuración y colóquelo en la instancia (/etc/codedeploy-agent/conf/codedeployagent.yml para instancias de Amazon Linux, RHEL o Ubuntu Server o C:\ProgramData\Amazon\CodeDeploy\conf.yml para instancias de Windows Server). Para obtenerinformación, consulte Referencia de configuración del agente de CodeDeploy (p. 435).

Note

Si utiliza un archivo de configuración en instancias de Amazon Linux, RHEL o Ubuntu Server,debe:• Usar las variables :root_dir: y :log_dir: para especificar ubicaciones distintas de las

predeterminadas para la carpeta raíz de la implementación y las carpetas del directorio dearchivos log

• Usar sudo para ejecutar comandos del agente de CodeDeploy.

Versión de API 2014-10-06351

Page 361: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de una implementación local

Creación de una implementación localEn la instancia en la que desea crear la implementación local, abra una sesión del terminal (para instanciasde Amazon Linux, RHEL o Ubuntu Server) o un símbolo del sistema (para Windows Server) para ejecutarlos comandos de la herramienta.

Note

El comando codedeploy-local se instala en las siguientes ubicaciones:

• En Amazon Linux, RHEL o Ubuntu Server: /opt/codedeploy-agent/bin.• En Windows Server: C:\ProgramData\Amazon\CodeDeploy\bin.

Sintaxis básica de los comandos

codedeploy-local [options]

Sinopsis

codedeploy-local[--bundle-location <value>][--type <value>][--file-exists-behavior <value>][--deployment-group <value>][--events <comma-separated values>][--agent-configuration-file <value>]

Opciones

-l, --bundle-location

La ubicación del paquete de revisión de la aplicación. Si no especifica una ubicación, la herramienta utilizael directorio en el que está trabajando actualmente de forma predeterminada. Si especifica un valor en --bundle-location, también debe especificar uno en --type.

Ejemplos de formato de ubicación del paquete:

• Instancias locales de Amazon Linux, RHEL o Ubuntu Server: /path/to/local/bundle.tgz• Instancia local de Windows Server: C:/path/to/local/bundle• Bucket de Amazon S3: s3://mybucket/bundle.tar• Repositorio de GitHub: https://github.com/account-name/repository-name/

-t, --type

El formato del paquete de revisión de la aplicación. Los tipos admitidos son tgz, tar, zip y directory.Si no especifica un tipo, la herramienta usa directory de manera predeterminada. Si especifica un valoren --type, también debe especificar uno en --bundle-location.

-b, --file-exists-behavior

Indica cómo se tratan los archivos que ya existen en la ubicación de destino de una implementaciónpero que no forman parte de una implementación anterior realizada correctamente. Las opciones sonDISALLOW, OVERWRITE, RETAIN. Para obtener más información, consulte fileExistsBehavior en la AWSCodeDeploy API Reference.

-g, --deployment-group

Versión de API 2014-10-06352

Page 362: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos

La ruta a la carpeta que es la ubicación de destino del contenido que se va a implementar. Si no especificauna carpeta, la herramienta crea una llamada default-local-deployment-group dentro del directorio raíz dela implementación. Para cada implementación local que cree, la herramienta crea un subdirectorio dentrode esta carpeta con nombres como d-98761234-local.

-e, --events

Un conjunto de enlaces de eventos del ciclo de vida que desea ejecutar en lugar de los eventos quefiguran en el archivo AppSpec file. Se pueden especificar varios enlaces, separados por comas. Puedeutilizar esta opción si:

• Desea ejecutar un conjunto de eventos diferentes sin tener que actualizar el archivo AppSpec file.• Desea ejecutar un único enlace de evento como una excepción al contenido del archivo AppSpec file,

como por ejemplo, ApplicationStop.

Si no especifica los eventos DownloadBundle e Install en la lista de invalidación, estos se ejecutarán antesque todos los enlaces de evento que sí especifique. Si incluye DownloadBundle e Install en la lista deopciones --events, estos deber ir precedidos únicamente de los eventos que se ejecutan normalmenteantes que ellos en las implementaciones de CodeDeploy. Para obtener información, consulte Sección"hooks" de AppSpec (p. 416).

-c, --agent-configuration-file

La ubicación de un archivo de configuración que se utiliza para la implementación, si está almacenado enuna ubicación distinta de la predeterminada. Un archivo de configuración especifica alternativas a otrosvalores y comportamientos predeterminados de una implementación.

De forma predeterminada, los archivos de configuración se almacenan en /etc/codedeploy-agent/conf/codedeployagent.yml (para instancias de Amazon Linux, RHEL o Ubuntu Server) o C:/ProgramData/Amazon/CodeDeploy/conf.yml (para Windows Server). Para obtener más información,consulte Referencia de configuración del agente de CodeDeploy (p. 435).

-h, --help

Muestra un resumen del contenido de ayuda.

-v, --version

Muestra el número de versión de la herramienta.

EjemplosA continuación se proporcionan ejemplos de formatos de comandos válidos.

codedeploy-local

codedeploy-local --bundle-location /path/to/local/bundle/directory

codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group

codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group

Implementar un paquete desde Amazon S3:

Versión de API 2014-10-06353

Page 363: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos

codedeploy-local --bundle-location s3://mybucket/bundle.tgz --type tgz

codedeploy-local --bundle-location s3://mybucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group

Implementar un paquete desde un repositorio de GitHub público:

codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip

codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip

codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip

codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip

Implementar un paquete especificando varios eventos del ciclo de vida:

codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck

Detener una aplicación implementada anteriormente mediante el evento del ciclo de vida ApplicationStop:

codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop

Implementar con un ID de grupo de implementaciones específico:

codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca

codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca

Versión de API 2014-10-06354

Page 364: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioHerramientas automatizadas

Monitorizar implementaciones enCodeDeploy

El monitoreo es una parte importante del mantenimiento de la fiabilidad, la disponibilidad y el desempeñode CodeDeploy y de sus soluciones de AWS. Debe recopilar datos de monitorización de todas las partesde su solución de AWS para que le resulte más sencillo depurar un error que se produce en distintaspartes del código, en caso de que ocurra. No obstante, antes de comenzar a monitorear CodeDeploy, debecrear un plan que incluya respuestas a las siguientes preguntas:

• ¿Cuáles son los objetivos de la monitorización?• ¿Qué recursos va a monitorizar?• ¿Con qué frecuencia va a monitorizar estos recursos?• ¿Qué herramientas de monitorización va a utilizar?• ¿Quién se encargará de realizar las tareas de monitorización?• ¿Quién debería recibir una notificación cuando surjan problemas?

El siguiente paso consiste en establecer un punto de referencia del rendimiento de CodeDeploy normal ensu entorno. Para ello se mide el rendimiento en distintos momentos y bajo distintas condiciones de carga.A medida que monitorice CodeDeploy, almacene los datos de monitorización históricos para que puedacompararlos con los datos actuales de rendimiento, identificar los patrones de rendimiento normal y lasanomalías en el rendimiento, así como desarrollar métodos para la resolución de problemas.

Por ejemplo, si utiliza CodeDeploy, puede monitorizar el estado de las implementaciones y las instanciasde destino. Si fallan las implementaciones o las instancias, puede que tenga que volver a configurarun archivo de especificación de la aplicación, volver a instalar o actualizar el agente de CodeDeploy,actualizar la configuración de una aplicación o grupo de implementaciones o realizar cambios en laconfiguración de la instancia o un archivo AppSpec.

Para establecer un punto de referencia debe, como mínimo, monitorizar los elementos siguientes:

• Eventos y estado de la implementación• Eventos y estado de la instancia

Herramientas de monitorización automatizadasAWS proporciona varias herramientas que puede utilizar para monitorizar CodeDeploy. Puede configuraralgunas de estas herramientas para que monitoricen por usted, pero otras herramientas requierenintervención manual. Le recomendamos que automatice las tareas de monitorización en la medida de loposible.

Puede utilizar las siguientes herramientas de monitoreo automatizado para vigilar CodeDeploy e informarcuando haya algún problema:

• Amazon CloudWatch Alarms (Alarmas de Amazon CloudWatch): observe una sola métrica duranteel periodo que especifique y realice una o varias acciones según el valor de la métrica relativo a undeterminado umbral durante varios periodos de tiempo. La acción es una notificación enviada a un temade Amazon Simple Notification Service (Amazon SNS) o una política de Amazon EC2 Auto Scaling.Las alarmas de CloudWatch no invocan acciones simplemente por tener un estado determinado. Es

Versión de API 2014-10-06355

Page 365: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioHerramientas manuales

necesario que el estado haya cambiado y se mantenga durante un número especificado de períodos.Para obtener más información, consulte Monitorización de implementaciones con herramientas deAmazon CloudWatch (p. 357).

Para obtener información sobre la actualización del rol de servicio para trabajar con la monitorizaciónde alarmas de CloudWatch, consulte Concesión de permisos de CloudWatch a un rol de serviciode CodeDeploy (p. 358). Para obtener información sobre cómo añadir la monitorización dealarmas de CloudWatch sus operaciones de CodeDeploy, consulte Creación de una aplicación conCodeDeploy (p. 270), Creación de un grupo de implementaciones con CodeDeploy (p. 285) o Cambio dela configuración de un grupo de implementaciones con CodeDeploy (p. 299).

• Amazon CloudWatch Logs: monitorice, almacene y obtenga acceso a los archivos de registro desdeAWS CloudTrail o de otros orígenes. Para obtener más información, consulte Monitorización de archivosde registro en la Guía del usuario de Amazon CloudWatch.

Para obtener información sobre el uso de la consola de CloudWatch, para ver los registros deCodeDeploy, consulte Ver registros de CodeDeploy en la consola de CloudWatch Logs.

• Amazon CloudWatch Events: seleccione los eventos y diríjalos a uno o varios flujos o funciones dedestino para realizar cambios, capturar información de estado y aplicar medidas correctivas. Paraobtener más información, consulte ¿Qué es Amazon CloudWatch Events? en la Guía del usuario deAmazon CloudWatch.

Para obtener más información sobre el uso de Eventos de CloudWatch en sus operaciones deCodeDeploy, consulte Monitorización de implementaciones con Amazon CloudWatch Events (p. 359).

• AWS CloudTrail Log Monitoring (Monitorización de registros de &CTlong;): compartir archivos deregistro entre cuentas, monitorizar archivos de registro de CloudTrail en tiempo real mediante su envíoa CloudWatch Logs, escribir aplicaciones de procesamiento de registros en Java y validar que susarchivos de registro no hayan cambiado después de que CloudTrail los entregue. Para obtener másinformación, consulte Trabajar con archivos de registro de CloudTrail en la AWS CloudTrail User Guide.

Para obtener más información sobre el uso de CloudTrail con CodeDeploy, consulte Monitorización deimplementaciones con AWS CloudTrail (p. 361).

• Amazon Simple Notification Service: configure disparadores basados en eventos para recibirnotificaciones por correo electrónico o por SMS sobre los eventos de implementaciones e instancias,como errores u operaciones correctas. Para obtener más información, consulte Creación de un tema y¿Qué es Amazon Simple Notification Service?

Para obtener información sobre cómo configurar notificaciones de Amazon SNS para CodeDeploy,consulte Monitorización de implementaciones con notificaciones de eventos de Amazon SNS (p. 363).

Herramientas de monitorización manualOtra parte importante de la monitorización de CodeDeploy implica la monitorización manual de loselementos que no cubren las alarmas de CloudWatch. Los paneles de la consola de CodeDeploy,CloudWatch y otros de AWS proporcionan una vista rápida del entorno de AWS. Le recomendamos quetambién compruebe los archivos de registro de CodeDeploy deployments.

• La consola de CodeDeploy muestra:• El estado de las implementaciones• La fecha y la hora de cada uno de los últimos intentos de implementación y la última implementación

correcta de una revisión• El número de instancias correctas, erróneas, omitidas o en curso de una implementación• El estado de las instancias on-premise• La fecha y la hora en las que se han registrado o anulado las instancias on-premise

• La página de inicio de CloudWatch muestra:

Versión de API 2014-10-06356

Page 366: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMonitorizar implementaciones con

herramientas de Amazon CloudWatch

• Alarmas y estado actual• Gráficos de alarmas y recursos• Estado de los servicios

Además, puede utilizar CloudWatch para hacer lo siguiente:• Crear paneles personalizados para monitorizar los servicios que le interesan.• Realizar un gráfico con los datos de las métricas para resolver problemas y descubrir tendencias• Buscar y examinar todas sus métricas de recursos de AWS.• Crear y editar las alarmas de notificación de problemas

Temas

• Monitorización de implementaciones con herramientas de Amazon CloudWatch (p. 357)• Monitorización de implementaciones con AWS CloudTrail (p. 361)• Monitorización de implementaciones con notificaciones de eventos de Amazon SNS (p. 363)

Monitorizar implementaciones con herramientas deAmazon CloudWatch

Puede monitorizar CodeDeploy deployments mediante las siguientes herramientas de CloudWatch:Amazon CloudWatch Events, alarmas de CloudWatch y Amazon CloudWatch Logs.

Revisar los registros creados por el agente de CodeDeploy y las implementaciones puede ayudarle asolucionar las causas de los errores de implementación. En lugar de revisar los registros de CodeDeployen una instancia cada vez, puede utilizar CloudWatch Logs para monitorizar todos los registros en unaubicación central.

Para obtener información sobre el uso de la consola de CloudWatch, para ver los registros de CodeDeploy,consulte Ver registros de CodeDeploy en la consola de CloudWatch Logs.

Para obtener información sobre el uso de alarmas de CloudWatch y Eventos de CloudWatch paramonitorizar sus implementaciones de CodeDeploy deployments, consulte los siguientes temas.

Temas• Monitorizar implementaciones con alarmas de CloudWatch en CodeDeploy (p. 357)• Monitorización de implementaciones con Amazon CloudWatch Events (p. 359)

Monitorizar implementaciones con alarmas deCloudWatch en CodeDeployPuede crear una alarma de CloudWatch para una instancia o grupo de Amazon EC2 Auto Scaling queutilice en sus operaciones de CodeDeploy. Una alarma vigila una única métrica durante el periodoespecificado y realiza una o varias acciones en función del valor de la métrica respecto a un umbraldeterminado durante varios períodos de tiempo. Las alarmas de CloudWatch invocan acciones cuando suestado cambia (por ejemplo, de OK a ALARM).

Mediante la funcionalidad de alarma nativa de CloudWatch, puede especificar cualquiera de las accionescompatibles con CloudWatch si falla una instancia que utiliza en una implementación, por ejemplo,enviar una notificación de Amazon SNS o detener, terminar, reiniciar o recuperar una instancia. Parasus operaciones de CodeDeploy, puede configurar un grupo de implementaciones para detener

Versión de API 2014-10-06357

Page 367: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMonitorizar implementaciones con alarmas de CloudWatch

una implementación siempre que se active cualquier alarma de CloudWatch asociada al grupo deimplementaciones.

Puede asociar hasta diez alarmas de CloudWatch con un grupo de implementaciones de CodeDeploy. Sise activa cualquiera de las alarmas especificadas, la implementación se detiene y el estado se actualizaa Stopped. Para utilizar esta opción, debe conceder permisos de CloudWatch a su rol de servicio deCodeDeploy.

Para obtener información acerca de cómo configurar alarmas de CloudWatch en la consola deCloudWatch, consulte Crear alarmas de Amazon CloudWatch en la Guía del usuario de AmazonCloudWatch.

Para obtener información sobre cómo asociar una alarma de CloudWatch con un grupo deimplementaciones en CodeDeploy, consulte Creación de un grupo de implementaciones conCodeDeploy (p. 285) y Cambio de la configuración de un grupo de implementaciones conCodeDeploy (p. 299).

Temas• Concesión de permisos de CloudWatch a un rol de servicio de CodeDeploy (p. 358)

Concesión de permisos de CloudWatch a un rol de servicio deCodeDeployPara poder utilizar la monitorización de alarmas de CloudWatch con sus implementaciones, debe concederpermiso al rol de servicio que utiliza en sus operaciones de CodeDeploy para obtener acceso a losrecursos de CloudWatch.

Para conceder permisos de CloudWatch a un rol de servicio

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

2. En el panel de navegación de la consola de IAM, elija Roles.3. Elija el nombre del rol de servicio que usará en las operaciones de AWS CodeDeploy.4. En la pestaña Permissions, en el área Inline Policies, elija Create Role Policy.

–o bien–

Si el botón Create Role Policy no está disponible, expanda el área Inline Policies y después elija clickhere.

5. En la página Set Permissions, elija Custom Policy y después Select.6. En la página Review Policy, en el campo Policy Name, escriba un nombre que identifique esta política,

como CWAlarms.7. Pegue la siguiente información en el campo Policy Document:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" } ]}

8. Seleccione Apply Policy.

Versión de API 2014-10-06358

Page 368: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMonitorización de implementaciones

con Amazon CloudWatch Events

Monitorización de implementaciones con AmazonCloudWatch EventsPuede utilizar Amazon CloudWatch Events para detectar cambios en el estado de una instancia o unaimplementación (un "evento") en las operaciones de CodeDeploy y reaccionar ante dichos cambios.A continuación, en función de las reglas que se creen, Eventos de CloudWatch invocará una o variasacciones de destino cuando una implementación o una instancia entre en el estado especificado enuna regla. En función del tipo de cambio de estado, es posible que desee enviar notificaciones, capturarinformación de estado, tomar medidas correctivas, iniciar eventos o adoptar otras medidas. Si utilizaEventos de CloudWatch como parte de las operaciones de CodeDeploy, puede seleccionar los siguientestipos de destinos:

• Funciones de AWS Lambda• Flujos de Kinesis• Colas de Amazon SQS• Destinos integrados (acciones de alarma de CloudWatch)• Temas de Amazon SNS

A continuación se indican algunos casos de uso:

• Utilice una función Lambda para pasar una notificación a un canal de Slack siempre que se produzcanerrores en las implementaciones.

• Envíe datos acerca de las implementaciones o instancias a un flujo de Kinesis para permitir unamonitorización completa del estado en tiempo real.

• Utilice acciones de alarma de CloudWatch para detener, terminar, reiniciar o recuperar automáticamenteinstancias Amazon EC2 cuando se produzca el evento de implementación o de instancia especificado.

En las demás secciones de este tema, se describe el procedimiento básico para crear una regla deEventos de CloudWatch para CodeDeploy. No obstante, antes de crear reglas de eventos que utilizará ensus operaciones de CodeDeploy, debe hacer lo siguiente:

• Cumplir los requisitos previos de Eventos de CloudWatch. Para obtener más información, consulteRequisitos previos de Amazon CloudWatch Events.

• Familiarizarse con los eventos, las reglas y los destinos de Eventos de CloudWatch. Para obtener másinformación, consulte ¿Qué es Amazon CloudWatch Events? y la entrada de blog New Eventos deCloudWatch – Track and Respond to Changes to Your AWS Resources.

• Crear el destino o los destinos que se utilizarán en las reglas de eventos.

Para crear una regla de Eventos de CloudWatch para CodeDeploy:

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, seleccione Events.3. Elija Create rule (Crear regla) y, a continuación, en Event selector (Selector de eventos), elija AWS

CodeDeploy.4. Especifique un tipo de detalle:

• Para crear una regla que se aplique a todos los cambios de estado de las instancias y lasimplementaciones, elija Any detail type (Cualquier tipo de detalle) y continúe en el paso 6.

• Para crear una regla que solo se aplique a las instancias, elija Specific detail type (Tipos dedetalles específicos) y, a continuación, seleccione CodeDeploy Instance State-change Notification(Notificación de cambio de estado de instancia de CodeDeploy).

Versión de API 2014-10-06359

Page 369: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMonitorización de implementaciones

con Amazon CloudWatch Events

• Para crear una regla que solo se aplique a las implementaciones, elija Specific detail type (Tiposde detalles específicos) y, a continuación, seleccione CodeDeploy Deployment State-changeNotification (Notificación de cambio de estado de implementación de CodeDeploy).

5. Especifique los cambios de estado a los que se aplica la regla:

• Para crear una regla que se aplique a todos los cambios de estado, elija Any state (Cualquierestado).

• Para crear una regla que se aplique únicamente a algunos cambios de estado, seleccione Specificstate(s) (Estados específicos) y luego elija uno o varios valores de estado de la lista. En la siguientetabla se muestran los valores de estado que puede elegir:

Valores de estado de implementación Valores de estado de instancia

FAILURE

START

STOP

QUEUED

READY

SUCCESS

FAILURE

START

READY

SUCCESS

6. Especifique las aplicaciones de CodeDeploy a las que se aplica la regla:

• Para crear una regla que se aplique a todas las aplicaciones, elija Any application (Cualquieraplicación) y continúe en el paso 8.

• Para crear una regla que se aplique únicamente a una aplicación, seleccione Specific application(Aplicación específica) y luego elija el nombre de la aplicación en la lista.

7. Especifique los grupos de implementaciones a los que se aplica la regla:

• Para crear una regla que se aplique a todos los grupos de implementaciones asociados a laaplicación seleccionada, elija Any deployment group (Cualquier grupo de implementaciones).

• Para crear una regla que se aplique únicamente a uno de los grupos de implementacionesasociados a la aplicación seleccionada, seleccione Specific deployment group(s) (Grupos deimplementaciones específicos) y, a continuación, elija el nombre del grupo de implementaciones enla lista.

8. Revise la configuración de las reglas para asegurarse de que se ajusta a los requisitos demonitorización de eventos.

A continuación se muestra la configuración de una regla de evento que se procesará siempre quese produzca un error en una implementación en cualquier instancia del grupo de implementacionesMyDeploymentFleet de la aplicación denominada MyCodeDeployApp:

Versión de API 2014-10-06360

Page 370: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMonitorización de implementaciones con AWS CloudTrail

9. En el área Targets, seleccione Add target*.10. En la lista Select target type, elija el tipo de destino que haya preparado para usarlo con esta regla y

luego configure las opciones adicionales que requiera dicho tipo.11. Seleccione Configure details.12. En la página Configure rule details (Configurar detalles de la regla), escriba un nombre y la descripción

de la regla, y, a continuación, elija la casilla State (Estado) para habilitar la regla ahora.13. Si está satisfecho con la regla, elija Create rule.

Monitorización de implementaciones con AWSCloudTrail

CodeDeploy está integrado con CloudTrail, un servicio que captura las llamadas a la API realizadaspor o en nombre de CodeDeploy en una cuenta de AWS y envía los archivos de registro al bucket deAmazon S3 que se especifique. CloudTrail captura las llamadas a la API realizadas desde la consolade CodeDeploy, desde los comandos de CodeDeploy emitidos en la AWS CLI o desde las API deCodeDeploy directamente. Con la información recopilada por CloudTrail puede identificar la solicitudque se realizó a CodeDeploy, la dirección IP de origen desde la que se realizó la solicitud, quién realizóla solicitud, cuándo se realizó, etcétera. Para obtener más información sobre CloudTrail, incluido cómoconfigurarlo y habilitarlo, consulte la AWS CloudTrail User Guide.

Información de CodeDeploy en CloudTrailCuando el registro de CloudTrail está habilitado en la cuenta de AWS, las llamadas a las API realizadas alas acciones de CodeDeploy quedan registradas en archivos de registro. Los registros de CodeDeploy se

Versión de API 2014-10-06361

Page 371: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDescripción de las entradas de los

archivos de registro de CodeDeploy

agrupan junto con los registros de otros servicios de AWS en un archivo de registro. CloudTrail determinacuándo se crea un archivo nuevo en función del periodo de tiempo y el tamaño del archivo.

Todas las acciones de CodeDeploy se registran y se documentan en la AWS CodeDeploy CommandLine Reference y en la AWS CodeDeploy API Reference. Todas las llamadas realizadas para crearimplementaciones, eliminar aplicaciones y registrar la revisiones de aplicación, por ejemplo, generanentradas en los archivos de registro de CloudTrail.

Cada entrada de log contiene información sobre quién generó la solicitud. La información de identidaddel usuario que figura en el registro le ayudará a determinar si la solicitud se hizo con credenciales deusuario raíz o de IAM, con credenciales de seguridad temporales para una función o un usuario federado,o mediante otro servicio de AWS. Para obtener más información, consulte el campo userIdentity en laReferencia de eventos de CloudTrail.

Puede guardar los archivos de registro en un bucket durante todo el tiempo que desee, pero tambiénpuede definir reglas de ciclo de vida de Amazon S3 para archivar o eliminar archivos de registroautomáticamente. De forma predeterminada, se usa el cifrado del servidor de Amazon S3 (SSE) para cifrarlos archivos log.

Puede hacer que CloudTrail publique notificaciones de Amazon SNS cuando se entreguen archivos deregistro nuevos. Para obtener más información, consulte Configuración de notificaciones de Amazon SNSpara CloudTrail.

También puede agrupar los archivos de registro de CodeDeploy procedentes de varias regiones de AWS yvarias cuentas de AWS en un solo bucket de Amazon S3. Para obtener más información, consulte Recibirarchivos de registro de CloudTrail de varias regiones.

Descripción de las entradas de los archivos de registrode CodeDeployLos archivos de registro de CloudTrail contienen una o varias entradas de registro, cada una de las cualesestá compuesta por varios eventos con formato JSON. Una entrada de log representa una única solicitudde cualquier origen e incluye información sobre la acción solicitada, los parámetros, la fecha y la horade la acción, etcétera. Las entradas de registro no se muestran en ningún orden concreto. Es decir, norepresentan un rastro de la pila ordenada de las llamadas a API públicas.

En el siguiente ejemplo, se muestra una entrada de registro de CloudTrail que ilustra la acción deCodeDeploy de creación de un grupo de implementaciones:

{ "Records": [{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE:203.0.113.11", "arn": "arn:aws:sts::123456789012:assumed-role/example-role/203.0.113.11", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-27T03:57:36Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::123456789012:role/example-role", "accountId": "123456789012",

Versión de API 2014-10-06362

Page 372: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMonitorización de implementaciones con

notificaciones de eventos de Amazon SNS

"userName": "example-role" } } }, "eventTime": "2014-11-27T03:57:36Z", "eventSource": "codedeploy.amazonaws.com", "eventName": "CreateDeploymentGroup", "awsRegion": "us-west-2", "sourceIPAddress": "203.0.113.11", "userAgent": "example-user-agent-string", "requestParameters": { "applicationName": "ExampleApplication", "serviceRoleArn": "arn:aws:iam::123456789012:role/example-instance-group-role", "deploymentGroupName": "ExampleDeploymentGroup", "ec2TagFilters": [{ "value": "CodeDeployDemo", "type": "KEY_AND_VALUE", "key": "Name" }], "deploymentConfigName": "CodeDeployDefault.HalfAtATime" }, "responseElements": { "deploymentGroupId": "7d64e680-e6f4-4c07-b10a-9e117EXAMPLE" }, "requestID": "86168559-75e9-11e4-8cf8-75d18EXAMPLE", "eventID": "832b82d5-d474-44e8-a51d-093ccEXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, ... additional entries ... ]}

Monitorización de implementaciones connotificaciones de eventos de Amazon SNS

Puede añadir desencadenadores a un grupo de implementaciones de CodeDeploy para recibirnotificaciones acerca de los eventos relacionados con las implementaciones o instancias de ese grupode implementaciones. Estas notificaciones se envían a los destinatarios que están suscritos a un tema deAmazon SNS que forma parte de la acción del desencadenador.

Puede recibir notificaciones de eventos de CodeDeploy en mensajes SMS o de correo electrónico.También puede utilizar de otras formas los datos JSON que se crean cuando se produce unevento determinado, por ejemplo, enviando mensajes a colas de Amazon SQS o invocando unafunción en AWS Lambda. Para conocer la estructura de los datos JSON proporcionados para losdisparadores de implementación e instancia, consulte Formatos de datos JSON de los disparadores deCodeDeploy (p. 372).

Puede optar por utilizar disparadores para recibir notificaciones si:

• Es desarrollador y necesita saber cuándo se detiene o cuándo se produce un error en unaimplementación para que pueda solucionar los problemas.

• Es administrador del sistema y necesita saber en cuántas instancias se producen errores para podermonitorizar el estado de la flota de Amazon EC2.

• Es administrador y que quiere ver rápidamente el número de eventos de implementaciones e instancias;para ello puede usar reglas de filtrado que dirijan los diferentes tipos de notificaciones a carpetas de sucliente de correo electrónico de escritorio.

Versión de API 2014-10-06363

Page 373: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConcesión de permisos de Amazon SNS a un rol de servicio

Puede crear hasta 10 disparadores para cada grupo de implementaciones de CodeDeploy, para cualquierade los siguientes tipos de eventos.

Eventos de implementación Eventos de instancia

• Correcto• Error• Iniciada• Detenida• Reversión• Lista¹• Todos los eventos de implementación

• Correcto• Error• Iniciada• Lista¹• Todos los eventos de instancia

¹Se aplica únicamente a las implementaciones "blue/green" (azul/verde). Indica que la última revisión dela aplicación se ha instalado en las instancias de un entorno de sustitución y que el tráfico del entornooriginal se puede redirigir ahora tras un balanceador de carga. Para obtener más información, consulteTrabajo con implementaciones en CodeDeploy (p. 320).

Temas• Concesión de permisos de Amazon SNS a un rol de servicio de CodeDeploy (p. 364)• Creación de un desencadenador para un evento de CodeDeploy (p. 365)• Edición de un desencadenador en un grupo de implementaciones de CodeDeploy (p. 370)• Eliminación de un desencadenador de un grupo de implementaciones de CodeDeploy (p. 371)• Formatos de datos JSON de los disparadores de CodeDeploy (p. 372)

Concesión de permisos de Amazon SNS a un rol deservicio de CodeDeployPara que sus disparadores puedan generar notificaciones, el rol de servicio que usa en las operaciones deCodeDeploy debe tener permiso de acceso a los recursos de Amazon SNS.

Para conceder permisos de Amazon SNS a un rol de servicio

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

2. En el panel de navegación de la consola de IAM, elija Roles.3. Elija el nombre del rol de servicio que usará en las operaciones de AWS CodeDeploy.4. En la pestaña Permissions, en el área Inline Policies, elija Create Role Policy.

–o bien–

Si el botón Create Role Policy no está disponible, expanda el área Inline Policies y después elija clickhere.

5. En la página Set Permissions, elija Custom Policy y después Select.6. En la página Review Policy (Revisar la política), en el campo Policy Name (Nombre de la política),

introduzca un nombre que identifique esta política, como SNSPublish.7. Pegue la siguiente información en el campo Policy Document:

{ "Version": "2012-10-17",

Versión de API 2014-10-06364

Page 374: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un desencadenadorpara un evento de CodeDeploy

"Statement": [ { "Effect": "Allow", "Action": "sns:Publish", "Resource": "*" } ]}

8. Seleccione Apply Policy (Aplicar política).

Creación de un desencadenador para un evento deCodeDeployPuede crear un desencadenador que publique un tema de Amazon Simple Notification Service (AmazonSNS) para un evento de implementación o de instancia de AWS CodeDeploy. A continuación, cuando seproduce ese evento, todos los suscriptores del tema asociado reciben notificaciones a través del punto deenlace especificado en el tema, como un mensaje SMS o un mensaje de correo electrónico. Amazon SNSofrece varios métodos para suscribirse a los temas.

Antes de crear un disparador, debe configurar el tema de Amazon SNS al que apuntará el disparador. Paraobtener información, consulte Creación de un tema. Cuando cree un tema, recomendamos que le asigneun nombre que identifique su finalidad, con un formato como Topic-group-us-west-3-deploy-failo Topic-group-project-2-instance-stop.

También debe conceder permisos de Amazon SNS a un rol de servicio de CodeDeploy para que sepuedan enviar notificaciones para el desencadenador. Para obtener información, consulte Concesión depermisos de Amazon SNS a un rol de servicio de CodeDeploy (p. 364).

Una vez que haya creado el tema, puede añadir suscriptores. Para obtener información sobre cómo crear,administrar y suscribirse a los temas, consulte ¿Qué es Amazon Simple Notification Service?.

Creación de un desencadenador para enviar notificaciones deeventos de CodeDeploy (consola)Puede utilizar la consola de CodeDeploy para crear desencadenadores para un evento de CodeDeploy. Alfinalizar el proceso de configuración, se envía un mensaje de notificación de prueba para garantizar quetanto los permisos como los detalles de los desencadenadores están configurados correctamente.

Para crear un desencadenador para un evento de CodeDeploy

1. En la Consola de administración de AWS, abra la consola de AWS CodeDeploy.2. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

3. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).4. En la página Applications (Aplicaciones), elija el nombre de la aplicación asociada al grupo de

implementaciones en el que desee añadir un disparador.5. En la página Application details (Detalles de la aplicación), elija el grupo de implementaciones en el

que desee añadir un disparador.6. Elija Edit (Editar).7. Expanda Advanced (Opciones avanzadas) (opcional).

Versión de API 2014-10-06365

Page 375: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un desencadenadorpara un evento de CodeDeploy

8. En el área Triggers (Disparadores), elija Create trigger (Crear disparador).9. En el panel Create deployment trigger (Crear disparador de implementaciones), realice lo siguiente:

a. En Trigger name (Nombre del disparador), introduzca un nombre para el disparador que facilite laidentificación de su finalidad. Recomendamos un formato como Trigger-group-us-west-3-deploy-fail o Trigger-group-eu-central-instance-stop.

b. En Events (Eventos), elija los tipos de evento que desee que disparen el envío de notificacionespor parte del tema de Amazon SNS.

c. En Amazon SNS topics (Temas de Amazon SNS), elija el nombre del tema que ha creado paraenviar notificaciones para este disparador.

d. Elija Create trigger (Crear disparador). CodeDeploy envía una notificación de prueba paraconfirmar que ha configurado correctamente el acceso entre CodeDeploy y el tema de AmazonSNS. En función del tipo de punto de enlace que haya seleccionado para el tema y de si se hasuscrito al tema, recibe un mensaje SMS o de correo electrónico de confirmación.

10. Elija Save changes.

Creación de un disparador para enviar notificaciones de eventosde CodeDeploy (CLI)Puede utilizar la CLI para incluir disparadores al crear un grupo de implementaciones, o bien puede añadirdisparadores a un grupo de implementaciones existente.

Para crear un disparador de envío de notificaciones para un nuevo grupo deimplementaciones

Cree un archivo JSON para configurar el grupo de implementaciones y, a continuación, ejecute el comandocreate-deployment-group con la opción --cli-input-json.

La forma más sencilla de crear el archivo JSON es utilizar la opción --generate-cli-skeleton paraobtener una copia del formato JSON y, a continuación, proporcionar los valores necesarios en un editor detexto sin formato.

1. Ejecute el siguiente comando y, a continuación, copie los resultados en un editor de texto sin formato.

aws deploy create-deployment-group --generate-cli-skeleton

2. Añada al resultado el nombre de una aplicación de CodeDeploy existente:

{ "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ],

Versión de API 2014-10-06366

Page 376: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un desencadenadorpara un evento de CodeDeploy

"autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ]}

3. Proporcione los valores de los parámetros que desea configurar.

Cuando utilice el comando create-deployment-group, debe proporcionar como mínimo los valores delos siguientes parámetros:

• applicationName: el nombre de una aplicación ya creada en su cuenta.• deploymentGroupName: un nombre para el grupo de implementaciones que va a crear.• serviceRoleArn: el ARN de un rol de servicio existente configurado para CodeDeploy

en su cuenta. Para obtener información, consulte Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39).

En la sección triggerConfigurations, proporcione valores para los siguientes parámetros:

• triggerName: el nombre que desea asignar al disparador para que pueda identificarlo fácilmente.Recomendamos un formato como Trigger-group-us-west-3-deploy-fail o Trigger-group-eu-central-instance-stop.

• triggerTargetArn: el ARN del tema de Amazon SNS que ha creado para asociar al disparador,en este formato: arn:aws:sns:us-east-2:80398EXAMPLE:NewTestTopic.

• triggerEvents: el tipo de evento o eventos para los que desea dispararnotificaciones. Puede especificar uno o varios tipos de eventos, separando concomas los distintos nombres de tipo de evento (por ejemplo, "triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]). Cuando añademás de un tipo de evento, las notificaciones de todos esos tipos se envían al tema especificado, enlugar de enviarse a un tema diferente para cada una de ellas. Puede elegir entre los siguientes tiposde evento:• DeploymentStart• DeploymentSuccess• DeploymentFailure• DeploymentStop• DeploymentRollback• DeploymentReady (se aplica únicamente a las instancias de sustitución en una implementación

“blue/green”)• InstanceStart• InstanceSuccess• InstanceFailure• InstanceReady (se aplica únicamente a las instancias de sustitución en una implementación “blue/

green”)

El siguiente ejemplo de configuración crea un grupo de implementaciones denominado dep-group-ghi-789-2 para una aplicación llamada TestApp-us-east-2 y un disparador que provoca el envío

Versión de API 2014-10-06367

Page 377: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un desencadenadorpara un evento de CodeDeploy

de notificaciones siempre que una implementación comience o se realice correctamente o cuando seproduzca un error en ella:

{ "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "deploymentGroupName": "dep-group-ghi-789-2", "ec2TagFilters": [ { "Key": "Name", "Value": "Project-ABC", "Type": "KEY_AND_VALUE" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "triggerConfigurations": [ { "triggerName": "Trigger-group-us-east-2", "triggerTargetArn": "arn:aws:sns:us-east-2:80398EXAMPLE:us-east-deployments", "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ] } ]}

4. Guarde las actualizaciones como un archivo JSON y, a continuación, llame a dicho archivo con laopción --cli-input-json cuando ejecute el comando create-deployment-group:

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

aws deploy create-deployment-group --cli-input-json file://filename.json

Al finalizar el proceso de creación, recibe un mensaje de notificación de prueba que indica que tantolos permisos como los detalles de los disparadores están configurados correctamente.

Para crear un disparador de envío de notificaciones para un grupo deimplementaciones existente

Si desea utilizar la AWS CLI para añadir disparadores de eventos de CodeDeploy a un grupo deimplementaciones, cree un archivo JSON para actualizar el grupo de implementaciones y, a continuación,ejecute el comando update-deployment-group con la opción --cli-input-json.

La forma más sencilla de crear el archivo JSON es ejecutar el comando get-deployment-group paraobtener una copia de la configuración del grupo de implementaciones, en formato JSON y, a continuación,actualizar los valores de los parámetros en un editor de texto sin formato.

1. Ejecute el siguiente comando y, a continuación, copie los resultados en un editor de texto sin formato.

aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group

2. Elimine lo siguiente del resultado:

• Al principio del resultado, elimine { "deploymentGroupInfo":.

Versión de API 2014-10-06368

Page 378: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCreación de un desencadenadorpara un evento de CodeDeploy

• Al final del resultado, elimine }.• Elimine la fila que contiene deploymentGroupId.• Elimine la fila que contiene deploymentGroupName.

El contenido de su archivo de texto debe tener ahora un aspecto similar al siguiente:

{ "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": []}

3. En la sección triggerConfigurations, añada datos para los parámetros triggerEvents,triggerTargetArn y triggerName. Para obtener información acerca de los parámetros deconfiguración de disparadores, consulte TriggerConfig.

El contenido de su archivo de texto debe tener ahora un aspecto similar al siguiente. Este códigoprovoca el envío de notificaciones siempre que una implementación comience o se realicecorrectamente o cuando se produzca un error en ella.

{ "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [ { "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ], "triggerTargetArn": "arn:aws:sns:us-east-2:80398EXAMPLE:us-east-deployments", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": []}

4. Guarde las actualizaciones como un archivo JSON y, a continuación, ejecute el comando update-deployment-group con la opción --cli-input-json. Asegúrese de incluir la opción --current-deployment-group-name y especifique el nombre de su archivo JSON en filename:

Versión de API 2014-10-06369

Page 379: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEdición de un desencadenador

en un grupo de implementaciones

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

Al finalizar el proceso de creación, recibe un mensaje de notificación de prueba que indica que tantolos permisos como los detalles de los disparadores están configurados correctamente.

Edición de un desencadenador en un grupo deimplementaciones de CodeDeploySi sus necesidades de notificación cambian, puede modificar el desencadenador en lugar de crear unonuevo.

Modificación de un desencadenador de CodeDeploy (CLI)Si desea utilizar la CLI de AWS para cambiar los detalles de los desencadenadores de eventos deCodeDeploy cuando actualice un grupo de implementaciones, cree un archivo JSON para definir loscambios en las propiedades del grupo de implementaciones y, a continuación, ejecute el comando update-deployment-group con la opción --cli-input-json.

La forma más sencilla de crear el archivo JSON es ejecutar el comando get-deployment-group paraobtener los detalles del grupo de implementaciones actual en formato JSON y, a continuación, editar losvalores necesarios en un editor de texto sin formato.

1. Ejecute el siguiente comando, sustituyendo application y deployment-group por los nombres desu aplicación y grupo de implementaciones:

aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group

2. Copie los resultados del comando en un editor de texto sin formato y, a continuación, elimine losiguiente:

• Al principio del resultado, elimine { "deploymentGroupInfo":.• Al final del resultado, elimine }.• Elimine la fila que contiene deploymentGroupId.• Elimine la fila que contiene deploymentGroupName.

El contenido de su archivo de texto debe tener ahora un aspecto similar al siguiente:

{ "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "East-1-Instances", "Key": "Name" } ],

Versión de API 2014-10-06370

Page 380: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEliminación de un desencadenadorde un grupo de implementaciones

"triggerConfigurations": [ { "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure", "DeploymentStop" ], "triggerTargetArn": "arn:aws:sns:us-east-2:111222333444:Trigger-group-us-east-2", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": []}

3. Cambie los parámetros según sea necesario. Para obtener información acerca de los parámetros deconfiguración de disparadores, consulte TriggerConfig.

4. Guarde las actualizaciones como un archivo JSON y, a continuación, ejecute el comando update-deployment-group con la opción --cli-input-json. Asegúrese de incluir la opción --current-deployment-group-name y especifique el nombre de su archivo JSON en filename:

Important

Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

Al finalizar el proceso de creación, recibe un mensaje de notificación de prueba que indica que tanto lospermisos como los detalles de los disparadores están configurados correctamente.

Eliminación de un desencadenador de un grupo deimplementaciones de CodeDeployDada la limitación de 10 desencadenadores por grupo de implementaciones, es posible que desee eliminardesencadenadores si ya no se utilizan. No puede deshacer la eliminación de un disparador, pero puedevolver a crearlos.

Eliminación de un disparador de un grupo de implementaciones(consola)1. Sign in to the Consola de administración de AWS and open the CodeDeploy console at https://

console.aws.amazon.com/codedeploy.Note

Inicie sesión con la misma cuenta o información de usuario de IAM que utilizó en Introduccióna CodeDeploy (p. 37).

2. En el panel de navegación, expanda Deploy (Implementar) y después elija Applications (Aplicaciones).3. En la página Applications (Aplicaciones), elija el nombre de la aplicación asociada al grupo de

implementaciones en el que desee eliminar un disparador.4. En la página Application details (Detalles de la aplicación), elija el grupo de implementaciones en el

que desee eliminar un disparador.5. Elija Edit (Editar).

Versión de API 2014-10-06371

Page 381: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioFormatos de datos JSON de los disparadores

6. Expanda Advanced (Opciones avanzadas) (opcional).7. En el área Triggers (Disparadores), elija el disparador que desee eliminar y, a continuación, elija

Delete trigger (Eliminar disparador).8. Elija Save changes.

Eliminación de un disparador de un grupo de implementaciones(CLI)Si desea utilizar la CLI para eliminar un disparador, llame al comando update-deployment-group, con losparámetros de configuración de disparador vacíos, especificando lo siguiente:

• El nombre de la aplicación asociada al grupo de implementaciones. Para ver una lista de nombres deaplicaciones, ejecute el comando list-applications.

• El nombre del grupo de implementaciones asociado a la aplicación. Para ver una lista de los nombres delos grupos de implementaciones, llame al comando list-deployment-groups.

Por ejemplo:

aws deploy update-deployment-group --application-name application-name --current-deployment-group-name deployment-group-name --trigger-configurations

Formatos de datos JSON de los disparadores deCodeDeployPuede utilizar la salida JSON que se crea cuando se activa un disparador para una implementación o unainstancia en un flujo de trabajo de notificación personalizado; por ejemplo, enviar mensajes a colas deAmazon SQS o invocar una función de AWS Lambda.

Note

Esta guía no trata sobre el modo de configurar las notificaciones en JSON. Para obtenerinformación sobre cómo utilizar Amazon SNS para enviar mensajes a las colas de Amazon SQS,consulte Envío de mensajes de Amazon SNS a colas de Amazon SQS. Para obtener informaciónsobre cómo usar Amazon SNS para invocar una función de Lambda, consulte Invocación defunciones Lambda mediante notificaciones de Amazon SNS.

Los siguientes ejemplos muestran la estructura de la salida JSON disponible con los disparadores deCodeDeploy.

Salida JSON de ejemplo para disparadores basados en instancias

{ "region": "us-east-2", "accountId": "111222333444", "eventTriggerName": "trigger-group-us-east-instance-succeeded", "deploymentId": "d-75I7MBT7C", "instanceId": "arn:aws:ec2:us-east-2:444455556666:instance/i-496589f7", "lastUpdatedAt": "1446744207.564", "instanceStatus": "Succeeded", "lifecycleEvents": [ { "LifecycleEvent": "ApplicationStop", "LifecycleEventStatus": "Succeeded", "StartTime": "1446744188.595",

Versión de API 2014-10-06372

Page 382: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioFormatos de datos JSON de los disparadores

"EndTime": "1446744188.711" }, { "LifecycleEvent": "BeforeInstall", "LifecycleEventStatus": "Succeeded", "StartTime": "1446744189.827", "EndTime": "1446744190.402" }//More lifecycle events might be listed here ]}

Salida JSON de ejemplo para disparadores basados en implementaciones

{ "region": "us-west-1", "accountId": "111222333444", "eventTriggerName": "Trigger-group-us-west-3-deploy-failed", "applicationName": "ProductionApp-us-west-3", "deploymentId": "d-75I7MBT7C", "deploymentGroupName": "dep-group-def-456", "createTime": "1446744188.595", "completeTime": "1446744190.402", "deploymentOverview": { "Failed": "10", "InProgress": "0", "Pending": "0", "Skipped": "0", "Succeeded": "0" }, "status": "Failed", "errorInformation": { "ErrorCode": "IAM_ROLE_MISSING", "ErrorMessage": "IAM Role is missing for deployment group: dep-group-def-456" }}

Versión de API 2014-10-06373

Page 383: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioProtección de los datos

Seguridad en AWS CodeDeployLa seguridad en la nube de AWS es la mayor prioridad. Como cliente de AWS, se beneficiará de unaarquitectura de red y un centro de datos diseñados para satisfacer los requisitos de seguridad de lasorganizaciones más exigentes.

La seguridad es una responsabilidad compartida entre AWS y usted. El modelo de responsabilidadcompartida la describe como seguridad de la nube y seguridad en la nube:

• Seguridad de la nube – AWS es responsable de proteger la infraestructura que ejecuta servicios deAWS en la nube de AWS. AWS también proporciona servicios que puede utilizar de forma segura.Auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad en el marcode los programas de conformidad de AWS. Para obtener más información acerca de los programas deconformidad que se aplican a AWS CodeDeploy, consulte Servicios de AWS en el ámbito del programade conformidad.

• Seguridad en la nube: su responsabilidad viene determinada por el servicio de AWS que utilice. Tambiénes responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa yla legislación y los reglamentos aplicables.

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartidacuando se utiliza CodeDeploy. En los siguientes temas, se le mostrará cómo configurar CodeDeploy parasatisfacer sus objetivos de seguridad y conformidad. También puede aprender a utilizar otros servicios deAWS que le ayudan a supervisar y proteger sus recursos de CodeDeploy.

Temas• Protección de los datos en AWS CodeDeploy (p. 374)• Administración de identidades y accesos en AWS CodeDeploy (p. 376)• Registro y monitorización en CodeDeploy (p. 399)• Validación de la conformidad en AWS CodeDeploy (p. 400)• Resiliencia de AWS CodeDeploy (p. 400)• Seguridad de la infraestructura en AWS CodeDeploy (p. 400)

Protección de los datos en AWS CodeDeployAWS CodeDeploy cumple los requisitos del modelo de responsabilidad compartida de AWS, que incluyereglamentos y directrices para la protección de datos. AWS es responsable de proteger la infraestructuraglobal que ejecuta todos los servicios de AWS. AWS mantiene el control de los datos alojados en estainfraestructura, incluidos los controles de configuración de la seguridad para el tratamiento del contenidoy los datos personales de los clientes. Los clientes de AWS y los socios de APN, que actúan comocontroladores o procesadores de datos, son responsables de todos los datos personales que colocan en lanube de AWS.

Para fines de protección de datos, le recomendamos proteger las credenciales de la cuenta de AWS yconfigurar cuentas de usuario individuales con AWS Identity and Access Management (IAM), de modo quea cada usuario se le concedan únicamente los permisos necesarios para llevar a cabo su trabajo. Tambiénle recomendamos proteger sus datos de las siguientes formas:

• Utilice la autenticación multifactor (MFA) con cada cuenta.• Utilice SSL/TLS para comunicarse con los recursos de AWS.

Versión de API 2014-10-06374

Page 384: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioPrivacidad del tráfico entre redes

• Configure la API y el registro de actividad del usuario con AWS CloudTrail.• Utilice las soluciones de cifrado de AWS, junto con todos los controles de seguridad predeterminados en

los servicios de AWS.• Utilice los servicios de seguridad administrados avanzados como, por ejemplo, Amazon Macie, que

ayudan a detectar y proteger los datos personales almacenados en Amazon S3.

Le recomendamos encarecidamente que nunca introduzca información de identificación confidencial,como, por ejemplo, números de cuenta de sus clientes, en los campos de formato libre, como el campoName (Nombre). No debe introducir esta información cuando trabaje con CodeDeploy u otros servicios deAWS a través de la consola, la API, la AWS CLI de AWS o los SDK de AWS. Cualquier dato que escribaen CodeDeploy o en otros servicios se puede incluir en los registros de diagnóstico. Cuando proporcioneuna URL a un servidor externo, no incluya información de credenciales en la URL para validar la solicitudpara ese servidor.

Para obtener más información sobre la protección de datos, consulte la entrada de blog relativa al modelode responsabilidad compartida de AWS y GDPR en el blog de seguridad de AWS.

Privacidad del tráfico entre redesCodeDeploy es un servicio de implementación completamente administrado que admite instanciasEC2, funciones Lambda, Amazon ECS y servidores en las instalaciones. Para las instancias EC2 y losservidores en las instalaciones, un agente basado en host se comunica con CodeDeploy utilizando TLS.

Actualmente, la comunicación entre el agente y el servicio precisa una conexión a Internet saliente paraque el agente pueda comunicarse con los puntos de enlace de servicio de CodeDeploy y Amazon S3públicos. En una nube virtual privada, esto se puede lograr con una gateway de Internet, una conexión deVPN de sitio a sitio a su red corporativa o una conexión directa.

El agente de CodeDeploy es compatible con servidores proxy HTTP.

AWS PrivateLink para CodeDeploy no está disponible actualmente. Si se trata de una función que leinteresa, pida a su equipo de cuentas que abra una solicitud de características del producto en su nombre.

Note

El agente de CodeDeploy solo es necesario si se realiza la implementación en una plataformade computación en Amazon EC2/en las instalaciones. El agente no es necesario para lasimplementaciones que utilizan la plataforma de computación de Amazon ECS o AWS Lambda.

Cifrado en reposoEl código de cliente no se almacena en CodeDeploy. Como servicio de implementación, CodeDeployenvía comandos al agente de CodeDeploy que se ejecuta en instancias EC2 o en servidores en lasinstalaciones. El agente de CodeDeploy ejecuta los comandos mediante TLS. Los datos del modelo deservicio para las implementaciones, la configuración de la implementación, los grupos de implementación,las aplicaciones y las revisiones de aplicaciones se almacenan en Amazon DynamoDB y se cifran enreposo mediante una clave de AWS KMS administrada por Amazon DynamoDB. Para obtener másinformación, consulte Cifrado en reposo de Amazon DynamoDB.

Cifrado en tránsitoEl agente de CodeDeploy inicia todas las comunicaciones con CodeDeploy en el puerto 443. El agentesondea CodeDeploy y escucha un comando. El agente de CodeDeploy es de código abierto. Todas lascomunicaciones de servicio a servicio y de cliente a servicio se cifran en tránsito mediante TLS. Estoprotege los datos del cliente en tránsito entre CodeDeploy y otros servicios como Amazon S3.

Versión de API 2014-10-06375

Page 385: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdministración de claves de cifrado

Administración de claves de cifradoNo hay claves de cifrado para que los clientes administren. Los datos del modelo de servicio deCodeDeploy se cifran mediante una clave de AWS KMS administrada por Amazon DynamoDB.

Administración de identidades y accesos en AWSCodeDeploy

AWS Identity and Access Management (IAM) es un servicio de AWS que ayuda a un administrador acontrolar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quiénpuede ser autenticado (iniciar sesión) y estar autorizado (tener permisos) para utilizar los recursos deCodeDeploy. IAM es un servicio de AWS que se puede utilizar sin costo adicional.

Temas• Público (p. 376)• Autenticación con identidades (p. 376)• Administración de acceso mediante políticas (p. 378)• Funcionamiento de AWS CodeDeploy con IAM (p. 380)• Ejemplos de políticas basadas en identidad de AWS CodeDeploy (p. 383)• Solución de problemas de identidad y acceso en AWS CodeDeploy (p. 391)• Referencia de permisos de CodeDeploy (p. 392)

PúblicoLa forma en que utilice AWS Identity and Access Management (IAM) difiere, en función del trabajo querealice en CodeDeploy.

Usuario de servicio: si utiliza el servicio CodeDeploy para realizar su trabajo, su administrador leproporciona las credenciales y los permisos que necesita. A medida que utilice más características deCodeDeploy para realizar su trabajo, es posible que necesite permisos adicionales. Entender cómo seadministra el acceso puede ayudarle a solicitar los permisos correctos a su administrador. Si no puedeacceder a una característica en CodeDeploy, consulte Solución de problemas de identidad y acceso enAWS CodeDeploy (p. 391).

Administrador de servicio: si está a cargo de los recursos de CodeDeploy en su empresa, probablementetenga acceso completo a CodeDeploy. Su trabajo consiste en determinar qué a características y recursosde CodeDeploy deben acceder sus empleados. A continuación, debe enviar solicitudes a su administradorde IAM para cambiar los permisos de los usuarios de su servicio. Revise la información de esta páginapara conocer los conceptos básicos de IAM. Para obtener más información sobre cómo su empresa puedeutilizar IAM con CodeDeploy, consulte Funcionamiento de AWS CodeDeploy con IAM (p. 380).

Administrator de IAM: si es un administrador de IAM, es posible que quiera conocer información sobrecómo escribir políticas para administrar el acceso a CodeDeploy. Para ver ejemplos de políticas basadasen la identidad de CodeDeploy que puede utilizar en IAM, consulte Ejemplos de políticas basadas enidentidad de AWS CodeDeploy (p. 383).

Autenticación con identidadesLa autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Para obtenermás información acerca del inicio de sesión con la Consola de administración de AWS, consulte Laconsola de IAM y la página de inicio de sesión en la Guía del usuario de IAM.

Versión de API 2014-10-06376

Page 386: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAutenticación con identidades

Debe estar autenticado (haber iniciado sesión en AWS) como Usuario de la cuenta raíz de AWS, usuariode IAM o asumiendo un rol de IAM. También puede utilizar la autenticación de inicio de sesión único desu empresa o incluso iniciar sesión con Google o Facebook. En estos casos, su administrador habráconfigurado previamente la federación de identidad mediante roles de IAM. Cuando obtiene acceso a AWSmediante credenciales de otra empresa, asume un rol indirectamente.

Para iniciar sesión directamente en la Consola de administración de AWS, use su contraseña con sucorreo electrónico usuario raíz o su nombre de usuario de IAM. Puede obtener acceso a AWS medianteprogramación utilizando sus claves de acceso usuario raíz o de usuario de IAM. AWS proporciona SDK yherramientas de línea de comandos para firmar criptográficamente su solicitud con sus credenciales. Si noutiliza las herramientas de AWS, debe firmar usted mismo la solicitud. Para ello, utilice Signature Version4, un protocolo para autenticar solicitudes de API de entrada. Para obtener más información acerca de laautenticación de solicitudes, consulte Proceso de firma Signature Version 4 en la AWS General Reference.

Independientemente del método de autenticación que utilice, es posible que también deba proporcionarinformación de seguridad adicional. Por ejemplo, AWS le recomienda el uso de la autenticación multifactor(MFA) para aumentar la seguridad de su cuenta. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) en AWS en la Guía del usuario de IAM.

Usuario raíz de la cuenta de AWSCuando se crea por primera vez una cuenta de AWS, se comienza con una única identidad de inicio desesión que tiene acceso completo a todos los servicios y recursos de AWS de la cuenta. Esta identidadrecibe el nombre de AWS de la cuenta de usuario raíz y se obtiene acceso a ella iniciando sesión con ladirección de correo electrónico y la contraseña que utilizó para crear la cuenta. Le recomendamos queno utilice usuario raíz en sus tareas cotidianas, ni siquiera en las tareas administrativas. En lugar de ello,es mejor ceñirse a la práctica recomendada de utilizar exclusivamente usuario raíz para crear el primerusuario de IAM. A continuación, guarde las credenciales de usuario raíz en un lugar seguro y utilícelasúnicamente para algunas tareas de administración de cuentas y servicios.

Usuarios y grupos de IAMUn usuario de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos para unasola persona o aplicación. Un usuario de IAM puede tener credenciales a largo plazo, como un nombrede usuario y una contraseña o un conjunto de claves de acceso. Para obtener más información acerca decómo generar claves de acceso, consulte Administración de las claves de acceso de los usuarios de IAMen la Guía del usuario de IAM. Al generar claves de acceso para un usuario de IAM, asegúrese de ver yguardar de forma segura el par de claves. No puede recuperar la clave de acceso secreta en el futuro. Ensu lugar, debe generar un nuevo par de claves de acceso.

Un grupo de IAM es una identidad que especifica un conjunto de usuarios de IAM. No puede iniciar sesióncomo grupo. Puede usar los grupos para especificar permisos para varios usuarios a la vez. Los gruposfacilitan la administración de los permisos de grandes conjuntos de usuarios. Por ejemplo, podría tener ungrupo cuyo nombre fuese Administradores de IAM y conceder permisos a dicho grupo para administrar losrecursos de IAM.

Los usuarios son diferentes de los roles. Un usuario se asocia exclusivamente a una persona o aplicación,pero la intención es que cualquier usuario pueda asumir un rol que necesite. Los usuarios tienencredenciales permanentes a largo plazo y los roles proporcionan credenciales temporales. Para obtenermás información, consulte Cuándo crear un usuario de IAM (en lugar de un rol) en la Guía del usuario deIAM.

Roles de IAMUn rol de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos. Es similar aun usuario de IAM, pero no está asociado a una determinada persona. Puede asumir temporalmente unrol de IAM en la Consola de administración de AWS cambiando de roles. Puede asumir un rol llamandoa una operación de la AWS CLI o de la API de AWS, o utilizando una URL personalizada. Para obtener

Versión de API 2014-10-06377

Page 387: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdministración de acceso mediante políticas

más información acerca de los métodos para el uso de roles, consulte Uso de roles de IAM en la Guía delusuario de IAM.

Los roles de IAM con credenciales temporales son útiles en las siguientes situaciones:

• Permisos de usuario temporales de IAM: un usuario de IAM puede asumir un rol de IAM para recibirtemporalmente permisos distintos que le permitan realizar una tarea concreta.

• Acceso de usuario federado: En lugar de crear un usuario de IAM, puede utilizar identidades existentesde AWS Directory Service, del directorio de usuarios de la empresa o de un proveedor de identidadesweb. A estas identidades se les llama usuarios federados. AWS asigna una función a un usuariofederado cuando se solicita acceso a través de un proveedor de identidad. Para obtener másinformación acerca de los usuarios federados, consulte Usuarios federados y roles en la Guía delusuario de IAM.

• Acceso entre cuentas: puede utilizar un rol de IAM para permitir que alguien (una entidad principal deconfianza) de otra cuenta obtenga acceso a los recursos de su cuenta. Los roles son la forma principalde conceder acceso entre cuentas. Sin embargo, con algunos servicios de AWS, puede asociar unapolítica directamente a un recurso (en lugar de utilizar un rol como proxy). Para obtener informaciónacerca de la diferencia entre los roles y las políticas basadas en recursos para el acceso entre cuentas,consulte Cómo los roles de IAM difieren de las políticas basadas en recursos en la Guía del usuario deIAM.

• Acceso a servicios de AWS: Un rol de servicio es un rol de IAM que un servicio asume para realizaracciones en su cuenta en su nombre. Al configurar algunos de los entornos de los servicios de AWS,debe definir un rol que el servicio asumirá. Este rol de servicio debe incluir todos los permisos queson necesarios para que el servicio pueda acceder a los recursos de AWS que necesita. Los roles deservicio varían de servicio a servicio, pero muchos le permiten elegir sus permisos, siempre y cuandose cumplan los requisitos documentados para dicho servicio. Los roles de servicio ofrecen acceso solodentro de su cuenta y no se pueden utilizar para otorgar acceso a servicios en otras cuentas. Puedecrear, modificar y eliminar un rol de servicio desde IAM. Por ejemplo, puede crear un rol que permitaa Amazon Redshift tener acceso a un bucket de Amazon S3 en su nombre y, a continuación, cargarlos datos de ese bucket en un clúster de Amazon Redshift. Para obtener más información, consulteCreación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario de IAM.

• Aplicaciones que se ejecutan en Amazon EC2: Puede utilizar un rol de IAM para administrarcredenciales temporales para las aplicaciones que se ejecutan en una instancia EC2 y realizansolicitudes de la AWS CLI o la API de AWS. Es preferible hacerlo de este modo a almacenar claves deacceso en la instancia EC2. Para asignar un rol de AWS a una instancia EC2 y ponerla a disposición detodas las aplicaciones, cree un perfil de instancia asociado a la misma. Un perfil de instancia contiene elrol y permite a los programas que se ejecutan en la instancia EC2 obtener credenciales temporales. Paraobtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que seejecutan en instancias Amazon EC2 en la Guía del usuario de IAM.

Para obtener información acerca del uso de los roles de IAM, consulte Cuándo crear un rol de IAM (en vezde un usuario) en la Guía del usuario de IAM.

Administración de acceso mediante políticasPara controlar el acceso en AWS, se crean políticas y se asocian a identidades de IAM o recursos deAWS. Una política es un objeto de AWS que, cuando se asocia a una identidad o un recurso, definesus permisos. AWS evalúa estas políticas cuando una entidad principal (usuario raíz, usuario de IAM orol de IAM) realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o sedeniega. Las mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtenermás información acerca de la estructura y el contenido de los documentos de política JSON, consulteInformación general de las políticas de JSON en la Guía del usuario de IAM.

Un administrador de IAM puede utilizar las políticas para especificar quién tiene acceso a los recursos deAWS y qué acciones se pueden realizar en dichos recursos. Cada entidad de IAM (usuario o rol) comienza

Versión de API 2014-10-06378

Page 388: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAdministración de acceso mediante políticas

sin permisos. En otras palabras, de forma predeterminada, los usuarios no pueden hacer nada, ni siquieracambiar sus propias contraseñas. Para conceder permiso a un usuario para hacer algo, el administradordebe asociarle una política de permisos. O bien el administrador puede añadir al usuario a un grupo quetenga los permisos necesarios. Cuando el administrador concede permisos a un grupo, todos los usuariosde ese grupo obtienen los permisos.

Las políticas de IAM definen permisos para una acción independientemente del método que se utilicepara realizar la operación. Por ejemplo, suponga que dispone de una política que permite la accióniam:GetRole. Un usuario con dicha política puede obtener información del usuario de la Consola deadministración de AWS, la AWS CLI o la API de AWS.

Políticas basadas en la identidadLas políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociara una identidad, como por ejemplo un usuario, un rol o un grupo de IAM. Estas políticas controlan quéacciones puede realizar dicha identidad, en qué recursos y en qué condiciones. Para obtener másinformación acerca de cómo crear una política basada en identidad, consulte Creación de políticas de IAMen la Guía del usuario de IAM.

Las políticas basadas en identidad pueden clasificarse además como políticas insertadas o políticasadministradas. Las políticas insertadas se integran directamente en un único usuario, grupo o rol. Laspolíticas administradas son políticas independientes que puede asociar a varios usuarios, grupos y rolesde su cuenta de AWS. Las políticas administradas incluyen las políticas administradas por AWS y laspolíticas administradas por el cliente. Para obtener más información acerca de cómo elegir una políticaadministrada o una política insertada, consulte Elegir entre políticas administradas y políticas insertadas enla Guía del usuario de IAM.

Otros tipos de políticasAWS admite otros tipos de políticas menos frecuentes. Estos tipos de políticas pueden establecer elmáximo de permisos que los tipos de políticas más frecuentes le otorgan.

• Límites de permisos: un límite de permisos es una característica avanzada que le permite definir lospermisos máximos que una política basada en identidad puede conceder a una entidad de IAM (usuarioo rol de IAM). Puede establecer un límite de permisos para una identidad. Los permisos resultantes sonla intersección de las políticas basadas en identidades de la entidad y los límites de sus permisos. Laspolíticas basadas en recursos que especifiquen el usuario o rol en el campo Principal no estaránrestringidas por el límite de permisos. Una denegación explícita en cualquiera de estas políticas anularáel permiso. Para obtener más información acerca de los límites de permisos, consulte see Límites depermisos para las entidades de IAM en la Guía del usuario de IAM.

• Políticas de control de servicios (SCP): las SCP son políticas de JSON que especifican los permisosmáximos para una organización o unidad organizativa (OU) en AWS Organizations. AWS Organizationses un servicio que le permite agrupar y administrar de forma centralizada varias cuentas de AWSque posee su negocio. Si habilita todas las funciones en una organización, entonces podrá aplicarpolíticas de control de servicio (SCP) a una o todas sus cuentas. Una SCP limita los permisos para lasentidades de las cuentas de miembros, incluido cada Usuario de la cuenta raíz de AWS. Para obtenermás información acerca de Organizaciones y las SCP, consulte Funcionamiento de las SCP en la Guíadel usuario de AWS Organizations.

• Políticas de sesión: las políticas de sesión son políticas avanzadas que se pasan como parámetrocuando se crea una sesión temporal mediante programación para un rol o un usuario federado. Lospermisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y laspolíticas de la sesión. Los permisos también pueden proceder de una política basada en recursos. Unadenegación explícita en cualquiera de estas políticas anulará el permiso. Para obtener más información,consulte Políticas de sesión en la Guía del usuario de IAM.

Versión de API 2014-10-06379

Page 389: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioFuncionamiento de AWS CodeDeploy con IAM

Varios tipos de políticasCuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicadosde entender. Para obtener información acerca de cómo AWS determina si permitir una solicitud cuandohay varios tipos de políticas implicados, consulte Lógica de evaluación de políticas en la Guía del usuariode IAM.

Funcionamiento de AWS CodeDeploy con IAMAntes de utilizar IAM para administrar el acceso a CodeDeploy, debe saber qué características de IAMestán disponibles para usarse con CodeDeploy. Para obtener más información, consulte Servicios de AWSque funcionan con IAM en la Guía del usuario de IAM.

Temas• Políticas basadas en identidad de CodeDeploy (p. 380)• Políticas basadas en recursos de CodeDeploy (p. 382)• Autorización basada en etiquetas de CodeDeploy (p. 382)• Roles de IAM de CodeDeploy (p. 382)

Políticas basadas en identidad de CodeDeployCon las políticas basadas en identidades de IAM, puede especificar las acciones permitidas o denegadas,así como los recursos y las condiciones en las que se permiten o deniegan las acciones. CodeDeployadmite acciones, recursos y claves de condiciones. Para obtener más información acerca de los elementosque utiliza en una política de JSON, consulte Referencia de los elementos de las políticas de JSON de IAMen la Guía del usuario de IAM.

Actions

El elemento Action de una política basada en la identidad de IAM describe la acción o las accionesespecíficas que la política permitirá o denegará. Las acciones de la política generalmente tienen el mismonombre que la operación de API de AWS asociada. La acción se utiliza en una política para otorgarpermisos para realizar la operación asociada.

Las acciones de políticas en CodeDeploy utilizan el prefijo codedeploy: antes de la acción. Por ejemplo,el permiso codedeploy:GetApplication concede al usuario permiso para realizar la operaciónGetApplication. Las instrucciones de política deben incluir un elemento NotAction o Action.CodeDeploy define su propio conjunto de acciones que describen las tareas que se pueden realizar coneste servicio.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

"Action": [ "codedeploy:action1", "codedeploy:action2"

Puede utilizar caracteres comodín para especificar varias acciones (*). Por ejemplo, incluya la acciónsiguiente para especificar todas las acciones que comiencen por la palabra Describe:

"Action": "ec2:Describe*"

Para obtener una lista de acciones de CodeDeploy, consulte Actions Defined by AWS CodeDeploy en laGuía del usuario de IAM.

Versión de API 2014-10-06380

Page 390: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioFuncionamiento de AWS CodeDeploy con IAM

Para ver una tabla con todas las acciones de la API CodeDeploy y los recursos a los que se aplican,consulte Referencia de permisos de CodeDeploy (p. 392).

Recursos.

El elemento Resource especifica el objeto u objetos a los que se aplica la acción. Las instrucciones debencontener un elemento Resource o NotResource. Especifique un recurso con un ARN o el caráctercomodín (*) para indicar que la instrucción se aplica a todos los recursos.

.

Por ejemplo, puede indicar un grupo de implementaciones (myDeploymentGroup) en su instrucciónutilizando su ARN del modo siguiente:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup/myDeploymentGroup"

También puede especificar todo deployment groups que pertenezca a una cuenta mediante el caráctercomodín (*) del modo siguiente:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup/*"

Para especificar todos los recursos, o si una acción de API no admite ARN, utilice el carácter comodín (*)en el elemento Resource de la siguiente manera:

"Resource": "*"

Algunas acciones de API de CodeDeploy aceptan varios recursos (por ejemplo,BatchGetDeploymentGroups). Para especificar varios recursos en una única instrucción, separe susARN con comas, tal y como se indica a continuación:

"Resource": ["arn1", "arn2"]

CodeDeploy proporciona un conjunto de operaciones para trabajar con los recursos de CodeDeploy. Paraver la lista de las operaciones disponibles, consulte Referencia de permisos de CodeDeploy (p. 392).

Para obtener una lista de tipos de recursos de CodeDeploy y sus ARN, consulte Resources Defined byAWS CodeDeploy en la Guía del usuario de IAM. Para obtener información sobre las acciones en las quepuede especificar el ARN de cada recurso, consulte Actions Defined by AWS CodeDeploy.

Recursos y operaciones de CodeDeploy

En CodeDeploy, el recurso principal es deployment group. En una política, se usa un nombre de recursode Amazon (ARN) para identificar el recurso al que se aplica la política. CodeDeploy es compatible conotros recursos que se pueden usar con deployment groups, como aplicaciones, configuraciones deimplementación e instancias. Estos elementos se denominan subrecursos. Estos recursos y subrecursostienen ARN únicos asociados a ellos. Para obtener más información, consulte Nombres de recurso deAmazon (ARN) en la Referencia general de Amazon Web Services.

Tipo de recurso Formato de ARN

Grupo deimplementaciones

arn:aws:codedeploy:region:account-id:deploymentgroup/deployment-group-name

Aplicación arn:aws:codedeploy:region:account-id:application/application-name

Versión de API 2014-10-06381

Page 391: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioFuncionamiento de AWS CodeDeploy con IAM

Tipo de recurso Formato de ARN

Configuración deimplementación

arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

Instancia arn:aws:codedeploy:region:account-id:instance/instance-ID

Todos los recursos deCodeDeploy

arn:aws:codedeploy:*

Todos los recursosde CodeDeploy quepertenecen a la cuentaespecificada en la regiónindicada

arn:aws:codedeploy:region:account-id:*

Note

La mayoría de los servicios de AWS tratan el carácter de dos puntos (:) o la barra diagonal (/)como el mismo carácter en los ARN. Sin embargo, CodeDeploy utiliza una coincidencia exactaen las reglas y los patrones de recursos. Asegúrese de utilizar los caracteres de ARN correctoscuando cree patrones de eventos para que coincidan con la sintaxis de ARN en el recurso.

Claves de condición

CodeDeploy no proporciona ninguna clave de condición específica del servicio, pero admite el uso dealgunas claves de condición globales. Para obtener más información, consulte Claves de contexto decondición globales de AWS en la Guía del usuario de IAM.

Ejemplos

Para ver ejemplos de políticas basadas en identidad de CodeDeploy, consulte Ejemplos de políticasbasadas en identidad de AWS CodeDeploy (p. 383).

Políticas basadas en recursos de CodeDeployCodeDeploy no admite las políticas basadas en recursos. Para ver un ejemplo de una página detallada depolíticas basadas en recursos, consulte Uso de políticas basadas en recursos para AWS Lambda.

Autorización basada en etiquetas de CodeDeploy.

CodeDeploy no admite el etiquetado de recursos o el control de acceso basado en etiquetas.

Roles de IAM de CodeDeployUn rol de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos.

Uso de credenciales temporales con CodeDeploy

Puede utilizar credenciales temporales para iniciar sesión con federación, asumir un rol de IAM o asumir unrol de acceso entre cuentas. Las credenciales de seguridad temporales se obtienen mediante una llamadaa operaciones de la API de AWS STS, como AssumeRole o GetFederationToken.

Versión de API 2014-10-06382

Page 392: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

CodeDeploy admite el uso de credenciales temporales.

Roles vinculados a servicios

CodeDeploy no admite roles vinculados a servicios.

Roles de servicio

Esta característica permite que un servicio asuma un rol de servicio en nombre de usted. Este rol permiteque el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre.Los roles de servicio aparecen en su cuenta de IAM y son propiedad de la cuenta. Esto significa que unadministrador de IAM puede cambiar los permisos de este rol. Sin embargo, hacerlo podría deteriorar lafuncionalidad del servicio.

CodeDeploy admite roles de servicio.

Selección de un rol de IAM en CodeDeploy

Cuando se crea un recurso de grupo de implementación en CodeDeploy, debe elegir un rol para permitir elacceso de CodeDeploy a Amazon EC2 en su nombre. Si ha creado previamente un rol de servicio o un rolvinculado a servicios, CodeDeploy le proporciona una lista de roles para elegir. Es importante seleccionarun rol que permita el acceso para iniciar y detener una instancia EC2.

Ejemplos de políticas basadas en identidad de AWSCodeDeployDe forma predeterminada, los usuarios y roles de IAM no tienen permiso para crear, ver ni modificarrecursos de CodeDeploy. Tampoco pueden realizar tareas mediante la Consola de administración deAWS, la AWS CLI, o la API de AWS. Un administrador de IAM debe crear políticas de IAM que concedanpermisos a los usuarios y a los roles para realizar operaciones de la API en los recursos especificados quenecesiten. El administrador debe asociar a continuación esas políticas a los usuarios o grupos de IAM quenecesiten esos permisos.

Para obtener más información acerca de cómo crear una política basada en identidad de IAM con estosdocumentos de políticas de JSON de ejemplo, consulte Creación de políticas en la pestaña JSON en laGuía del usuario de IAM.

En CodeDeploy, las políticas basadas en identidad se utilizan para administrar los permisos a los distintosrecursos relacionados con el proceso de implementación. Puede controlar el acceso a los siguientes tiposde recurso:

• Aplicaciones y revisiones de aplicación.• Implementaciones• Configuraciones de implementación.• Instancias e instancias en las instalaciones

Las capacidades controladas por políticas de recursos varían en función del tipo de recurso, tal y como sedescribe en la siguiente tabla:

Tipos de recurso Capacidades

Todos Ver y enumerar detalles de recursos

Versión de API 2014-10-06383

Page 393: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

Tipos de recurso Capacidades

Aplicaciones

Configuraciones de implementación

Grupos de implementaciones

Crear recursos

Eliminar recursos

Implementaciones Crear implementaciones

Detener implementaciones

Revisiones de aplicaciones Registrar revisiones de aplicación

Aplicaciones

Grupos de implementaciones

Actualizar recursos

Instancias on-premises Añadir etiquetas a instancias

Eliminar etiquetas de instancias

Registrar instancias

Cancelar el registro de instancias

El siguiente ejemplo muestra una política de permisos que permite a un usuario eliminar el grupode implementaciones denominado WordPress_DepGroup asociado a la aplicación denominadaWordPress_App en la región us-west-2.

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:DeleteDeploymentGroup" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:deploymentgroup:WordPress_App/WordPress_DepGroup" ] } ]}

Temas• Políticas administradas (predefinidas) de AWS para CodeDeploy (p. 384)• Ejemplos de políticas administradas por los clientes (p. 387)• Prácticas recomendadas relativas a políticas (p. 389)• Uso de la consola de CodeDeploy (p. 390)• Permitir a los usuarios ver sus propios permisos (p. 390)

Políticas administradas (predefinidas) de AWS para CodeDeployAWS aborda muchos casos de uso comunes proporcionando políticas de IAM independientes creadas yadministradas por AWS. Estas políticas administradas por AWS conceden los permisos necesarios para

Versión de API 2014-10-06384

Page 394: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

casos de uso común, lo que le evita tener que investigar qué permisos se necesitan. Para obtener másinformación, consulte Políticas administradas de AWS en la Guía del usuario de IAM.

Las siguientes políticas administradas por AWS, que puede asociar a los usuarios de su cuenta, sonespecíficas de CodeDeploy:

• AWSCodeDeployFullAccess: concede acceso completo a CodeDeploy.

Note

AWSCodeDeployFullAccess no concede permisos a operaciones de otros servicios necesariospara implementar las aplicaciones, como, por ejemplo, Amazon EC2 y Amazon S3; únicamentelos concede a operaciones específicas de CodeDeploy.

• AWSCodeDeployDeployerAccess: concede acceso a un usuario de IAM para registrar e implementarrevisiones.

 • AWSCodeDeployReadOnlyAccess: concede acceso de solo lectura a CodeDeploy.

 • AWSCodeDeployRole: permite a CodeDeploy identificar instancias EC2 a través de sus etiquetas

de Amazon EC2 o nombres de grupo de Amazon EC2 Auto Scaling, identificar instancias en lasinstalaciones a través de sus etiquetas de instancia en las instalaciones e implementar revisiones deaplicación en dichas instancias según corresponda. También concede los permisos necesarios parapublicar notificaciones en un tema de Amazon SNS y para recuperar información acerca de alarmasdesde CloudWatch.

 • AWSCodeDeployRoleForLambda: concede permiso a CodeDeploy para acceder a AWS Lambda y a

cualquier otro recurso necesario para una implementación.

 • AWSCodeDeployRoleForECS: concede permiso a CodeDeploy para acceder a Amazon ECS y a

cualquier otro recurso necesario para una implementación.

 • AWSCodeDeployRoleForECSLimited: concede permiso a CodeDeploy para acceder a Amazon ECS

y a cualquier otro recurso necesario para una implementación con las siguientes excepciones:• En la sección hooks del AppSpec file, solo se pueden utilizar funciones Lambda que empiecen porCodeDeployHook_. Para obtener más información, consulte Sección "hooks" de AppSpec para unaimplementación de Amazon ECS (p. 416).

• El acceso del bucket de S3 se limita a buckets de S3 con una etiqueta de registro,UseWithCodeDeploy, que tiene un valor de true. Para obtener más información, consulteEtiquetado de objetos.

Los permisos de algunos aspectos del proceso de implementación se conceden a otros dos tipos de rolque actúan en nombre de CodeDeploy, en lugar de a los usuarios de IAM:

• Perfil de instancia de IAM: un rol de IAM que asocia a sus instancias Amazon EC2. Este perfil incluye lospermisos necesarios para obtener acceso a los buckets de Amazon S3 o a los repositorios de GitHub enlos que se almacenan las aplicaciones. Para obtener más información, consulte Paso 4: Crear un perfilde instancia de IAM para las instancias Amazon EC2 (p. 44).

• Rol de servicio: un rol de IAM que concede permisos a un servicio de AWS para que tenga acceso alos recursos de AWS. Las políticas que adjunte al rol de servicio determinarán a qué recursos de AWStendrá acceso el servicio y qué acciones puede efectuar con esos recursos. En CodeDeploy, un rol deservicio se utiliza para lo siguiente:

Versión de API 2014-10-06385

Page 395: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

• Para leer cualquiera de las etiquetas aplicadas a las instancias o los nombres de grupo de AmazonEC2 Auto Scaling asociados a las instancias. Esto habilita a CodeDeploy para identificar las instanciasen las que puede implementar las aplicaciones.

• Para llevar a cabo operaciones en las instancias, los grupos de Amazon EC2 Auto Scaling y losbalanceadores de carga de Elastic Load Balancing.

• Para publicar información en los temas de Amazon SNS de manera que se puedan enviarnotificaciones cuando tenga lugar el evento de instancia o la implementación especificados.

• Para recuperar información sobre las alarmas de CloudWatch con el fin de configurar la monitorizaciónde alarmas para las implementaciones.

Para obtener más información, consulte Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).

También puede crear políticas de IAM personalizadas para conceder permisos para acciones y recursosde CodeDeploy. Puede asociar estas políticas personalizadas a los usuarios o grupos de IAM querequieran dichos permisos.

Políticas administradas y notificaciones de CodeDeployCodeDeploy admite notificaciones para que los usuarios conozcan los cambios importantes endeployments. Políticas administradas para CodeDeploy incluidas las instrucciones de la política para lafuncionalidad de notificación. Para obtener más información, consulte ¿Qué son las notificaciones?

Permisos para notificaciones en políticas administradas de acceso total

La directiva administrada AWSCodeDeployFullAccess incluye las siguientes instrucciones para permitirel acceso completo a las notificaciones. Los usuarios con una de estas políticas administradas aplicadastambién pueden crear y administrar temas Amazon SNS para notificaciones, suscribir y cancelar lasuscripción a los temas y enumerar temas para elegir como destinos para las reglas de notificación.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [

Versión de API 2014-10-06386

Page 396: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

"sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }

Permisos para notificaciones en políticas administradas de solo lectura

La política administrada AWSCodeDeployReadOnlyAccess incluye las siguientes instrucciones parapermitir el acceso de solo lectura a las notificaciones. Los usuarios con esta política administrada aplicadapueden ver notificaciones de recursos, pero no pueden crearlas, administrarlas ni suscribirse a ellas.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules" ], "Resource": "*" }

Para obtener más información, consulte Identity and Access Management para AWS CodeStarNotifications.

Ejemplos de políticas administradas por los clientesEn esta sección, encontrará ejemplos de políticas de usuario que conceden permisos para diversasacciones de CodeDeploy. Estas políticas funcionan cuando se utiliza la API de CodeDeploy, los SDK deAWS o la AWS CLI. Debe conceder permisos adicionales para las acciones que realice en la consola.Para obtener más información sobre cómo conceder permisos de consola, consulte Uso de la consola deCodeDeploy (p. 390) .

Note

Todos los ejemplos utilizan Región EE.UU. Oeste (Oregón) (us-west-2) y tienen ID de cuentaficticios.

Ejemplos

• Ejemplo 1: Permitir a un usuario realizar operaciones de CodeDeploy en una única región (p. 388)

Versión de API 2014-10-06387

Page 397: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

• Ejemplo 2: permitir a un usuario registrar revisiones para una única aplicación (p. 388)• Ejemplo 3: permitir a un usuario crear implementaciones para un único grupo de

implementaciones (p. 388)

Ejemplo 1: Permitir a un usuario realizar operaciones de CodeDeploy en unaúnica región

En el siguiente ejemplo se conceden permisos para realizar operaciones de CodeDeploy solo en la regiónus-west-2:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:*" ] } ]}

Ejemplo 2: permitir a un usuario registrar revisiones para una única aplicación

En el siguiente ejemplo se conceden permisos para registrar revisiones de aplicación para todas lasaplicaciones que comienzan por Test en la región us-west-2:

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:RegisterApplicationRevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:application:Test*" ] } ]}

Ejemplo 3: permitir a un usuario crear implementaciones para un único grupo deimplementaciones

En el siguiente ejemplo se permite al usuario especificado crear las implementaciones parael grupo de implementaciones denominado WordPress_DepGroup asociado a la aplicacióndenominada WordPress_App, la configuración de implementación personalizada denominadaThreeQuartersHealthy y cualquier revisión de aplicación asociada a la aplicación denominadaWordPress_App. Todos estos recursos se encuentran en la región us-west-2.

{ "Version": "2012-10-17", "Statement" : [

Versión de API 2014-10-06388

Page 398: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

{ "Effect" : "Allow", "Action" : [ "codedeploy:CreateDeployment" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:deploymentgroup:WordPress_App/WordPress_DepGroup" ] }, { "Effect" : "Allow", "Action" : [ "codedeploy:GetDeploymentConfig" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:deploymentconfig:ThreeQuartersHealthy" ] }, { "Effect" : "Allow", "Action" : [ "codedeploy:GetApplicationRevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:80398EXAMPLE:application:WordPress_App" ] } ]}

Prácticas recomendadas relativas a políticasLas políticas basadas en identidad son muy eficaces. Determinan si alguien puede crear, acceder oeliminar los recursos de CodeDeploy de su cuenta. Estas acciones pueden generar costes adicionalespara su cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas enidentidad:

• Introducción sobre el uso de políticas administradas de AWS: para comenzar a utilizar CodeDeployrápidamente, utilice las políticas administradas de AWS para proporcionar a los empleados los permisosnecesarios. Estas políticas ya están disponibles en su cuenta y las mantiene y actualiza AWS. Paraobtener más información, consulte Introducción sobre el uso de permisos con políticas administradas deAWS en la Guía del usuario de IAM.

• Conceder privilegios mínimos: al crear políticas personalizadas, conceda solo los permisos necesariospara llevar a cabo una tarea. Comience con un conjunto mínimo de permisos y conceda permisosadicionales según sea necesario. Por lo general, es más seguro que comenzar con permisos que sondemasiado tolerantes e intentar hacerlos más severos más adelante. Para obtener más información,consulte Conceder privilegios mínimos en la Guía del usuario de IAM.

• Habilitar MFA para operaciones confidenciales: para mayor seguridad, obligue a los usuarios deIAM a que utilicen la autenticación multifactor (MFA) para acceder a recursos u operaciones de APIconfidenciales. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) enAWS en la Guía del usuario de IAM.

• Utilizar condiciones de política para mayor seguridad: en la medida en que sea práctico, defina lascondiciones en las que sus políticas basadas en identidad permitan el acceso a un recurso. Por ejemplo,puede escribir condiciones para especificar un rango de direcciones IP permitidas desde el que debeproceder una solicitud. También puede escribir condiciones para permitir solicitudes solo en un intervalode hora o fecha especificado o para solicitar el uso de SSL o MFA. Para obtener más información,consulte Elementos de la política de JSON de IAM: condición en la Guía del usuario de IAM.

Versión de API 2014-10-06389

Page 399: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplos de políticas basadas en identidad

Uso de la consola de CodeDeploySi utiliza la consola de CodeDeploy, debe tener un conjunto mínimo de permisos que le permitadescribir otros recursos de AWS para su cuenta de AWS. Para poder usar CodeDeploy en la consola deCodeDeploy, debe tener permisos de los servicios siguientes:

• Amazon EC2 Auto Scaling• AWS CodeDeploy• Amazon Elastic Compute Cloud• Elastic Load Balancing• AWS Identity and Access Management• Amazon Simple Storage Service• Amazon Simple Notification Service• Amazon CloudWatch

Si crea una política de IAM que sea más restrictiva que el mínimo de permisos necesarios, la consolano funcionará del modo esperado para los usuarios con esa política de IAM. Para asegurarse de queesos usuarios puedan seguir usando la consola de CodeDeploy, asocie también la política administradaAWSCodeDeployReadOnlyAccess al usuario, según se explica en Políticas administradas (predefinidas)de AWS para CodeDeploy (p. 384).

No es necesario que conceda permisos mínimos para la consola a los usuarios que solo realizan llamadasa la AWS CLI o a la API de CodeDeploy.

Permitir a los usuarios ver sus propios permisosEn este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver laspolíticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluyepermisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la APIde AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions",

Versión de API 2014-10-06390

Page 400: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas

"iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ]}

Solución de problemas de identidad y acceso en AWSCodeDeployUtilice la información siguiente para diagnosticar y solucionar los problemas comunes que puedan surgircuando trabaje con CodeDeploy e IAM.

Temas• No tengo autorización para realizar la operación iam:PassRole (p. 391)• Quiero ver mis claves de acceso (p. 391)• Soy administrador y deseo permitir que otros obtengan acceso a CodeDeploy (p. 392)• Quiero permitir a personas externas a mi cuenta de AWS el acceso a mis recursos de

CodeDeploy (p. 392)

No tengo autorización para realizar la operación iam:PassRoleSi recibe un error que indica que no está autorizado para llevar a cabo la acción iam:PassRole, debeponerse en contacto con su administrador para recibir ayuda. Su administrador es la persona que le facilitósu nombre de usuario y contraseña. Pida a la persona que actualice sus políticas de forma que puedatransferir un rol a CodeDeploy.

Algunos servicios de AWS le permiten transferir un rol existente a dicho servicio en lugar de crear un nuevorol de servicio o uno vinculado al servicio. Para ello, debe tener permisos para transferir el rol al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado marymajor intentautilizar la consola para realizar una acción en CodeDeploy. Sin embargo, la acción requiere que el serviciocuente con permisos otorgados por un rol de servicio. Mary no tiene permisos para transferir el rol alservicio.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

En este caso, Mary pide a su administrador que actualice sus políticas para que pueda realizar la accióniam:PassRole.

Quiero ver mis claves de accesoDespués de crear sus claves de acceso de usuario de IAM, puede ver su ID de clave de acceso encualquier momento. Sin embargo, no puede volver a ver su clave de acceso secreta. Si pierde la clave deacceso secreta, debe crear un nuevo par de claves de acceso.

Las claves de acceso se componen de dos partes: un ID de clave de acceso (por ejemplo,AKIAIOSFODNN7EXAMPLE) y una clave de acceso secreta (por ejemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). El ID de clave de acceso y la clave de acceso secreta se utilizan juntos, como unnombre de usuario y contraseña, para autenticar sus solicitudes. Administre sus claves de acceso con elmismo nivel de seguridad que para el nombre de usuario y la contraseña.

Versión de API 2014-10-06391

Page 401: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

Important

No proporcione las claves de acceso a terceras personas, ni siquiera para que le ayuden a buscarel ID de usuario canónico. Si lo hace, podría conceder a otra persona acceso permanente a sucuenta.

Cuando cree un par de claves de acceso, se le pide que guarde el ID de clave de acceso y la clave deacceso secreta en un lugar seguro. La clave de acceso secreta solo está disponible en el momento de sucreación. Si pierde la clave de acceso secreta, debe añadir nuevas claves de acceso a su usuario de IAM.Puede tener un máximo de dos claves de acceso. Si ya cuenta con dos, debe eliminar un par de clavesantes de crear uno nuevo. Para ver las instrucciones, consulte Administración de las claves de acceso enla Guía del usuario de IAM.

Soy administrador y deseo permitir que otros obtengan acceso aCodeDeployPara permitir que otros obtengan acceso a CodeDeploy, debe crear una entidad de IAM (usuario o rol)para la persona o aplicación que necesita acceso. Esta persona utilizará las credenciales de la entidadpara obtener acceso a AWS. A continuación, debe asociar una política a la entidad que le conceda lospermisos correctos en CodeDeploy.

Para comenzar de inmediato, consulte Creación del primer grupo y usuario delegado de IAM en la Guía delusuario de IAM.

Quiero permitir a personas externas a mi cuenta de AWS elacceso a mis recursos de CodeDeployPuede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedanutilizar para acceder a sus recursos. Puede especificar una persona de confianza para que asuma el rol.En el caso de los servicios que admitan las políticas basadas en recursos o las listas de control de acceso(ACL), puede utilizar dichas políticas para conceder a las personas acceso a sus recursos.

Para obtener más información, consulte lo siguiente:

• Para obtener información acerca de si CodeDeploy admite estas características, consulteFuncionamiento de AWS CodeDeploy con IAM (p. 380).

• Para aprender cómo proporcionar acceso a sus recursos en cuentas de AWS de su propiedad, consulteProporcionar acceso a un usuario de IAM a otra cuenta de AWS de la que es propietario en la Guía delusuario de IAM.

• Para obtener información acerca de cómo ofrecer acceso a sus recursos a cuentas de AWS de terceros,consulte Proporcionar acceso a las cuentas de AWS propiedad de terceros en la Guía del usuario deIAM.

• Para obtener información acerca de cómo ofrecer acceso a la identidad federada, consulte Proporcionaracceso a usuarios autenticados externamente (identidad federada) en la Guía del usuario de IAM.

• Para obtener información acerca de la diferencia entre utilizar los roles y las políticas basadas enrecursos para el acceso entre cuentas, consulte Cómo los roles de IAM difieren de las políticas basadasen recursos en la Guía del usuario de IAM.

Referencia de permisos de CodeDeployUtilice la siguiente tabla a la hora de configurar el acceso y escribir políticas de permisos que puedaasociar a una identidad de IAM (políticas basadas en identidad). La tabla muestra cada operación de la APIde CodeDeploy, las acciones correspondientes para cuyas ejecuciones se deben conceder permisos y elformato del ARN del recurso a utilizar para concederlos. Las acciones se especifican en el campo Action

Versión de API 2014-10-06392

Page 402: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

de la política. Debe especificar un ARN, con o sin un carácter comodín (*), como el valor del recurso en elcampo Resource de la política.

Puede utilizar claves de condiciones generales de AWS en sus políticas de CodeDeploy para expresarcondiciones. Para ver una lista completa de claves generales de AWS, consulte el tema relacionado conlas claves disponibles en la Guía del usuario de IAM.

Para especificar una acción, use el prefijo codedeploy: seguido del nombre de operación de API(por ejemplo, codedeploy:GetApplication y codedeploy:CreateApplication). Paraespecificar varias acciones en una única instrucción, sepárelas con comas (por ejemplo, "Action":["codedeploy:action1", "codedeploy:action2"]).

Uso de caracteres comodín

Utilice el carácter de comodín (*) en el ARN para especificar varias acciones o recursos. Por ejemplo,codedeploy:* especifica todas las acciones de CodeDeploy y codedeploy:Get* especifica todaslas acciones de CodeDeploy que comienzan por la palabra Get. En el siguiente ejemplo se concedeacceso a todos los grupos de implementaciones con nombres que comienzan por West y que se asocian aaplicaciones con nombres comienzan con Test.

arn:aws:codedeploy:us-west-2:80398EXAMPLE:deploymentgroup:Test*/West*

Utilice comodines con los recursos que se muestran en la tabla a continuación:

• application-name

• deployment-group-name

• deployment-configuration-name

• instance-ID

No se puede utilizar comodines con region ni con account-id. Para obtener más información acerca delos comodines, consulte Identificadores de IAM en la Guía del usuario de IAM.

Note

En el ARN de cada acción, dos puntos (:) siguen al recurso. También puede seguir al recurso unabarra diagonal (/). Para obtener más información, consulte ARN de ejemplo de CodeDeploy.

Operaciones de API y permisos necesarios para acciones de CodeDeploy

AddTagsToOnPremisesInstances

Acción: codedeploy:AddTagsToOnPremisesInstances

Obligatorio para añadir etiquetas a una o más instancias on-premises.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDBatchGetApplicationRevisions

Acción: codedeploy:BatchGetApplicationRevisions

Obligatorio para obtener información acerca de varias revisiones de aplicación asociadas al usuario deIAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameBatchGetApplications

Acción: codedeploy:BatchGetApplications

Versión de API 2014-10-06393

Page 403: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

Obligatorio para obtener información acerca de varias aplicaciones asociadas al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:*BatchGetDeploymentGroups

Acción: codedeploy:BatchGetDeploymentGroups

Obligatorio para obtener información acerca de varios grupos de implementaciones asociados alusuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

BatchGetDeploymentInstances

Acción: codedeploy:BatchGetDeploymentInstances

Obligatorio para obtener información acerca de una o varias instancias parte de un grupo deimplementaciones.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

BatchGetDeployments

Acción: codedeploy:BatchGetDeployments

Obligatorio para obtener información acerca de varias implementaciones asociadas al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

BatchGetOnPremisesInstances

Acción: codedeploy:BatchGetOnPremisesInstances

Obligatorio para obtener información acerca de una o más instancias on-premises.

Recurso: arn:aws:codedeploy:region:account-id:*ContinueDeployment

Acción: codedeploy:ContinueDeployment

Obligatorio durante una implementación "green/blue" (blue/green) para comenzar a registrar instanciasen un entorno de sustitución con balanceadores de carga de Elastic Load Balancing.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

CreateApplication

Acción: codedeploy:CreateApplication

Obligatorio para crear una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameCreateDeployment ¹

Acción: codedeploy:CreateDeployment

Obligatorio para crear una implementación para una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

Versión de API 2014-10-06394

Page 404: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

CreateDeploymentConfig

Acción: codedeploy:CreateDeploymentConfig

Obligatorio para crear una configuración de implementación personalizada asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

CreateDeploymentGroup

Acción: codedeploy:CreateDeploymentGroup

Obligatorio para crear un grupo de implementaciones de una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

DeleteApplication

Acción: codedeploy:DeleteApplication

Obligatorio para eliminar una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameDeleteDeploymentConfig

Acción: codedeploy:DeleteDeploymentConfig

Obligatorio para eliminar una configuración de implementación personalizada asociada al usuario deIAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

DeleteDeploymentGroup

Acción: codedeploy:DeleteDeploymentGroup

Obligatorio para eliminar un grupo de implementaciones de una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

DeregisterOnPremisesInstance

Acción: codedeploy:DeregisterOnPremisesInstance

Obligatorio para cancelar el registro de una instancia on-premises.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDGetApplication

Acción: codedeploy:GetApplication

Obligatorio para obtener información acerca de una única aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameGetApplicationRevision

Acción: codedeploy:GetApplicationRevision

Obligatorio para obtener información acerca de una única revisión de aplicación para una aplicaciónasociada al usuario de IAM.

Versión de API 2014-10-06395

Page 405: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameGetDeployment

Acción: codedeploy:GetDeployment

Obligatorio para obtener información acerca de una única implementación de un grupo deimplementaciones para una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

GetDeploymentConfig

Acción: codedeploy:GetDeploymentConfig

Obligatorio para obtener información acerca de una única configuración de implementación asociadaal usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/deployment-configuration-name

GetDeploymentGroup

Acción: codedeploy:GetDeploymentGroup

Obligatorio para obtener información acerca de un único grupo de implementaciones para unaaplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

GetDeploymentInstance

Acción: codedeploy:GetDeploymentInstance

Obligatorio para obtener información acerca de una única instancia de una implementación asociadaal usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

GetOnPremisesInstance

Acción: codedeploy:GetOnPremisesInstance

Obligatorio para obtener información acerca de una única instancia on-premises.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDListApplicationRevisions

Acción: codedeploy:ListApplicationRevisions

Obligatorio para obtener información acerca de todas las revisiones de aplicación para una aplicaciónasociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:*ListApplications

Acción: codedeploy:ListApplications

Obligatorio para obtener información acerca de todas las aplicaciones asociadas al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:*

Versión de API 2014-10-06396

Page 406: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

ListDeploymentConfigs

Acción: codedeploy:ListDeploymentConfigs

Obligatorio para obtener información acerca de todas las configuraciones de implementacionesasociadas al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentconfig/*ListDeploymentGroups

Acción: codedeploy:ListDeploymentGroups

Obligatorio para obtener información acerca de todos los grupos de implementaciones para unaaplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/*

ListDeploymentInstances

Acción: codedeploy:ListDeploymentInstances

Obligatorio para obtener información acerca de todas las instancias de una implementación asociadasal usuario de IAM o la cuenta de AWS.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

ListDeployments

Acción: codedeploy:ListDeployments

Obligatorio para obtener información acerca de todas las implementaciones de un grupo deimplementaciones asociado al usuario de IAM, o para obtener todas las implementaciones asociadascon el usuario de IAM o la cuenta de AWS.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

ListGitHubAccountTokenNames

Acción: codedeploy:ListGitHubAccountTokenNames

Obligatorio para obtener una lista de los nombres de las conexiones almacenadas en las cuentas deGitHub.

Recurso: arn:aws:codedeploy:region:account-id:*ListOnPremisesInstances

Acción: codedeploy:ListOnPremisesInstances

Obligatorio para obtener una lista de uno o varios nombres de instancias on-premises.

Recurso: arn:aws:codedeploy:region:account-id:*RegisterApplicationRevision

Acción: codedeploy:RegisterApplicationRevision

Obligatorio para obtener información acerca de una revisión de aplicación para una aplicaciónasociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-name

Versión de API 2014-10-06397

Page 407: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioReferencia de permisos de CodeDeploy

RegisterOnPremisesInstance

Acción: codedeploy:RegisterOnPremisesInstance

Obligatorio para registrar una instancia on-premises con CodeDeploy.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDRemoveTagsFromOnPremisesInstances

Acción: codedeploy:RemoveTagsFromOnPremisesInstances

Obligatorio para eliminar etiquetas desde una o más instancias on-premises.

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDSkipWaitTimeForInstanceTermination

Acción: codedeploy:SkipWaitTimeForInstanceTermination

Obligatorio para sobrescribir un tiempo de espera especificado y comenzar a terminar instancias enel entorno original inmediatamente después de dirigir correctamente el tráfico en una implementación"blue/green".

Recurso: arn:aws:codedeploy:region:account-id:instance/instance-IDStopDeployment

Acción: codedeploy:StopDeployment

Necesario para detener una implementación en curso en un grupo de implementaciones para unaaplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

UpdateApplication ³

Acción: codedeploy:UpdateApplication

Obligatorio para cambiar información de una aplicación asociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:application:application-nameUpdateDeploymentGroup ³

Acción: codedeploy:UpdateDeploymentGroup

Obligatorio para cambiar información de un único grupo de implementaciones para una aplicaciónasociada al usuario de IAM.

Recurso: arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

¹ Cuando especifique permisos CreateDeployment, también debe especificarpermisos GetDeploymentConfig para la configuración de implementación y permisosGetApplicationRevision o RegisterApplicationRevision para la revisión de la aplicación.

² Válido para ListDeployments cuando se proporciona un grupo de implementación, pero no cuando semuestran todas las implementaciones asociadas con el usuario de IAM.

³ Para UpdateApplication, debe tener permisos UpdateApplication tanto para el nombre deaplicación antiguo y nuevo. Para las acciones UpdateDeploymentGroup que implican cambiar el nombre

Versión de API 2014-10-06398

Page 408: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioRespuesta frente a incidencias

de un grupo de implementación, debe tener permisos UpdateDeploymentGroup tanto para el nombre degrupo de implementación antiguo como para el nuevo.

Registro y monitorización en CodeDeployEn esta sección se ofrece información general para la monitorización, el registro y la respuesta a incidentesen CodeDeploy.

Auditoría de todas las interacciones con CodeDeployCodeDeploy está integrado con AWS CloudTrail, un servicio que captura las llamadas a la API realizadaspor o en nombre de CodeDeploy en una cuenta de AWS y envía los archivos de registro al bucket de S3que se especifique. CloudTrail captura las llamadas a la API realizadas desde la consola de CodeDeploy,desde los comandos de CodeDeploy emitidos en la CLI de AWS o desde las API de CodeDeploydirectamente. Con la información recopilada por CloudTrail puede identificar la solicitud que se realizó aCodeDeploy, la dirección IP de origen desde la que se realizó la solicitud, quién realizó la solicitud, cuándose realizó, etcétera. Para obtener más información sobre CloudTrail, consulte Trabajar con archivos deregistro de CloudTrail en la AWS CloudTrail User Guide.

Para ver los datos de registro creados por una implementación de CodeDeploy, configure el agente deCloudWatch Logs de modo que muestre los datos agregados en la consola de CloudWatch o bien iniciesesión en una instancia individual para revisar el archivo de registro. Para obtener más información,consulte Ver registros de CodeDeploy en la consola de CloudWatch Logs.

Administración de incidentes y alertasPuede utilizar Amazon CloudWatch Events para detectar cambios en el estado de una instancia o unaimplementación (un evento) en las operaciones de CodeDeploy y reaccionar ante dichos cambios. Acontinuación, en función de las reglas que cree, Eventos de CloudWatch invoca a una o varias accionesde destino cuando una implementación o una instancia entra en el estado especificado en una regla. Enfunción del tipo de cambio de estado, es posible que desee enviar notificaciones, capturar informaciónde estado, tomar medidas correctivas, iniciar eventos o adoptar otras medidas. Si utiliza Eventos deCloudWatch como parte de sus operaciones de CodeDeploy, puede seleccionar los siguientes tipos dedestinos:

• Funciones de AWS Lambda• Flujos de Kinesis• Colas de Amazon SQS• Destinos integrados (acciones de alarma de CloudWatch)• Temas de Amazon SNS

A continuación se indican algunos casos de uso:

• Utilice una función Lambda para pasar una notificación a un canal de Slack siempre que se produzcanerrores en las implementaciones.

• Envíe datos acerca de las implementaciones o instancias a un flujo de Kinesis para permitir unamonitorización completa del estado en tiempo real.

• Utilice acciones de alarma de CloudWatch para detener, terminar, reiniciar o recuperar automáticamenteinstancias EC2 cuando se produzca un evento de implementación o de instancia especificado.

Para obtener más información, consulte ¿Qué es Amazon CloudWatch Events? en la Guía del usuario deAmazon CloudWatch.

Versión de API 2014-10-06399

Page 409: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioValidación de la conformidad

Validación de la conformidad en AWS CodeDeployAuditores externos evalúan la seguridad y la conformidad de AWS CodeDeploy como parte de variosprogramas de conformidad de AWS. Estos incluyen SOC, PCI, FedRAMP, HIPAA y otros.

Para obtener una lista de servicios de AWS en el ámbito de programas de conformidad específicos,consulte Servicios de AWS en el ámbito del programa de conformidad. Para obtener información general,consulte Programas de conformidad de AWS.

Puede descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener másinformación, consulte Descarga de informes en AWS Artifact.

Su responsabilidad de conformidad al utilizar CodeDeploy se determina en función de la sensibilidad de losdatos, los objetivos de cumplimiento de su empresa y la legislación y los reglamentos correspondientes.AWS proporciona los siguientes recursos para ayudar con la conformidad:

• Guías de inicio rápido de seguridad y conformidad– estas guías de implementación tratanconsideraciones sobre arquitectura y ofrecen pasos para implementar los entornos de referenciacentrados en la seguridad y la conformidad en AWS.

• Documento técnico sobre arquitectura para seguridad y conformidad de HIPAA– este documento técnicodescribe cómo las empresas pueden utilizar AWS para crear aplicaciones conformes con HIPAA.

• Recursos de conformidad de AWS – este conjunto de manuales y guías podría aplicarse a su sector yubicación.

• Evaluación de recursos con reglas en la Guía para desarrolladores de AWS Config – el servicio AWSConfig evalúa en qué medida las configuraciones de los recursos cumplen con las prácticas internas, lasdirectrices del sector y las normativas.

• AWS Security Hub: este servicio de AWS ofrece una vista integral de su estado de seguridad en AWSque le ayuda a comprobar la conformidad con las normas del sector de seguridad y las prácticasrecomendadas.

Resiliencia de AWS CodeDeployLa infraestructura global de AWS está conformada por regiones y zonas de disponibilidad de AWS. Lasregiones de AWS proporcionan varias zonas de disponibilidad físicamente independientes y aisladasque se encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, ademásde baja latencia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datosque realizan una conmutación por error automática entre las zonas sin interrupciones. Las zonas dedisponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que las infraestructurastradicionales de centros de datos únicos o múltiples.

Para obtener más información sobre zonas de disponibilidad y las regiones de AWS, consulteInfraestructura global de AWS.

Seguridad de la infraestructura en AWSCodeDeploy

Al tratarse de un servicio administrado, AWS CodeDeploy está protegido por los procedimientos deseguridad de red globales de AWS que se describen en el documento técnico Amazon Web Services:Información general sobre procesos de seguridad.

Puede utilizar llamadas a la API publicadas en AWS para obtener acceso a CodeDeploy a través de lared. Los clientes deben ser compatibles con Transport Layer Security (TLS) 1.0 o una versión posterior. Le

Versión de API 2014-10-06400

Page 410: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSeguridad de la infraestructura

recomendamos TLS 1.2 o una versión posterior. Los clientes también deben ser compatibles con conjuntosde cifrado con confidencialidad directa total (PFS), como Ephemeral Diffie-Hellman (DHE) o Elliptic CurveEphemeral Diffie-Hellman (ECDHE). La mayoría de los sistemas modernos como Java 7 y posteriores soncompatibles con estos modos.

Las solicitudes deben estar firmadas mediante un ID de clave de acceso y una clave de acceso secretaque esté asociada a una entidad principal de IAM. También puede utilizar AWS Security Token Service(AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.

Versión de API 2014-10-06401

Page 411: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioArchivos AppSpec en una plataforma

de computación Amazon ECS

Referencia de AppSpec File deCodeDeploy

Esta sección se incluye solo como referencia. Para obtener información general conceptual sobre elAppSpec file, consulte Archivos de especificación de la aplicación (p. 34).

El application specification file (AppSpec file) es un archivo con formato YAML o JSON que usaCodeDeploy para administrar una implementación.

Note

El nombre del AppSpec file de una implementación de EC2/On-Premises debe ser appspec.ymlo appspec.json. El nombre del AppSpec file de una implementación Amazon ECS o AWSLambda debe ser appspec.yaml o appspec.json.

Temas• Archivos AppSpec en una plataforma de computación Amazon ECS (p. 402)• Archivos AppSpec en una plataforma de computación AWS Lambda (p. 402)• Archivos AppSpec en una plataforma de computación EC2/On-Premises (p. 403)• Estructura de AppSpec File (p. 403)• Ejemplo de AppSpec File (p. 429)• Espaciado de AppSpec File (p. 432)• Validar el objeto AppSpec File y la ubicación del archivo (p. 434)

Archivos AppSpec en una plataforma decomputación Amazon ECS

Si una aplicación utiliza la Amazon ECS plataforma de computación, el AppSpec file se denominaappspec.yaml. Lo utiliza CodeDeploy para determinar:

• El archivo de definición de tareas de Amazon ECS. Se especifica con su ARN en la instrucciónTaskDefinition en el AppSpec file.

• El contenedor y el puerto en el conjunto de tareas de sustitución donde el Balanceador de carga deaplicaciones o Network Load Balancer redirige tráfico durante una implementación. Se especifica con lainstrucción LoadBalancerInfo en el AppSpec file.

• Información opcional acerca del servicio de Amazon ECS como, por ejemplo, la versión de la plataformaen la que se ejecuta, sus subredes y sus grupos de seguridad.

• Funciones Lambda opcionales que ejecutar durante enlaces que se corresponden con eventos de ciclode vida durante una implementación de Amazon ECS. Para obtener más información, consulte Sección"hooks" de AppSpec para una implementación de Amazon ECS (p. 416).

Archivos AppSpec en una plataforma decomputación AWS Lambda

Si una aplicación utiliza la AWS Lambda plataforma de computación, el AppSpec file se denominaappspec.yaml. Lo utiliza CodeDeploy para determinar:

Versión de API 2014-10-06402

Page 412: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioArchivos AppSpec en una plataforma

de computación EC2/On-Premises

• Qué versión de función de Lambda se debe implementar.• Qué funciones Lambda se van a usar como pruebas de validación.

Un archivo AppSpec file puede tener un formato YAML o JSON. También puede introducir el contenido deun archivo AppSpec file directamente en la consola de CodeDeploy al crer una implementación.

Archivos AppSpec en una plataforma decomputación EC2/On-Premises

Si una aplicación utiliza la EC2/On-Premises plataforma de computación, el AppSpec file se denominaappspec.yml. Lo utiliza CodeDeploy para determinar:

• Lo que se debe instalar en las instancias de la revisión de la aplicación en Amazon S3 o GitHub.• Los enlaces de eventos del ciclo de vida que se deben ejecutar en respuesta a los eventos del ciclo de

vida de la implementación.

Un AppSpec file debe ser un archivo con formato YAML denominado appspec.yml y debe estarsituado en la raíz de la estructura de directorios del código fuente de una aplicación. De lo contrario, lasimplementaciones producirán un error.

Una vez completado un AppSpec file, lo empaqueta junto con el contenido que va a implementar en unarchivo de almacenamiento (zip, tar o tar comprimido). Para obtener más información, consulte Gestión derevisiones de aplicaciones en CodeDeploy (p. 304).

Note

Los formatos de archivo tar y tar comprimido (.tar y .tar.gz) no se admiten en las instancias deWindows Server.

Una vez que tenga un archivo de almacenamiento empaquetado (denominado revisión en CodeDeploy),lo cargará en un bucket de Amazon S3 o en un repositorio de Git. A continuación usará CodeDeploypara implementar la revisión. Para obtener instrucciones, consulte Crear una implementación conCodeDeploy (p. 321).

El appspec.yml de una implementación de EC2/On-Premises plataforma de computación se guarda en eldirectorio raíz de la revisión. Para obtener más información, consulte Adición de un archivo AppSpec parauna implementación de EC2/On-Premises (p. 309) y Planear una revisión para CodeDeploy (p. 304).

Estructura de AppSpec FileA continuación, se incluye la estructura de alto nivel de un AppSpec file usado para las implementacionesen las plataformas de computación AWS Lambda y EC2/On-Premises.

Un valor en un AppSpec file con formato YAML que es una cadena no se debe incluir entre comillas ("") amenos que se especifique lo contrario.

Estructura de un archivo AppSpec para lasimplementaciones de Amazon ECS

Note

Este AppSpec file está escrito en YAML, pero se puede usar la misma estructura para escribir unoen JSON. Una cadena en un AppSpec file con formato JSON siempre está entre comillas ("").

Versión de API 2014-10-06403

Page 413: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEstructura de un archivo AppSpec paralas implementaciones de AWS Lambda

version: 0.0resources: ecs-service-specificationshooks: deployment-lifecycle-event-mappings

En esta estructura:

version

Esta sección especifica la versión del AppSpec file. No cambie este valor. Es obligatorio. El único valorpermitido actualmente es 0.0. Está reservado para su uso futuro por parte de CodeDeploy.

Especifique version con una cadena.recursos

En esta sección se especifica información sobre la aplicación de Amazon ECS que se va aimplementar.

Para obtener más información, consulte Sección "resources" de AppSpec para implementaciones deAmazon ECS (p. 410).

hooks

Esta sección especifica las funciones Lambda que se van a ejecutar en enlaces de eventosespecíficos del ciclo de vida de la implementación para validar la implementación.

Para obtener más información, consulte Lista de enlaces de eventos del ciclo de vida para unaimplementación de Amazon ECS (p. 416).

Estructura de un archivo AppSpec para lasimplementaciones de AWS Lambda

Note

Este AppSpec file está escrito en YAML, pero se puede usar la misma estructura para escribir unAppSpec file para una implementación de Lambda en JSON. Una cadena en un AppSpec file conformato JSON siempre está entre comillas ("").

version: 0.0resources: lambda-function-specificationshooks: deployment-lifecycle-event-mappings

En esta estructura:

version

Esta sección especifica la versión del AppSpec file. No cambie este valor. Es obligatorio. El único valorpermitido actualmente es 0.0. Está reservado para su uso futuro por parte de CodeDeploy.

Especifique version con una cadena.recursos

En esta sección se especifica información sobre la función de Lambda que se va a implementar.

Para obtener más información, consulte Sección "resources" de AppSpec (solo paraimplementaciones de Amazon ECS y AWS Lambda) (p. 409).

Versión de API 2014-10-06404

Page 414: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEstructura de un archivo AppSpec para lasimplementaciones de EC2/On-Premises

hooks

Esta sección especifica las funciones de Lambda que se van a ejecutar en eventos específicos delciclo de vida de la implementación para validar la implementación.

Para obtener más información, consulte Sección "hooks" de AppSpec (p. 416).

Estructura de un archivo AppSpec para lasimplementaciones de EC2/On-Premisesversion: 0.0os: operating-system-namefiles: source-destination-files-mappingspermissions: permissions-specificationshooks: deployment-lifecycle-event-mappings

En esta estructura:

version

Esta sección especifica la versión del AppSpec file. No cambie este valor. Es obligatorio. El único valorpermitido actualmente es 0.0. Está reservado para su uso futuro por parte de CodeDeploy.

Especifique version con una cadena.os

Esta sección especifica el valor del sistema operativo de la instancia en la que se va a realizar laimplementación. Es obligatorio. Se pueden especificar los siguientes valores:• linux: la instancia es una instancia de Amazon Linux, Ubuntu Server o RHEL.–• windows–: la instancia es una instancia de Windows Server.

Especifique os con una cadena.

files

Esta sección especifica los nombres de los archivos que deben copiarse en la instancia durante elevento Install de la implementación.

Para obtener más información, consulte Sección "files" de AppSpec (solo para implementaciones deEC2/On-Premises) (p. 406).

permissions

Esta sección especifica cómo los permisos especiales, si hay alguno, deben aplicarse a los archivosde la sección files cuando se copien en la instancia. Esta sección se aplica únicamente a lasinstancias de Amazon Linux, Ubuntu Server y Red Hat Enterprise Linux (RHEL).

Para obtener más información, consulte, Sección "permissions" de AppSpec (solo paraimplementaciones de EC2/On-Premises) (p. 411).

hooks

Esta sección especifica los scripts que se van a ejecutar en eventos específicos del ciclo de vida de laimplementación durante la implementación.

Versión de API 2014-10-06405

Page 415: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "files" de AppSpec (solo para

implementaciones de EC2/On-Premises)

Para obtener más información, consulte Sección "hooks" de AppSpec (p. 416).

Temas• Sección "files" de AppSpec (solo para implementaciones de EC2/On-Premises) (p. 406)• Sección "resources" de AppSpec (solo para implementaciones de Amazon ECS y AWS Lambda)

(p. 409)• Sección "permissions" de AppSpec (solo para implementaciones de EC2/On-Premises) (p. 411)• Sección "hooks" de AppSpec (p. 416)

Sección "files" de AppSpec (solo paraimplementaciones de EC2/On-Premises)Proporciona información a CodeDeploy sobre los archivos de la revisión de la aplicación que se debeninstalar en la instancia durante el evento Install de la implementación. Esta sección solo es necesaria si vaa copiar archivos de la revisión en ubicaciones de la instancia durante la implementación.

Esta sección tiene la siguiente estructura:

files: - source: source-file-location destination: destination-file-location

Se pueden establecer varios pares source y destination.

La instrucción source identifica el archivo o directorio de la revisión que se va a copiar en la instancia:

• Si source hace referencia a un archivo, solo se copian los archivos especificados en la instancia.• Si source hace referencia a un directorio, se copian todos los archivos del directorio en la instancia.• Si source es una sola barra diagonal ("/" para instancias de Amazon Linux, RHEL y Ubuntu Server o " \"

para instancias de Windows Server), se copian todos los archivos de la revisión en la instancia.

Las rutas usadas en source son rutas relativas que parten de la raíz de la revisión.

La instrucción destination identifica el lugar de la instancia en el que deben copiarse los archivos. Debeser una ruta completa.

source y destination se especifican con una cadena.

A continuación se muestra un ejemplo de una sección files para una instancia de Amazon Linux, UbuntuServer o RHEL.

files: - source: Config/config.txt destination: /webapps/Config - source: source destination: /webapps/myApp

En este ejemplo, se realizan las dos operaciones siguientes durante el evento Install:

1. Copiar el archivo Config/config.txt en la revisión en la ruta de /webapps/Config/config.txtde la instancia.

2. Copiar recursivamente todos los archivos del directorio source de la revisión en el directorio /webapps/myApp de la instancia.

Versión de API 2014-10-06406

Page 416: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "files" de AppSpec (solo para

implementaciones de EC2/On-Premises)

Ejemplos de la sección "files"Los siguientes ejemplos muestran cómo especificar la sección files. Aunque estos ejemplos describenestructuras de archivos y directorios (carpetas) de Windows Server, se pueden adaptar fácilmente parainstancias de Amazon Linux, Ubuntu Server y RHEL.

Note

Solo las implementaciones de EC2/On-Premises utilizan la sección files. No se aplica a lasimplementaciones de AWS Lambda.

En los siguientes ejemplos, presuponemos que estos archivos están en el paquete en la raíz de source:

• appspec.yml

• my-file.txt

• my-file-2.txt

• my-file-3.txt

✔ 1) Copy only my-file.txt to the destination folder c:\temp.✔files: - source: .\my-file.txt destination: c:\temp✔✔ Result:✔ c:\temp\my-file.txt✔✔ ---------------------✔✔ 2) Copy only my-file-2.txt and my-file-3.txt to the destination folder c:\temp.✔files: - source: my-file-2.txt destination: c:\temp - source: my-file-3.txt destination: c:\temp✔✔ Result:✔ c:\temp\my-file-2.txt✔ c:\temp\my-file-3.txt✔✔ ---------------------✔✔ 3) Copy my-file.txt, my-file-2.txt, and my-file-3.txt (along with the appspec.yml file) to the destination folder c:\temp.✔files: - source: \ destination: c:\temp✔✔ Result:✔ c:\temp\appspec.yml✔ c:\temp\my-file.txt✔ c:\temp\my-file-2.txt✔ c:\temp\my-file-3.txt

En los siguientes ejemplos, presuponemos que appspec.yml está en el paquete en la raíz de sourcejunto con una carpeta denominada my-folder que contiene tres archivos:

• appspec.yml

Versión de API 2014-10-06407

Page 417: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "files" de AppSpec (solo para

implementaciones de EC2/On-Premises)

• my-folder\my-file.txt

• my-folder\my-file-2.txt

• my-folder\my-file-3.txt

✔ 4) Copy the 3 files in my-folder (but do not copy my-folder itself) to the destination folder c:\temp. ✔files: - source: .\my-folder destination: c:\temp✔✔ Result:✔ c:\temp\my-file.txt✔ c:\temp\my-file-2.txt✔ c:\temp\my-file-3.txt✔✔ ---------------------✔✔ 5) Copy my-folder and its 3 files to my-folder within the destination folder c:\temp.✔files: - source: .\my-folder destination: c:\temp\my-folder✔✔ Result:✔ c:\temp\my-folder\my-file.txt✔ c:\temp\my-folder\my-file-2.txt✔ c:\temp\my-folder\my-file-3.txt✔✔ ---------------------✔✔ 6) Copy the 3 files in my-folder to other-folder within the destination folder c:\temp.✔files: - source: .\my-folder destination: c:\temp\other-folder✔✔ Result:✔ c:\temp\other-folder\my-file.txt✔ c:\temp\other-folder\my-file-2.txt✔ c:\temp\other-folder\my-file-3.txt ✔✔ ---------------------✔✔ 7) Copy only my-file-2.txt and my-file-3.txt to my-folder within the destination folder c:\temp.✔files: - source: .\my-folder\my-file-2.txt destination: c:\temp\my-folder - source: .\my-folder\my-file-3.txt destination: c:\temp\my-folder✔✔ Result:✔ c:\temp\my-folder\my-file-2.txt✔ c:\temp\my-folder\my-file-3.txt✔✔ ---------------------✔✔ 8) Copy only my-file-2.txt and my-file-3.txt to other-folder within the destination folder c:\temp.✔files:

Versión de API 2014-10-06408

Page 418: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "resources" de AppSpec (solo para

implementaciones de Amazon ECS y AWS Lambda)

- source: .\my-folder\my-file-2.txt destination: c:\temp\other-folder - source: .\my-folder\my-file-3.txt destination: c:\temp\other-folder✔✔ Result:✔ c:\temp\other-folder\my-file-2.txt✔ c:\temp\other-folder\my-file-3.txt✔✔ ---------------------✔✔ 9) Copy my-folder and its 3 files (along with the appspec.yml file) to the destination folder c:\temp.✔files: - source: \ destination: c:\temp✔✔ Result:✔ c:\temp\appspec.yml✔ c:\temp\my-folder\my-file.txt✔ c:\temp\my-folder\my-file-2.txt✔ c:\temp\my-folder\my-file-3.txt

Sección "resources" de AppSpec (solo paraimplementaciones de Amazon ECS y AWS Lambda)El contenido de la sección 'resources' del archivo AppSpec file varía en función de la plataforma decomputación de la implementación. La sección 'resources' de una implementación de Amazon ECScontiene la definición de tareas de Amazon ECS, contenedor y puerto para dirigir el tráfico a su conjuntode tareas de Amazon ECS actualizado y otra información opcional. La sección 'resources' de unaimplementación de AWS Lambda contiene el nombre, el alias, la versión actual y la versión de destino deuna función Lambda.

Temas• Sección "resources" de AppSpec para implementaciones de AWS Lambda (p. 409)• Sección "resources" de AppSpec para implementaciones de Amazon ECS (p. 410)

Sección "resources" de AppSpec para implementaciones deAWS LambdaLa sección 'resources' especifica la función Lambda que se va a implementar y tiene la siguienteestructura:

YAML:

resources: - name-of-function-to-deploy: type: "AWS::Lambda::Function" properties: name: name-of-lambda-function-to-deploy alias: alias-of-lambda-function-to-deploy currentversion: version-of-the-lambda-function-traffic-currently-points-to targetversion: version-of-the-lambda-function-to-shift-traffic-to

JSON:

Versión de API 2014-10-06409

Page 419: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "resources" de AppSpec (solo para

implementaciones de Amazon ECS y AWS Lambda)

"resources": [{ "name-of-function-to-deploy" { "type": "AWS::Lambda::Function", "properties": { "name": "name-of-lambda-function-to-deploy", "alias": "alias-of-lambda-function-to-deploy", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to" } }}]

Cada propiedad se especifica con una cadena.

• name: obligatorio. Es el nombre de la función de Lambda que se va a implementar.• alias: obligatorio. Es el nombre del alias de la función de Lambda.• currentversion: obligatorio. Es la versión de la función de Lambda a la que apunta actualmente el

tráfico.• targetversion: obligatorio. Es la versión de la función de Lambda a la que se va a desviar el tráfico.

Sección "resources" de AppSpec para implementaciones deAmazon ECSLa sección 'resources' especifica el servicio de Amazon ECS que se va a implementar y tiene lasiguiente estructura:

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-ARN" LoadBalancerInfo: ContainerName: "ECS-container-name-for-your-ECS-application" ContainerPort: port-used-by-your-ECS-application✔ Optional properties PlatformVersion: "ecs-service-platform-version" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1","ecs-subnet-n"] SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] AssignPublicIp: "ENABLED-or-DISABLED"

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": {

Versión de API 2014-10-06410

Page 420: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "permissions" de AppSpec (solo para

implementaciones de EC2/On-Premises)

"Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ]

Cada propiedad se especifica con una cadena.

• TaskDefinition: obligatorio. Esta es la definición de tarea para el servicio de Amazon ECSque se va a implementar. Se especifica con el ARN de la definición de tarea. El formato del ARNes arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision. Para obtener más información, consulte Nombres derecursos de Amazon (ARN) y espacios de nombres de servicios de AWS.

• ContainerName: obligatorio. Este es el nombre del contenedor de Amazon ECS que contiene laaplicación de Amazon ECS. Debe ser un contenedor especificado en la definición de tarea de AmazonECS.

• Port: obligatorio. Se trata del puerto donde el balanceador de carga redirige el tráfico durante unaimplementación.

• PlatformVersion: opcional. La versión de la plataforma de las tareas Fargate en el servicio deAmazon ECS implementado. Para obtener más información, consulte Versiones de plataforma de AWSFargate.

• NetworkConfiguration: opcional. En AwsvpcConfiguration, puede especificar lo siguiente.Para obtener más información, consulte AwsVpcConfiguration en la Referencia de la API del servicio decontenedor de Amazon ECS.• Subnets: opcional. Una lista separada por comas de una o varias subredes en su servicio de Amazon

ECS.• SecurityGroups: opcional. Una lista separada por comas de uno o varios grupos de seguridad en

su Amazon Elastic Container Service.• AssignPublicIp: opcional. Una cadena que especifica si su interfaz de red elástica del servicio de

Amazon ECS recibe una dirección IP pública. Los valores válidos son ENABLED y DISABLED.

Note

Se deben especificar todos los ajustes (o ninguno) en NetworkConfiguration. Porejemplo, si desea especificar Subnets, también debe especificar SecurityGroups yAssignPublicIp. Si no se especifica ninguno, CodeDeploy utiliza la configuración de AmazonECS de red actual.

Sección "permissions" de AppSpec (solo paraimplementaciones de EC2/On-Premises)La sección 'permissions' especifica cómo los permisos especiales, si hay alguno, deben aplicarsea los archivos y directorios/carpetas de la sección 'files' una vez copiados en la instancia. Puedeespecificar varias instrucciones object. Esta sección es opcional. Se aplica únicamente a las instanciasde Amazon Linux, Ubuntu Server y RHEL.

Versión de API 2014-10-06411

Page 421: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "permissions" de AppSpec (solo para

implementaciones de EC2/On-Premises)

Note

La sección 'permissions' se utiliza solo para las implementaciones EC2/On-Premises. No seusa para las implementaciones de AWS Lambda o Amazon ECS.

Esta sección tiene la siguiente estructura:

permissions: - object: object-specification pattern: pattern-specification except: exception-specification owner: owner-account-name group: group-name mode: mode-specification acls: - acls-specification context: user: user-specification type: type-specification range: range-specification type: - object-type

Las instrucciones son las siguientes:

• object: obligatorio. Este es un conjunto de objetos del sistema de archivos (archivos o directorios/carpetas) a los que se aplican los permisos especificados una vez que se copian en la instancia.

Especifique object con una cadena.• pattern: opcional. Especifica un patrón para aplicar permisos. Si no se especifica o se especifica con

los caracteres especiales "**", los permisos se aplican a todos los archivos o directorios coincidentes,en función del valor de type.

Especifique pattern con una cadena con comillas ("").• except: opcional. Especifica los archivos o directorios que son excepciones a pattern.

Especifique except con una lista separada por comas de cadenas entre corchetes.• owner: opcional. El nombre del propietario de object. Si no se especifica, todos los propietarios

existentes aplicados a la estructura original de archivos o directorios/carpetas permanecen sin cambiosdespués de la operación de copia.

Especifique owner con una cadena.• group: opcional. El nombre del grupo de object. Si no se especifica, todos los grupos existentes

aplicados a la estructura original de archivos o directorios/carpetas permanecen sin cambios después dela operación de copia.

Especifique group con una cadena.• mode: opcional. Un número entero que especifica el modo octal de los permisos que se van a aplicar

a object. Por ejemplo, 644 representa permisos de lectura y escritura para el propietario, permisosde solo lectura para el grupo y permisos de solo lectura para el resto de los usuarios. 4755 representaque el atributo setuid está establecido, permisos de control total para el propietario, permisos de lecturay ejecución para el grupo y permisos de lectura y ejecución para los demás usuarios. (Para ver másejemplos, consulte la documentación del comando chmod de Linux). Si no se especifica mode, todos losmodos existentes aplicados a la estructura original de archivos o directorios/carpetas permanecen sincambios después de la operación de copia.

Especifique mode con una cadena.• acls: opcional. Una lista de cadenas de caracteres que representan una o varias entradas de la lista de

control de acceso (ACL) aplicadas a object. Por ejemplo, u:bob:rw representa permisos de lectura

Versión de API 2014-10-06412

Page 422: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "permissions" de AppSpec (solo para

implementaciones de EC2/On-Premises)

y escritura para el usuario bob. (Para ver más ejemplos, consulte los ejemplos de formato de entradasde ACL en la documentación del comando setfacl de Linux). Puede especificar varias entradas deACL. Si no se especifica acls, todas las listas de control de acceso aplicadas a la estructura original dearchivos o directorios/carpetas permanecen sin cambios después de la operación de copia. Reemplazana todas las listas de control de acceso existentes.

Especifique una acls con un guion (-), seguido de un espacio y, a continuación, una cadena(por ejemplo, - u:jane:rw). Si tiene varias ACL, cada una de ellas se especifica en una líneaindependiente.

Note

La definición de usuarios sin nombre, grupos sin nombre u otras entradas de ACL similaresproducirá un error del AppSpec file. Utilice mode para especificar estos tipos de permisos en sulugar.

• context: opcional. Para las instancias habilitadas para Security-Enhanced Linux (SELinux), una lista deetiquetas de contexto relevantes para la seguridad que se aplica a los objetos copiados. Las etiquetas seespecifican como claves que contienen user, type y range. (Para obtener más información, consultela documentación de SELinux). Cada clave se escribe con una cadena. Si no se especifica, todas lasetiquetas existentes aplicadas a la estructura original de archivos o directorios/carpetas permanecen sincambios después de la operación de copia.• user: opcional. El usuario de SELinux.• type: opcional. El nombre de tipo de SELinux.• range: opcional. El rango especificado de SELinux. No tiene ningún efecto a no ser que Multi-Level

Security (MLS) y Multi-Category Security (MCS) estén habilitados en la máquina. Si no está habilitada,el valor predeterminado de range es s0.

Especifique context con una cadena (por ejemplo, user: unconfined_u). Cada context seespecifica en una línea separada.

• type: opcional. Los tipos de objetos a los que se van a aplicar los permisos especificados. type esuna cadena que se puede establecer en file o en directory. Si se especifica file, los permisos seaplican únicamente a los archivos que estén incluidos en object después de la operación de copia (yno al propio object). Si se especifica directory, los permisos se aplican recursivamente a todos losdirectorios o carpetas incluidos en object después de la operación de copia (y no al propio object).

Especifique type con un guion (-), seguido de un espacio y, a continuación, una cadena (por ejemplo, -file).

Ejemplo de la sección "permissions"En el siguiente ejemplo se muestra cómo especificar la sección 'permissions' con las instruccionesobject, pattern, except, owner, mode y type. Este ejemplo se aplica únicamente a las instanciasde Amazon Linux, Ubuntu Server y RHEL. En este ejemplo, se presupone que se copian los siguientesarchivos y carpetas en la instancia en esta jerarquía:

/tmp `-- my-app |-- my-file-1.txt |-- my-file-2.txt |-- my-file-3.txt |-- my-folder-1 | |-- my-file-4.txt | |-- my-file-5.txt | `-- my-file-6.txt `-- my-folder-2 |-- my-file-7.txt |-- my-file-8.txt

Versión de API 2014-10-06413

Page 423: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "permissions" de AppSpec (solo para

implementaciones de EC2/On-Premises)

|-- my-file-9.txt `-- my-folder-3

El siguiente AppSpec file muestra cómo establecer permisos en estos archivos y carpetas una vezcopiados:

version: 0.0os: linux✔ Copy over all of the folders and files with the permissions they✔ were originally assigned.files: - source: ./my-file-1.txt destination: /tmp/my-app - source: ./my-file-2.txt destination: /tmp/my-app - source: ./my-file-3.txt destination: /tmp/my-app - source: ./my-folder-1 destination: /tmp/my-app/my-folder-1 - source: ./my-folder-2 destination: /tmp/my-app/my-folder-2✔ 1) For all of the files in the /tmp/my-app folder ending in -3.txt✔ (for example, just my-file-3.txt), owner = adm, group = wheel, and✔ mode = 464 (-r--rw-r--).permissions: - object: /tmp/my-app pattern: "*-3.txt" owner: adm group: wheel mode: 464 type: - file✔ 2) For all of the files ending in .txt in the /tmp/my-app✔ folder, but not for the file my-file-3.txt (for example,✔ just my-file-1.txt and my-file-2.txt),✔ owner = ec2-user and mode = 444 (-r--r--r--). - object: /tmp/my-app pattern: "*.txt" except: [my-file-3.txt] owner: ec2-user mode: 444 type: - file✔ 3) For all the files in the /tmp/my-app/my-folder-1 folder except✔ for my-file-4.txt and my-file-5.txt, (for example,✔ just my-file-6.txt), owner = operator and mode = 646 (-rw-r--rw-). - object: /tmp/my-app/my-folder-1 pattern: "**" except: [my-file-4.txt, my-file-5.txt] owner: operator mode: 646 type: - file✔ 4) For all of the files that are immediately under✔ the /tmp/my-app/my-folder-2 folder except for my-file-8.txt,✔ (for example, just my-file-7.txt and✔ my-file-9.txt), owner = ec2-user and mode = 777 (-rwxrwxrwx). - object: /tmp/my-app/my-folder-2 pattern: "**" except: [my-file-8.txt] owner: ec2-user mode: 777 type: - file

Versión de API 2014-10-06414

Page 424: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "permissions" de AppSpec (solo para

implementaciones de EC2/On-Premises)

✔ 5) For all folders at any level under /tmp/my-app that contain✔ the name my-folder but not✔ /tmp/my-app/my-folder-2/my-folder-3 (for example, just✔ /tmp/my-app/my-folder-1 and /tmp/my-app/my-folder-2),✔ owner = ec2-user and mode = 555 (dr-xr-xr-x). - object: /tmp/my-app pattern: "*my-folder*" except: [tmp/my-app/my-folder-2/my-folder-3] owner: ec2-user mode: 555 type: - directory✔ 6) For the folder /tmp/my-app/my-folder-2/my-folder-3,✔ group = wheel and mode = 564 (dr-xrw-r--). - object: /tmp/my-app/my-folder-2/my-folder-3 group: wheel mode: 564 type: - directory

Los permisos resultantes son los siguientes:

-r--r--r-- ec2-user root my-file-1.txt-r--r--r-- ec2-user root my-file-2.txt-r--rw-r-- adm wheel my-file-3.txt

dr-xr-xr-x ec2-user root my-folder-1-rw-r--r-- root root my-file-4.txt-rw-r--r-- root root my-file-5.txt-rw-r--rw- operator root my-file-6.txt

dr-xr-xr-x ec2-user root my-folder-2-rwxrwxrwx ec2-user root my-file-7.txt-rw-r--r-- root root my-file-8.txt-rwxrwxrwx ec2-user root my-file-9.txt

dr-xrw-r-- root wheel my-folder-3

En el siguiente ejemplo se muestra cómo especificar la sección 'permissions' con la adición de lasinstrucciones acls y context. Este ejemplo se aplica únicamente a las instancias de Amazon Linux,Ubuntu Server y RHEL.

permissions: - object: /var/www/html/WordPress pattern: "**" except: [/var/www/html/WordPress/ReadMe.txt] owner: bob group: writers mode: 644 acls: - u:mary:rw - u:sam:rw - m::rw context: user: unconfined_u type: httpd_sys_content_t range: s0 type: - file

Versión de API 2014-10-06415

Page 425: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Sección "hooks" de AppSpecEl contenido de la sección 'hooks' del archivo AppSpec file varía en función de la plataforma decomputación de la implementación. La sección 'hooks' de una implementación de EC2/On-Premisescontiene los mapeos que vinculan los enlaces de eventos del ciclo de vida de la implementación a unoo varios scripts. La sección 'hooks' de una implementación de Lambda o de Amazon ECS especificalas funciones de validación de Lambda que se ejecutan durante un evento del ciclo de vida de laimplementación. Si un enlace de evento no está presente, no se ejecuta ninguna operación para eseevento. Esta sección solo es necesaria si ejecuta scripts o funciones de validación de Lambda como partede la implementación.

Temas• Sección "hooks" de AppSpec para una implementación de Amazon ECS (p. 416)• Sección "hooks" de AppSpec para una implementación de AWS Lambda (p. 419)• Sección "hooks" de AppSpec para una implementación de EC2/On-Premises (p. 421)

Sección "hooks" de AppSpec para una implementación deAmazon ECSTemas

• Lista de enlaces de eventos del ciclo de vida para una implementación de Amazon ECS (p. 416)• Orden de ejecución de los enlaces en una implementación de Amazon ECS (p. 417)• Estructura de la sección "hooks" (p. 418)• Función "hooks" de Lambda de ejemplo (p. 418)

Lista de enlaces de eventos del ciclo de vida para una implementación deAmazon ECS

Un enlace AWS Lambda es una función de Lambda especificada con una cadena en una nueva líneadespués del nombre del evento del ciclo de vida. Cada enlace se ejecuta una vez por implementación.A continuación, se muestran las descripciones de los eventos del ciclo de vida donde puede ejecutar unenlace durante una implementación de Amazon ECS.

• BeforeInstall: se utiliza para ejecutar tareas antes de crear el conjunto de tareas de sustitución.Un grupo de destino se asocia al conjunto de tareas original. Si se especifica un agente de escuchade prueba opcional, se asociada al conjunto de tareas original. En este momento no es posible unarestauración.

• AfterInstall: se utiliza para ejecutar tareas después de crear el conjunto de tareas de sustitucióny uno de los grupos de destino se asocia con él. Si se especifica un agente de escucha de pruebaopcional, se asociada al conjunto de tareas original. El resultado de la función de enlace en este eventode ciclo de vida puede activar una restauración.

• AfterAllowTestTraffic: se utiliza para ejecutar tareas después de que el agente de escucha deprueba envía tráfico al conjunto de tareas de sustitución. El resultado de la función de enlace en estepunto puede activar una restauración.

• BeforeAllowTraffic: se utiliza para ejecutar tareas después de que el segundo grupo de destino seasocie con el conjunto de tareas de sustitución, pero antes de que se envíe tráfico al conjunto de tareasde sustitución. El resultado de la función de enlace en este evento de ciclo de vida puede activar unarestauración.

• AfterAllowTraffic: se utiliza para ejecutar tareas después de que el segundo grupo de destinoenvía tráfico al conjunto de tareas de sustitución. El resultado de la función de enlace en este evento deciclo de vida puede activar una restauración.

Versión de API 2014-10-06416

Page 426: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Para obtener más información, consulte ¿Qué sucede durante una implementación de AmazonECS? (p. 24) y Tutorial: Implementación de un servicio de Amazon ECS con una prueba devalidación (p. 148).

Orden de ejecución de los enlaces en una implementación de Amazon ECS

En una implementación de Amazon ECS, los enlaces de eventos se ejecutan en el siguiente orden:

Note

No se pueden ejecutar mediante un script los eventos Start, Install, TestTraffic, AllowTraffic y Enden la implementación, motivo por el cual aparecen atenuados en este diagrama.

Versión de API 2014-10-06417

Page 427: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Estructura de la sección "hooks"Los siguientes ejemplos muestran la estructura de la sección 'hooks'.

Mediante YAML:

Hooks: - BeforeInstall: "BeforeInstallHookFunctionName" - AfterInstall: "AfterInstallHookFunctionName" - AfterAllowTestTraffic: "AfterAllowTestTrafficHookFunctionName" - BeforeAllowTraffic: "BeforeAllowTrafficHookFunctionName" - AfterAllowTraffic: "AfterAllowTrafficHookFunctionName"

Mediante JSON:

"Hooks": [ { "BeforeInstall": "BeforeInstallHookFunctionName" }, { "AfterInstall": "AfterInstallHookFunctionName" }, { "AfterAllowTestTraffic": "AfterAllowTestTrafficHookFunctionName" }, { "BeforeAllowTraffic": "BeforeAllowTrafficHookFunctionName" }, { "AfterAllowTraffic": "AfterAllowTrafficHookFunctionName" } ]}

Función "hooks" de Lambda de ejemploUse la sección 'hooks' para especificar la función Lambda a la que CodeDeploy puede llamar paravalidar una implementación de Lambda. Puede utilizar la misma función o una diferente para los eventosde ciclo de vida de implementación BeforeInstall, AfterInstall, AfterAllowTestTraffic,BeforeAllowTraffic y AfterAllowTraffic. Una vez completadas las pruebas de validación,la función AfterAllowTraffic de Lambda llama a CodeDeploy y envía el resultado Succeeded oFailed.

Important

Se considera que se ha producido un error en la implementación si la función de validación deLambda no informa a CodeDeploy en el plazo de una hora.

Antes de invocar una función de enlace de Lambda, el servidor debe recibir una notificación con elID de implementación y el ID de ejecución del enlace de evento del ciclo de vida con el comandoputLifecycleEventHookExecutionStatus.

A continuación, se muestra una función de enlace de Lambda de ejemplo escrita en Node.js.

'use strict';

const aws = require('aws-sdk');const codedeploy = new aws.CodeDeploy({apiVersion: '2014-10-06'});

exports.handler = (event, context, callback) => { //Read the DeploymentId from the event payload. var deploymentId = event.DeploymentId;

Versión de API 2014-10-06418

Page 428: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

//Read the LifecycleEventHookExecutionId from the event payload var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;

/* Enter validation tests here. */

// Prepare the validation test results with the deploymentId and // the lifecycleEventHookExecutionId for AWS CodeDeploy. var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: 'Succeeded' // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. callback('Validation test failed'); } else { // Validation succeeded. callback(null, 'Validation test succeeded'); } });};

Sección "hooks" de AppSpec para una implementación de AWSLambdaTemas

• Lista de enlaces de eventos del ciclo de vida para una implementación de AWS Lambda (p. 419)• Orden de ejecución de los enlaces en una implementación de versiones de funciones

Lambda (p. 419)• Estructura de la sección "hooks" (p. 420)• Función "hooks" de Lambda de ejemplo (p. 420)

Lista de enlaces de eventos del ciclo de vida para una implementación de AWSLambda

Un enlace AWS Lambda es una función de Lambda especificada con una cadena en una nueva líneadespués del nombre del evento del ciclo de vida. Cada enlace se ejecuta una vez por implementación.A continuación se muestran las descripciones de los enlaces disponibles para su uso en su archivoAppSpec.

• BeforeAllowTraffic–: utilícelo para ejecutar tareas antes de que el tráfico se desvíe a la versión de lafunción de Lambda implementada.

• AfterAllowTraffic–: utilícelo para ejecutar tareas después de que el tráfico se desvíe a la versión de lafunción de Lambda implementada.

Orden de ejecución de los enlaces en una implementación de versiones defunciones Lambda

En una implementación de versiones de funciones Lambda sin servidor, los enlaces de eventos seejecutan en el siguiente orden:

Versión de API 2014-10-06419

Page 429: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Note

Los eventos Start, AllowTraffic y End de la implementación no se pueden ejecutar mediante unscript, motivo por el cual aparecen atenuados en este diagrama.

Estructura de la sección "hooks"

Los siguientes ejemplos muestran la estructura de la sección "hooks".

Mediante YAML:

hooks: - BeforeAllowTraffic: BeforeAllowTrafficHookFunctionName - AfterAllowTraffic: AfterAllowTrafficHookFunctionName

Mediante JSON:

"hooks": [{ "BeforeAllowTraffic": "BeforeAllowTrafficHookFunctionName" }, { "AfterAllowTraffic": "AfterAllowTrafficHookFunctionName"}]

Función "hooks" de Lambda de ejemplo

Use la sección "hooks" para especificar la función de Lambda a la que CodeDeploy puede llamarpara validar una implementación de Lambda. Puede utilizar la misma función o una diferente para loseventos de ciclo de vida de implementación BeforeAllowTraffic y AfterAllowTraffic. Una vezcompletadas las pruebas de validación, la función de validación de Lambda llama a CodeDeploy y envía elresultado Succeeded o Failed.

Important

Se considera que se ha producido un error en la implementación si la función de validación deLambda no informa a CodeDeploy en el plazo de una hora.

Versión de API 2014-10-06420

Page 430: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Antes de invocar una función de enlace de Lambda, el servidor debe recibir una notificación con elID de implementación y el ID de ejecución del enlace de evento del ciclo de vida con el comandoputLifecycleEventHookExecutionStatus.

A continuación, se muestra una función de enlace de Lambda de ejemplo escrita en Node.js.

'use strict';

const aws = require('aws-sdk');const codedeploy = new aws.CodeDeploy({apiVersion: '2014-10-06'});

exports.handler = (event, context, callback) => { //Read the DeploymentId from the event payload. var deploymentId = event.DeploymentId;

//Read the LifecycleEventHookExecutionId from the event payload var lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;

/* Enter validation tests here. */

// Prepare the validation test results with the deploymentId and // the lifecycleEventHookExecutionId for AWS CodeDeploy. var params = { deploymentId: deploymentId, lifecycleEventHookExecutionId: lifecycleEventHookExecutionId, status: 'Succeeded' // status can be 'Succeeded' or 'Failed' }; // Pass AWS CodeDeploy the prepared validation test results. codedeploy.putLifecycleEventHookExecutionStatus(params, function(err, data) { if (err) { // Validation failed. callback('Validation test failed'); } else { // Validation succeeded. callback(null, 'Validation test succeeded'); } });};

Sección "hooks" de AppSpec para una implementación de EC2/On-PremisesTemas

• Lista de enlaces de eventos del ciclo de vida (p. 421)• Disponibilidad de los enlaces de eventos del ciclo de vida (p. 423)• Orden de ejecución de los enlaces en una implementación (p. 424)• Estructura de la sección "hooks" (p. 426)• Disponibilidad de las variables de entorno para los enlaces (p. 427)• Ejemplo de enlaces (p. 428)

Lista de enlaces de eventos del ciclo de vida

Un enlace de implementación de EC2/On-Premises se ejecuta una vez por cada implementación en unainstancia. Puede especificar uno o varios scripts para ejecutar en un enlace. Cada enlace de un evento del

Versión de API 2014-10-06421

Page 431: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

ciclo de vida se especifica con una cadena en una línea independiente. A continuación se muestran lasdescripciones de los enlaces disponibles para su uso en su archivo AppSpec.

Para obtener información sobre los enlaces de eventos del ciclo de vida válidos para cada tipode implementación y restauración, consulte Disponibilidad de los enlaces de eventos del ciclo devida (p. 423).

• ApplicationStop: este evento del ciclo de vida de la implementación se produce incluso antesde que se descargue la revisión de la aplicación. Puede especificar scripts para este evento paradetener con fluidez la aplicación o para eliminar los paquetes instalados actualmente en la preparaciónde una implementación. El AppSpec file y los scripts usados para este evento del ciclo de vida de laimplementación proceden de la revisión de la aplicación anterior implementada correctamente.

Note

Un AppSpec file no existe en una instancia antes de que se implemente. Por este motivo, elenlace ApplicationStop no se ejecuta la primera vez que se realiza la implementaciónen la instancia. Puede utilizar el enlace ApplicationStop la segunda vez que realice laimplementación en una instancia.

Para determinar la ubicación de la última revisión de la aplicación implementada correctamente, elagente de CodeDeploy busca en la ubicación que se indica en el archivo deployment-group-id_last_successful_install. Este archivo se encuentra en:

La carpeta /opt/codedeploy-agent/deployment-root/deployment-instructions de lasinstancias Amazon EC2 con Amazon Linux, Ubuntu Server y RHEL.

La carpeta C:\ProgramData\Amazon\CodeDeploy\deployment-instructions de las instanciasAmazon EC2 con Windows Server.

Para solucionar un error de una implementación durante el evento del ciclo de vida de la implementaciónApplicationStop, consulte Solución de problemas con los eventos de ciclo de vida de laimplementación ApplicationStop, BeforeBlockTraffic y AfterBlockTraffic que han producido unerror (p. 458).

• DownloadBundle: durante este evento del ciclo de vida de la implementación, el agente deCodeDeploy copia los archivos de la revisión de la aplicación en una ubicación temporal:

La carpeta /opt/codedeploy-agent/deployment-root/deployment-group-id/deployment-id/deployment-archive de las instancias Amazon EC2 con Amazon Linux, Ubuntu Server y RHEL.

La carpeta C:\ProgramData\Amazon\CodeDeploy\deployment-group-id\deployment-id\deployment-archive de las instancias Amazon EC2 con Windows Server.

Este evento está reservado para el agente de CodeDeploy y no se puede usar para ejecutar scripts.

Para solucionar un error de una implementación durante el evento del ciclo de vida de la implementaciónDownloadBundle, consulte Solución de problemas con un evento de ciclo de vida de la implementaciónDownloadBundle que ha producido el error "UnknownError: not opened for reading" (p. 459).

• BeforeInstall: puede usar este evento del ciclo de vida de la implementación para tareas depreinstalación, como descifrar archivos y crear una copia de seguridad de la versión actual.

• Install: durante este evento del ciclo de vida de la implementación, el agente de CodeDeploy copiaen la carpeta de destino definitiva los archivos de la revisión que se encuentran en la ubicación temporal.Este evento está reservado para el agente de CodeDeploy y no se puede usar para ejecutar scripts.

• AfterInstall: puede usar este evento del ciclo de vida de la implementación para configurar laaplicación o para cambiar los permisos de los archivos.

• ApplicationStart: normalmente, este evento del ciclo de vida de la implementación se utiliza parareiniciar los servicios que se detuvieron durante ApplicationStop.

Versión de API 2014-10-06422

Page 432: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

• ValidateService: este es el último evento del ciclo de vida de la implementación. Se utiliza paraverificar que la implementación se ha completado correctamente.

• BeforeBlockTraffic: puede utilizar este evento del ciclo de vida de la implementación para ejecutartareas en las instancias antes de que se anule su registro en un balanceador de carga.

Para solucionar un error de una implementación durante el evento del ciclo de vida de la implementaciónBeforeBlockTraffic, consulte Solución de problemas con los eventos de ciclo de vida dela implementación ApplicationStop, BeforeBlockTraffic y AfterBlockTraffic que han producido unerror (p. 458).

• BlockTraffic: durante este evento del ciclo de vida de la implementación, se bloquea el tráfico deInternet a las instancias que están actualmente sirviendo tráfico. Este evento está reservado para elagente de CodeDeploy y no se puede usar para ejecutar scripts.

• AfterBlockTraffic: puede utilizar este evento del ciclo de vida de la implementación para ejecutartareas en las instancias después de que se anule su registro en un balanceador de carga.

Para solucionar un error de una implementación durante el evento del ciclo de vida de la implementaciónAfterBlockTraffic, consulte Solución de problemas con los eventos de ciclo de vida de laimplementación ApplicationStop, BeforeBlockTraffic y AfterBlockTraffic que han producido unerror (p. 458).

• BeforeAllowTraffic: puede utilizar este evento del ciclo de vida de la implementación para ejecutartareas en las instancias antes de que se registren en un balanceador de carga.

• AllowTraffic: durante este evento del ciclo de vida de la implementación, se permite el acceso deltráfico de Internet a las instancias después de una implementación. Este evento está reservado para elagente de CodeDeploy y no se puede usar para ejecutar scripts.

• AfterAllowTraffic: puede utilizar este evento del ciclo de vida de la implementación para ejecutartareas en las instancias después de que se registren en un balanceador de carga.

Disponibilidad de los enlaces de eventos del ciclo de vida

En la siguiente tabla se indican los enlaces de eventos del ciclo de vida disponibles para cada escenariode implementación y restauración.

Nombre deevento del ciclode vida

Implementaciónin situ¹

Implementaciónblue/green:instanciasoriginales

Implementaciónblue/green:instancias desustitución

Restauracióndeimplementaciónblue/green:instanciasoriginales

Restauracióndeimplementaciónblue/green:instancias desustitución

ApplicationStop ✓   ✓    

DownloadBundle² ✓   ✓    

BeforeInstall ✓   ✓    

Install² ✓   ✓    

AfterInstall ✓   ✓    

ApplicationStart ✓   ✓    

ValidateService ✓   ✓    

BeforeBlockTraffic ✓ ✓     ✓

BlockTraffic² ✓ ✓     ✓

Versión de API 2014-10-06423

Page 433: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Nombre deevento del ciclode vida

Implementaciónin situ¹

Implementaciónblue/green:instanciasoriginales

Implementaciónblue/green:instancias desustitución

Restauracióndeimplementaciónblue/green:instanciasoriginales

Restauracióndeimplementaciónblue/green:instancias desustitución

AfterBlockTraffic ✓ ✓     ✓

BeforeAllowTraffic ✓   ✓ ✓  

AllowTraffic² ✓   ✓ ✓  

AfterAllowTraffic ✓   ✓ ✓  

¹Se aplica también a la restauración de una implementación in situ.

² Reservado para operaciones de CodeDeploy. No se puede utilizar para ejecutar scripts.

Orden de ejecución de los enlaces en una implementación

Implementaciones in situ

En una implementación in situ, incluida la restauración de una implementación in situ, los enlaces deeventos se ejecutan en el orden siguiente:

Note

En el caso de las implementaciones in situ, los seis enlaces relacionados con el bloqueo y elpermiso del tráfico solo se aplican si se ha especificado una instancia de Classic Load Balancer,Balanceador de carga de aplicaciones o Network Load Balancer desde Elastic Load Balancing enel grupo de implementaciones.

Versión de API 2014-10-06424

Page 434: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Note

Los eventos Start, DownloadBundle, Install y End de la implementación no se pueden ejecutarmediante un script, motivo por el cual aparecen atenuados en este diagrama. Sin embargo, puedeeditar la sección 'files' del AppSpec file para especificar lo que se debe instalar durante elevento Install (Instalar).

Implementaciones blue/green

En una implementación blue/green, los enlaces de eventos se ejecutan en el siguiente orden:

Versión de API 2014-10-06425

Page 435: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Note

Los eventos Start, DownloadBundle, Install, BlockTraffic, AllowTraffic y End de la implementaciónno se pueden ejecutar mediante un script, motivo por el cual aparecen atenuados en estediagrama. Sin embargo, puede editar la sección "files" del AppSpec file para especificar lo que sedebe instalar durante el evento Install.

Estructura de la sección "hooks"

La sección 'hooks' tiene la siguiente estructura:

hooks: deployment-lifecycle-event-name: - location: script-location timeout: timeout-in-seconds runas: user-name

Versión de API 2014-10-06426

Page 436: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

Puede incluir los siguientes elementos en una entrada hook detrás del nombre de evento del ciclo de vidade la implementación:

location

Obligatorio. La ubicación en el paquete del archivo de script de la revisión.timeout

Opcional. El número de segundos que se puede ejecutar el script antes de que se considere que se haproducido un error. El valor predeterminado es 3 600 segundos (1 hora).

Note

3 600 segundos (1 hora) es la cantidad máxima de tiempo de ejecución permitido para elscript para cada evento del ciclo de vida de la implementación. Si el script supera este límite,la implementación se detiene y la implementación en la instancia da un error. Asegúrese deque el número total de segundos especificados en timeout para todos los scripts en cadaevento del ciclo de vida de la implementación no supere este límite.

runas

Opcional. El usuario que se va a suplantar al ejecutar el script. De forma predeterminada, es el agentede CodeDeploy que se ejecuta en la instancia. CodeDeploy no almacena las contraseñas, por lo queel usuario no se puede suplantar si el usuario runas necesita una contraseña. Este elemento se aplicasolo a las instancias de Amazon Linux y Ubuntu Server.

Disponibilidad de las variables de entorno para los enlaces

Durante cada evento del ciclo de vida de la implementación, los scripts de enlace pueden tener acceso alas siguientes variables de entorno:

APPLICATION_NAME

El nombre de la aplicación en CodeDeploy que forma parte de la implementación actual (por ejemplo,WordPress_App).

DEPLOYMENT_ID

El ID que CodeDeploy ha asignado a la implementación actual (por ejemplo, d-AB1CDEF23).DEPLOYMENT_GROUP_NAME

El nombre del grupo de implementaciones en CodeDeploy que forma parte de la implementaciónactual (por ejemplo, WordPress_DepGroup).

DEPLOYMENT_GROUP_ID

El ID del grupo de implementaciones en CodeDeploy que forma parte de la implementación actual (porejemplo, b1a2189b-dd90-4ef5-8f40-4c1c5EXAMPLE).

LIFECYCLE_EVENT

El nombre del evento del ciclo de vida de la implementación actual (por ejemplo, AfterInstall).

Estas variables de entorno son locales con respecto a cada evento del ciclo de vida de la implementación.

El script siguiente cambia el puerto de escucha de un servidor HTTP Apache a 9090 en lugar de a 80 si elvalor de DEPLOYMENT_GROUP_NAME es igual a Staging. Este script debe invocarse durante el eventodel ciclo de vida de implementación BeforeInstall:

Versión de API 2014-10-06427

Page 437: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSección "hooks" de AppSpec

if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ]then sed -i -e 's/Listen 80/Listen 9090/g' /etc/httpd/conf/httpd.conffi

El script de ejemplo siguiente cambia el nivel de detalle de los mensajes registrados en su log deerrores de advertencia a depurar si el valor de la variable de entorno DEPLOYMENT_GROUP_NAMEes igual a Staging. Este script debe invocarse durante el evento del ciclo de vida de implementaciónBeforeInstall:

if [ "$DEPLOYMENT_GROUP_NAME" == "Staging" ]then sed -i -e 's/LogLevel warn/LogLevel debug/g' /etc/httpd/conf/httpd.conffi

El script de ejemplo siguiente sustituye el texto de la página web especificada por el texto que muestrael valor de estas variables de entorno. Este script debe invocarse durante el evento del ciclo de vida deimplementación AfterInstall:

✔!/usr/bin/python

import os strToSearch="<h2>This application was deployed using CodeDeploy.</h2>"strToReplace="<h2>This page for "+os.environ['APPLICATION_NAME']+" application and "+os.environ['DEPLOYMENT_GROUP_NAME']+" deployment group with "+os.environ['DEPLOYMENT_GROUP_ID']+" deployment group ID was generated by a "+os.environ['LIFECYCLE_EVENT']+" script during "+os.environ['DEPLOYMENT_ID']+" deployment.</h2>" fp=open("/var/www/html/index.html","r")buffer=fp.read()fp.close() fp=open("/var/www/html/index.html","w")fp.write(buffer.replace(strToSearch,strToReplace))fp.close()

Ejemplo de enlaces

A continuación se muestra un ejemplo de una entrada hooks (enlaces) que especifica dos enlaces para elevento de ciclo de vida AfterInstall.

hooks: AfterInstall: - location: Scripts/RunResourceTests.sh timeout: 180 - location: Scripts/PostDeploy.sh timeout: 180

El script Scripts/RunResourceTests.sh se ejecuta durante la fase AfterInstall del proceso deimplementación. La implementación no tendrá éxito si el script tarda más de 180 segundos (3 minutos) enejecutarse.

La ubicación de los scripts que especifica en la sección "hooks" es relativa a la raíz del paquete de revisiónde la aplicación. En el ejemplo anterior, un archivo denominado RunResourceTests.sh está en undirectorio denominado Scripts. El directorio Scripts está en la raíz del paquete. Para obtener másinformación, consulte Planear una revisión para CodeDeploy (p. 304).

Versión de API 2014-10-06428

Page 438: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEjemplo de AppSpec File

Ejemplo de AppSpec FileEste tema proporciona también archivos AppSpec de ejemplo para una implementación de AWS Lambda yde EC2/On-Premises.

Temas• AppSpec File Ejemplo de una implementación de Amazon ECS (p. 429)• AppSpec File Ejemplo de una implementación de AWS Lambda (p. 431)• AppSpec File Ejemplo de una implementación de EC2/On-Premises (p. 432)

AppSpec File Ejemplo de una implementación deAmazon ECSA continuación, se muestra un ejemplo de un AppSpec file escrito en YAML para implementar un serviciode Amazon ECS.

version: 0.0Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "arn:aws:ecs:us-east-1:111222333444:task-definition/my-task-definition-family-name:1" LoadBalancerInfo: ContainerName: "SampleApplicationName" ContainerPort: 80✔ Optional properties PlatformVersion: "LATEST" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["subnet-1234abcd","subnet-5678abcd"] SecurityGroups: ["sg-12345678"] AssignPublicIp: "ENABLED"Hooks: - BeforeInstall: "LambdaFunctionToValidateBeforeInstall" - AfterInstall: "LambdaFunctionToValidateAfterTraffic" - AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficStarts" - BeforeAllowTraffic: "LambdaFunctionToValidateBeforeAllowingProductionTraffic" - AfterAllowTraffic: "LambdaFunctionToValidateAfterAllowingProductionTraffic"

Esta es una versión del ejemplo anterior escrita en JSON.

{ "version": 0.0, "Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "arn:aws:ecs:us-east-1:111222333444:task-definition/my-task-definition-family-name:1", "LoadBalancerInfo": { "ContainerName": "SampleApplicationName", "ContainerPort": 80 }, "PlatformVersion": "LATEST",

Versión de API 2014-10-06429

Page 439: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAppSpec File Ejemplo de una

implementación de Amazon ECS

"NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "subnet-1234abcd", "subnet-5678abcd" ], "SecurityGroups": [ "sg-12345678" ], "AssignPublicIp": "ENABLED" } } } } } ], "Hooks": [ { "BeforeInstall": "LambdaFunctionToValidateBeforeInstall" }, { "AfterInstall": "LambdaFunctionToValidateAfterTraffic" }, { "AfterAllowTestTraffic": "LambdaFunctionToValidateAfterTestTrafficStarts" }, { "BeforeAllowTraffic": "LambdaFunctionToValidateBeforeAllowingProductionTraffic" }, { "AfterAllowTraffic": "LambdaFunctionToValidateAfterAllowingProductionTraffic" } ]}

A continuación se muestra la secuencia de eventos durante la implementación:

1. Antes de instalar la aplicación de Amazon ECS actualizada en el conjunto de tareas de sustitución, seejecuta la función Lambda denominada LambdaFunctionToValidateBeforeInstall.

2. Una vez instalada la aplicación de Amazon ECS actualizada en el conjunto de tareasde sustitución, pero antes de recibir tráfico, se ejecuta la función Lambda denominadaLambdaFunctionToValidateAfterTraffic.

3. Después de que la aplicación de Amazon ECS en el conjunto de tareas de sustitución empiezaa recibir tráfico del agente de escucha de prueba, se ejecuta la función Lambda denominadaLambdaFunctionToValidateAfterTestTrafficStarts. Esta función probablemente ejecutapruebas de validación para determinar si la implementación continúa. Si no especifica un agente deescucha de prueba en el grupo de implementaciones, esta se omite.

4. Después de completar las pruebas de validación en el enlace AfterAllowTestTrafficy antes deenviar tráfico de producción a la aplicación de Amazon ECS actualizada, se ejecuta la función Lambdadenominada LambdaFunctionToValidateBeforeAllowingProductionTraffic.

5. Después de enviar tráfico de producción a la aplicación Amazon ECS actualizadaen el conjunto de tareas de sustitución, se ejecuta la función Lambda denominadaLambdaFunctionToValidateAfterAllowingProductionTraffic.

Las funciones Lambda que se ejecutan durante cualquier enlace pueden llevar a cabo pruebas devalidación o recopilar métricas de tráfico.

Versión de API 2014-10-06430

Page 440: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAppSpec File Ejemplo de una

implementación de AWS Lambda

AppSpec File Ejemplo de una implementación deAWS LambdaA continuación, se muestra un ejemplo de un AppSpec file escrito en YAML para implementar una versiónde una función de Lambda.

version: 0.0Resources: - myLambdaFunction: Type: AWS::Lambda::Function Properties: Name: "myLambdaFunction" Alias: "myLambdaFunctionAlias" CurrentVersion: "1" TargetVersion: "2"Hooks: - BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift" - AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift"

Esta es una versión del ejemplo anterior escrita en JSON.

{ "version": 0.0, "Resources": [{ "myLambdaFunction": { "Type": "AWS::Lambda::Function", "Properties": { "Name": "myLambdaFunction", "Alias": "myLambdaFunctionAlias", "CurrentVersion": "1", "TargetVersion": "2" } } }], "Hooks": [{ "BeforeAllowTraffic": "LambdaFunctionToValidateBeforeTrafficShift" }, { "AfterAllowTraffic": "LambdaFunctionToValidateAfterTrafficShift" } ] }

A continuación se muestra la secuencia de eventos durante la implementación:

1. Antes de desviar el tráfico de la versión 1 de la función de Lambda llamadamyLambdaFunction a la versión 2, ejecute una función de Lambda llamadaLambdaFunctionToValidateBeforeTrafficShift que valide que la implementación está listapara empezar a desviar el tráfico.

2. Si LambdaFunctionToValidateBeforeTrafficShift devuelve un código de salida de 0 (éxito),se empieza a desviar el tráfico a la versión 2 de myLambdaFunction. La configuración de estaimplementación determina la velocidad a la que se desvía el tráfico.

3. Una vez completado el desvío de tráfico de la versión 1 de la función de Lambda denominadamyLambdaFunction a la versión 2, ejecute una función de Lambda denominadaLambdaFunctionToValidateAfterTrafficShift que valide que la implementación se harealizado correctamente.

Versión de API 2014-10-06431

Page 441: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAppSpec File Ejemplo de una

implementación de EC2/On-Premises

AppSpec File Ejemplo de una implementación de EC2/On-PremisesA continuación se muestra un ejemplo de un AppSpec file para una implementación in situ en una instanciade Amazon Linux, Ubuntu Server o RHEL.

Note

Las implementaciones en instancias de Windows Server no admiten el elemento runas. Si va arealizar la implementación en instancias de Windows Server, no lo incluya en el AppSpec file.

version: 0.0os: linuxfiles: - source: Config/config.txt destination: /webapps/Config - source: source destination: /webapps/myApphooks: BeforeInstall: - location: Scripts/UnzipResourceBundle.sh - location: Scripts/UnzipDataBundle.sh AfterInstall: - location: Scripts/RunResourceTests.sh timeout: 180 ApplicationStart: - location: Scripts/RunFunctionalTests.sh timeout: 3600 ValidateService: - location: Scripts/MonitorService.sh timeout: 3600 runas: codedeployuser

Para una instancia de Windows Server, cambie os: linux a os: windows. Además, las rutas dedestination deben ser completas (por ejemplo, c:\temp\webapps\Config y c:\temp\webapps\myApp). No incluya el elemento runas.

A continuación se muestra la secuencia de eventos durante la implementación:

1. Ejecutar el script que se encuentra en Scripts/UnzipResourceBundle.sh.2. Si el script anterior devuelve un código de salida de 0 (éxito), ejecutar el script ubicado en Scripts/

UnzipDataBundle.sh.3. Copiar el archivo desde la ruta de Config/config.txt a la ruta /webapps/Config/config.txt.4. Copiar recursivamente todos los archivos del directorio source en el directorio /webapps/myApp.5. Ejecutar el script ubicado en Scripts/RunResourceTests.sh con un tiempo de espera de 180

segundos (3 minutos).6. Ejecutar el script ubicado en Scripts/RunFunctionalTests.sh con un tiempo de espera de 3 600

segundos (1 hora).7. Ejecutar el script ubicado en Scripts/MonitorService.sh como el usuario codedeploy con un

tiempo de espera de 3 600 segundos (1 hora).

Espaciado de AppSpec FileA continuación se presenta el formato correcto para el espaciado de AppSpec file. Los números entrecorchetes indican el número de espacios que debe aparecer entre los elementos. Por ejemplo, [4]

Versión de API 2014-10-06432

Page 442: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEspaciado de AppSpec File

significa que debe insertar cuatro espacios entre los elementos. CodeDeploy producirá un error que puedeser difícil de depurar si las ubicaciones y el número de espacios en un AppSpec file no son correctos.

version:[1]version-numberos:[1]operating-system-namefiles:[2]-[1]source:[1]source-files-location[4]destination:[1]destination-files-locationpermissions:[2]-[1]object:[1]object-specification[4]pattern:[1]pattern-specification[4]except:[1]exception-specification[4]owner:[1]owner-account-name[4]group:[1]group-name[4]mode:[1]mode-specification[4]acls: [6]-[1]acls-specification [4]context:[6]user:[1]user-specification[6]type:[1]type-specification[6]range:[1]range-specification[4]type:[6]-[1]object-typehooks:[2]deployment-lifecycle-event-name:[4]-[1]location:[1]script-location[6]timeout:[1]timeout-in-seconds[6]runas:[1]user-name

A continuación se muestra un ejemplo de un AppSpec file con el espaciado correcto:

version: 0.0os: linuxfiles: - source: / destination: /var/www/html/WordPresshooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

Para obtener más información acerca del espaciado, consulte la especificación de YAML.

Versión de API 2014-10-06433

Page 443: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioValidar el objeto AppSpec File y la ubicación del archivo

Validar el objeto AppSpec File y la ubicación delarchivo

Sintaxis de archivos

Puede utilizar la secuencia de comandos del asistente de AppSpec proporcionada por AWS para validar elcontenido de un AppSpec file. La secuencia de comandos y las plantillas del AppSpec file se encuentranen GitHub.

También puede utilizar en su lugar una herramienta basada en navegador, como YAML Lint u OnlineYAML Parser para ayudarle a comprobar la sintaxis YAML.

Ubicación del archivo

Para verificar que ha colocado su AppSpec file en el directorio raíz de la estructura de directorios delcontenido de código fuente de la aplicación, ejecute uno de los siguientes comandos:

En instancias de Linux, macOS, or Unix locales:

ls path/to/root/directory/appspec.yml

Si el AppSpec file no se encuentra allí, se mostrará un error "No existe ese archivo o directorio".

En instancias de Windows locales:

dir path\to\root\directory\appspec.yml

Si el AppSpec file no se encuentra allí, se mostrará el error "Archivo no encontrado".

Versión de API 2014-10-06434

Page 444: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Referencia de configuración delagente de CodeDeploy

Cuando se instala el agente de CodeDeploy, se coloca un archivo de configuración en la instancia. Estearchivo de configuración especifica las rutas de directorio y otros ajustes que CodeDeploy usa cuandointeractúa con la instancia. Puede cambiar algunas de las opciones de configuración en el archivo.

En las instancias de Amazon Linux, Ubuntu Server y Red Hat Enterprise Linux (RHEL), el archivo deconfiguración se denomina codedeployagent.yml. Se coloca en el directorio /etc/codedeploy-agent/conf.

En las instancias de Windows Server, el archivo de configuración se denomina conf.yml. Se coloca en eldirectorio C:\ProgramData\Amazon\CodeDeploy.

Los valores de configuración incluyen:

:log_aws_wire: Establézcalo en true para que el agente deCodeDeploy capture registros en red de AmazonS3 y los escriba en un archivo denominadocodedeploy-agent.wire.log en la ubicación ala que apunta el valor : log_dir:.

Warning

Debe establecer :log_aws_wire: en truesolo durante el tiempo necesario paracapturar los registros en red. El archivocodedeploy-agent.wire.log puedeaumentar de tamaño rápidamente. Lasalida del registro en red de este archivopuede contener información confidencial,incluido el contenido de texto sin formatode los archivos que se transfieren a odesde Amazon S3 mientras que estaconfiguración estaba establecida en true.Los registros en red contienen informaciónsobre toda la actividad de Amazon S3asociada a la cuenta de AWS mientrasesta configuración estaba establecida entrue, no solo la actividad relacionada conlas implementaciones de CodeDeploy.

El valor predeterminado es false.

Esta configuración se aplica a todos los tiposde instancias. Debe añadir esta opción deconfiguración a las instancias de Windows Serverpara que puedan utilizarla.

:log_dir: La carpeta de la instancia donde se almacenanlos archivos de registro relacionados con lasoperaciones del agente de CodeDeploy.

Versión de API 2014-10-06435

Page 445: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

La configuración predeterminada es '/var/log/aws/codedeploy-agent' para las instanciasde Amazon Linux, Ubuntu Server y RHEL, y C:\ProgramData\Amazon\CodeDeploy\log paralas instancias de Windows Server.

:pid_dir: La carpeta en la que se almacena codedeploy-agent.pid.

Este archivo contiene el ID de proceso (PID) delagente de CodeDeploy. El valor predeterminado es'/opt/codedeploy-agent/state/.pid'.

Esta configuración se aplica únicamente a lasinstancias de Amazon Linux, Ubuntu Server yRHEL.

:program_name: El nombre del programa del agente deCodeDeploy.

El valor predeterminado es codedeploy-agent.

Esta configuración se aplica únicamente a lasinstancias de Amazon Linux, Ubuntu Server yRHEL.

:root_dir: La carpeta donde se almacenan las revisionesrelacionadas, el historial de implementación y losscripts de implementación en la instancia.

La configuración predeterminada es '/opt/codedeploy-agent/deployment-root'para las instancias de Amazon Linux, UbuntuServer y RHEL, y C:\ProgramData\Amazon\CodeDeploy para las instancias de WindowsServer.

:verbose: Establézcalo en true para que el agente deCodeDeploy imprima los archivos de registro demensajes de depuración en la instancia.

La configuración predeterminada es false paralas instancias de Amazon Linux, Ubuntu Servery RHEL, y true para las instancias de WindowsServer.

:wait_between_runs: El intervalo, en segundos, entre los sondeos quehace el agente de CodeDeploy para ver si hayimplementaciones de CodeDeploy pendientes.

El valor predeterminado es 1.

Versión de API 2014-10-06436

Page 446: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTemas relacionados

:on_premises_config_file: En las instancias on-premises, la rutaa una ubicación alternativa para elarchivo de configuración denominadocodedeploy.onpremises.yml (para UbuntuServer y RHEL) o conf.onpremises.yml (paraWindows Server).

De forma predeterminada, estos archivos sealmacenan en /etc/codedeploy-agent/conf/codedeploy.onpremises.yml paraUbuntu Server y RHEL, y en C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.ymlpara Windows Server.

Está disponible en la versión 1.0.1.686 y versionesposteriores del agente de CodeDeploy.

:proxy_uri: (Opcional) El proxy HTTP a través del que deseaque el agente de CodeDeploy se conecte aAWS para las operaciones de CodeDeploy.Utilice un formato similar a https://user:[email protected]:443/path?query.

Está disponible en la versión 1.0.1.824 y versionesposteriores del agente de CodeDeploy.

:max_revisions: (Opcional) El número de revisiones de aplicaciónpara un grupo de implementaciones que desea queel agente de CodeDeploy archive. Se eliminarántodas las revisiones que superen el númeroespecificado.

Introduzca un número entero positivo. Si no seespecifica ningún valor, CodeDeploy conservarálas cinco revisiones más recientes además de larevisión implementada en la actualidad.

Se admite en la versión 1.0.1.966 y versionesposteriores del agente de CodeDeploy.

Temas relacionadosTrabajar con el agente de CodeDeploy (p. 176)

Gestión de las operaciones del agente de CodeDeploy (p. 184)

Versión de API 2014-10-06437

Page 447: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Referencia de plantillas de AWSCloudFormation para CodeDeploy

En esta sección se presentan los recursos, la transformación y el enlace de AWS CloudFormationdiseñados para trabajar con implementaciones de CodeDeploy. Para obtener una explicación sobrecómo crear una actualización de pila administrada por el enlace de AWS CloudFormation paraCodeDeploy, consulte Crear una implementación blue/green (azul/verde) de Amazon ECS a través deAWS CloudFormation (p. 335)

Note

Los enlaces de AWS CloudFormation son parte de los componentes de AWS CloudFormation deAWS y son diferentes de los enlaces de eventos del ciclo de vida de CodeDeploy.

Además de los otros métodos disponibles en CodeDeploy, puede utilizar plantillas de AWSCloudFormation para llevar a cabo las siguientes tareas:

• Crear aplicaciones.• Crear grupos de implementaciones y especificar una revisión de destino.• Crear configuraciones de implementación• Crear instancias Amazon EC2.

AWS CloudFormation es un servicio que le ayuda a modelar y configurar los recursos de AWS medianteplantillas. Una plantilla de AWS CloudFormation es un archivo de texto cuyo formato cumple elestándar JSON. Puede crear una plantilla que describa todos los recursos de AWS que desea, y AWSCloudFormation se encargará del aprovisionamiento y la configuración de dichos recursos.

Para obtener más información, consulte ¿Qué es AWS CloudFormation? y Trabajo con plantillas de AWSCloudFormation en la Guía del usuario de AWS CloudFormation.

Si tiene previsto utilizar plantillas de AWS CloudFormation que sean compatibles con CodeDeploy ensu organización, como administrador, debe conceder acceso a AWS CloudFormation y a los serviciosy acciones de AWS de los que depende AWS CloudFormation. Para conceder permisos para crearaplicaciones, grupos de implementaciones y configuraciones de implementación, asocie la siguientepolítica a los usuarios de IAM que trabajarán con AWS CloudFormation:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudformation:*" ], "Resource": "*" } ]}

Versión de API 2014-10-06438

Page 448: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Para obtener más información acerca de las políticas administradas, consulte los siguientes temas:

• Para ver la política que debe asociarse a los usuarios de IAM que van a crear instancias AmazonEC2, consulte Creación de una instancia Amazon EC2 para CodeDeploy (plantilla de AWSCloudFormation) (p. 216).

• Para obtener información sobre cómo asociar políticas a usuarios de IAM, consulte Administración depolíticas de IAM en la Guía del usuario de IAM.

• Para obtener información sobre cómo restringir a los usuarios a un conjunto limitado de accionesy recursos de CodeDeploy, consulte Políticas administradas (predefinidas) de AWS paraCodeDeploy (p. 384).

En la siguiente tabla, se desglosan las acciones que una plantilla de AWS CloudFormation puede realizaren su nombre, y se incluyen enlaces para obtener más información sobre los tipos de recursos de AWS ysus tipos de propiedad que puede añadir a una plantilla de AWS CloudFormation.

Acción Referencia de AWSCloudFormation

Tipo de referencia

Creación de una aplicación deCodeDeploy

AWS::CodeDeploy::Application Recurso de AWSCloudFormation

Crear y especificar losdetalles de un grupo deimplementaciones que se vaa utilizar para implementar lasrevisiones de la aplicación. ¹

AWS::CodeDeploy::DeploymentGroupRecurso de AWSCloudFormation

Crear un grupo de reglas deimplementación, así como lascondiciones de éxito y de error,que utiliza CodeDeploy duranteuna implementación.

AWS::CodeDeploy::DeploymentConfigRecurso de AWSCloudFormation

Crear una instancia AmazonEC2. ²

AWS::EC2::Instance Recurso de AWSCloudFormation

AWS::CodeDeployBlueGreen La transformaciónAWS::CodeDeployBlueGreenes una macro alojada por AWSCloudFormation

Utilice la transformaciónAWS::CodeDeployBlueGreende AWS CloudFormationy el enlaceAWS::CodeDeploy::BlueGreenpara administrar actualizacionesde pila, crear recursos y cambiarel tráfico para implementacionesblue/green (azul/verde) deCodeDeploy.3

AWS::CodeDeploy::BlueGreen El enlaceAWS::CodeDeploy::BlueGreense estructura como un recursoHook en AWS CloudFormation.El enlace incluye parámetrosque ocupan el lugar del archivoAppSpec de CodeDeployseñalando a los enlaces deeventos de ciclo de vida deCodeDeploy designados.

¹ Si especifica la versión de la revisión de la aplicación que deseaque se implemente como parte del grupo de implementaciones,la revisión de destino se implementará en cuanto se completeel proceso de aprovisionamiento. Para obtener más informaciónsobre la configuración de plantillas, consulte S3Location de

 

Versión de API 2014-10-06439

Page 449: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Acción Referencia de AWSCloudFormation

Tipo de referencia

revisión de implementación de DeploymentGroup de CodeDeploy yGitHubLocation de revisión de implementación de DeploymentGroupde CodeDeploy en la Guía del usuario de AWS CloudFormation.

² Proporcionamos plantillas que puede utilizar para crear instanciasAmazon EC2 en las regiones en las que se admite CodeDeploy.Para obtener más información sobre estas plantillas, consulteCreación de una instancia Amazon EC2 para CodeDeploy (plantillade AWS CloudFormation) (p. 216).3Solo las implementaciones blue/green (azul/verde) de AmazonECS son compatibles con esta configuración de implementación.Para obtener más información acerca de las configuracionesde implementación para implementaciones blue/green (azul/verde) de Amazon ECS a través AWS CloudFormation, consulte Configuraciones de implementación para implementaciones blue/green (azul/verde) de AWS CloudFormation (Amazon ECS) (p. 264).Para obtener más información acerca de las implementacionesblue/green (azul/verde) de Amazon ECS en AWS CloudFormationy cómo ver la implementación en CodeDeploy, consulte Crear unaimplementación blue/green (azul/verde) de Amazon ECS a través deAWS CloudFormation (p. 335).

Versión de API 2014-10-06440

Page 450: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioNombres de bucket del kit de recursos por región

Referencia del kit de recursos deCodeDeploy

Muchos de los archivos de los que depende CodeDeploy se almacenan en buckets de Amazon S3 deuna región determinada de AWS que están disponibles públicamente. En estos archivos se incluyen losarchivos de instalación del agente de CodeDeploy, plantillas y archivos de aplicación de ejemplo. Esteconjunto de archivos se denomina kit de recursos de CodeDeploy.

Temas• Nombres de bucket del kit de recursos por región (p. 441)• Contenido del kit de recursos (p. 442)• Mostrar una lista de los archivos del kit de recursos (p. 443)• Descargar los archivos del kit de recursos (p. 444)

Nombres de bucket del kit de recursos por regiónEn esta tabla se muestra los nombres de las sustituciones de nombre de bucket que se necesitanpara algunos procedimientos de la guía. Se trata de los nombres de los buckets de Amazon S3 en los quese incluyen los archivos del kit de recursos de CodeDeploy.

Note

Para obtener acceso al bucket de Amazon S3 en Región Asia Pacífico (Hong Kong), debehabilitar la región en su cuenta de AWS. Para obtener más información, consulte Administraciónde las regiones de AWS.

Nombre de la región Sustitución de bucket-name Identificador de la región

EE.UU. Este (Ohio) aws-codedeploy-us-east-2 us-east-2

US East (N. Virginia) aws-codedeploy-us-east-1 us-east-1

EE.UU. Oeste (Norte deCalifornia)

aws-codedeploy-us-west-1 us-west-1

EE.UU. Oeste (Oregón) aws-codedeploy-us-west-2 us-west-2

Canadá (Central) aws-codedeploy-ca-central-1 ca-central-1

Europa (Irlanda) aws-codedeploy-eu-west-1 eu-west-1

Europa (Londres) aws-codedeploy-eu-west-2 eu-west-2

UE (París) aws-codedeploy-eu-west-3 eu-west-3

Europa (Fráncfort) aws-codedeploy-eu-central-1 eu-central-1

Europa (Estocolmo) aws-codedeploy-eu-north-1 eu-north-1

Versión de API 2014-10-06441

Page 451: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioContenido del kit de recursos

Nombre de la región Sustitución de bucket-name Identificador de la región

Europa (Milán) aws-codedeploy-eu-south-1 eu-south-1

Asia Pacífico (Hong Kong) aws-codedeploy-ap-east-1 ap-east-1

Asia Pacífico (Tokio) aws-codedeploy-ap-northeast-1 ap-northeast-1

Asia Pacífico (Seúl) aws-codedeploy-ap-northeast-2 ap-northeast-2

Asia Pacífico (Singapur) aws-codedeploy-ap-southeast-1 ap-southeast-1

Asia Pacífico (Sídney) aws-codedeploy-ap-southeast-2 ap-southeast-2

Asia Pacífico (Mumbai) aws-codedeploy-ap-south-1 ap-south-1

América del Sur (São Paulo) aws-codedeploy-sa-east-1 sa-east-1

Medio Oriente (Baréin) aws-codedeploy-me-south-1 me-south-1

África (Ciudad del Cabo) aws-codedeploy-af-south-1 af-south-1

AWS GovCloud (EE.UU. Este) aws-codedeploy-us-gov-east-1 us-gov-east-1

AWS GovCloud (US-West) aws-codedeploy-us-gov-west-1 us-gov-west-1

Contenido del kit de recursosEn la siguiente tabla se muestran los archivos del kit de recursos de CodeDeploy.

Archivos Descripción

LATEST_VERSION Un archivo utilizado por los mecanismos deactualización como Amazon EC2 SystemsManager para determinar la última versión delagente de CodeDeploy.

VERSION El mecanismo de actualización automática se quitóen la versión 1.1.0 del agente de CodeDeploy yeste archivo ya no se utiliza. Un archivo utilizadopor los agentes de CodeDeploy para actualizarse,ya que se ejecutan en instancias.

codedeploy-agent.noarch.rpm El agente de CodeDeploy para Amazon Linux yRed Hat Enterprise Linux (RHEL). Puede habervarios archivos con el mismo nombre de archivo debase, pero diferentes versiones (como -1.0-0).

codedeploy-agent_all.deb El agente de CodeDeploy para Ubuntu Server.Puede haber varios archivos con el mismo nombrede archivo de base, pero diferentes versiones(como _1.0-0).

codedeploy-agent.msi El agente de CodeDeploy para Windows Server.Puede haber varios archivos con el mismo nombrede archivo de base, pero diferentes versiones(como -1.0-0).

Versión de API 2014-10-06442

Page 452: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioMostrar una lista de los archivos del kit de recursos

Archivos Descripción

install Un archivo que se puede utilizar para instalar elagente de CodeDeploy con más facilidad.

CodeDeploy_SampleCF_Template.json Plantilla de AWS CloudFormation que se puedeutilizar para lanzar entre una y tres instanciasAmazon EC2 que ejecuten Amazon Linux oWindows Server. Puede haber varios archivoscon el mismo nombre de archivo de base, perodiferentes versiones (como -1.0.0).

CodeDeploy_SampleCF_ELB_Integration.jsonUna plantilla de AWS CloudFormation que puedeutilizar para crear un sitio web con equilibrio decarga que se ejecuta en un servidor web Apache.La aplicación está configurada para abarcar todaslas zonas de disponibilidad de la región en laque la creó. Esta plantilla crea tres instanciasAmazon EC2 y el perfil de instancia de IAM paraconceder a las instancias acceso a los recursosde Amazon S3, Amazon EC2 Auto Scaling, AWSCloudFormation y Elastic Load Balancing. Tambiéncrea el balanceador de carga y un rol de serviciode CodeDeploy.

SampleApp_ELB_Integration.zip Una revisión de la aplicación de ejemplo que sepuede implementar en una instancia Amazon EC2registrada en un balanceador de carga de ElasticLoad Balancing.

SampleApp_Linux.zip Revisión de la aplicación de muestra que sepuede implementar en una instancia Amazon EC2que ejecute Amazon Linux o en una instanciade Ubuntu Server o RHEL. Puede haber variosarchivos con el mismo nombre de archivo de base,pero diferentes versiones (como -1.0).

SampleApp_Windows.zip Revisión de aplicación de muestra que se puedeimplementar en una instancia de Windows Server.Puede haber varios archivos con el mismo nombrede archivo de base, pero diferentes versiones(como -1.0).

Mostrar una lista de los archivos del kit de recursosPara ver una lista de archivos, utilice el comando aws s3 ls correspondiente a su región.

Note

Los archivos de los buckets están diseñados para funcionar con los recursos de su regióncorrespondiente.

•aws s3 ls --recursive s3://aws-codedeploy-us-east-2 --region us-east-2

•aws s3 ls --recursive s3://aws-codedeploy-us-east-1 --region us-east-1

Versión de API 2014-10-06443

Page 453: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDescargar los archivos del kit de recursos

•aws s3 ls --recursive s3://aws-codedeploy-us-west-1 --region us-west-1

•aws s3 ls --recursive s3://aws-codedeploy-us-west-2 --region us-west-2

•aws s3 ls --recursive s3://aws-codedeploy-ca-central-1 --region ca-central-1

•aws s3 ls --recursive s3://aws-codedeploy-eu-west-1 --region eu-west-1

•aws s3 ls --recursive s3://aws-codedeploy-eu-west-2 --region eu-west-2

•aws s3 ls --recursive s3://aws-codedeploy-eu-west-3 --region eu-west-3

•aws s3 ls --recursive s3://aws-codedeploy-eu-central-1 --region eu-central-1

•aws s3 ls --recursive s3://aws-codedeploy-ap-east-1 --region ap-east-1

•aws s3 ls --recursive s3://aws-codedeploy-ap-northeast-1 --region ap-northeast-1

•aws s3 ls --recursive s3://aws-codedeploy-ap-northeast-2 --region ap-northeast-2

•aws s3 ls --recursive s3://aws-codedeploy-ap-southeast-1 --region ap-southeast-1

•aws s3 ls --recursive s3://aws-codedeploy-ap-southeast-2 --region ap-southeast-2

•aws s3 ls --recursive s3://aws-codedeploy-ap-south-1 --region ap-south-1

•aws s3 ls --recursive s3://aws-codedeploy-sa-east-1 --region sa-east-1

Descargar los archivos del kit de recursosPara descargar un archivo, utilice el comando aws s3 cp correspondiente a su región.

Note

Asegúrese de utilizar el punto (.) cerca del final. Esto descarga el archivo en el directorio actual.

Por ejemplo, los siguientes comandos descargan un único archivo denominado SampleApp_Linux.zipde una de las carpetas /samples/latest/ de los buckets:

•aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip . --region us-east-2

•aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip . --region us-east-1

•aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip . --region us-west-1

•aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip . --region us-west-2

Versión de API 2014-10-06444

Page 454: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDescargar los archivos del kit de recursos

•aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip . --region ca-central-1

•aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip . --region eu-west-1

•aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip . --region eu-west-2

•aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip . --region eu-west-3

•aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip . --region eu-central-1

•aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Linux.zip . --region ap-east-1

•aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip . --region ap-northeast-1

•aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip . --region ap-northeast-2

•aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip . --region ap-southeast-1

•aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip . --region ap-southeast-2

•aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip . --region ap-south-1

•aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip . --region sa-east-1

Para descargar todos los archivos, utilice uno de los siguientes comandos correspondientes a su región:

•aws s3 cp --recursive s3://aws-codedeploy-us-east-2 . --region us-east-2

•aws s3 cp --recursive s3://aws-codedeploy-us-east-1 . --region us-east-1

•aws s3 cp --recursive s3://aws-codedeploy-us-west-1 . --region us-west-1

•aws s3 cp --recursive s3://aws-codedeploy-us-west-2 . --region us-west-2

•aws s3 cp --recursive s3://aws-codedeploy-ca-central-1 . --region ca-central-1

•aws s3 cp --recursive s3://aws-codedeploy-eu-west-1 . --region eu-west-1

•aws s3 cp --recursive s3://aws-codedeploy-eu-west-2 . --region eu-west-2

Versión de API 2014-10-06445

Page 455: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioDescargar los archivos del kit de recursos

•aws s3 cp --recursive s3://aws-codedeploy-eu-west-3 . --region eu-west-3

•aws s3 cp --recursive s3://aws-codedeploy-eu-central-1 . --region eu-central-1

•aws s3 cp --recursive s3://aws-codedeploy-ap-east-1 . --region ap-east-1

•aws s3 cp --recursive s3://aws-codedeploy-ap-northeast-1 . --region ap-northeast-1

•aws s3 cp --recursive s3://aws-codedeploy-ap-northeast-2 . --region ap-northeast-2

•aws s3 cp --recursive s3://aws-codedeploy-ap-southeast-1 . --region ap-southeast-1

•aws s3 cp --recursive s3://aws-codedeploy-ap-southeast-2 . --region ap-southeast-2

•aws s3 cp --recursive s3://aws-codedeploy-ap-south-1 . --region ap-south-1

•aws s3 cp --recursive s3://aws-codedeploy-sa-east-1 . --region sa-east-1

Versión de API 2014-10-06446

Page 456: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioAplicaciones

Límites de CodeDeployEn la siguiente tabla se describen los límites en CodeDeploy.

Note

Es posible solicitar un aumento de los límites de CodeDeploy indicados en los Límites de losservicios de AWS en la Referencia general de Amazon Web Services. No se puede incrementar ellímite de la cantidad de horas de ejecución de una implementación.

Temas• Aplicaciones (p. 447)• Revisiones de aplicaciones (p. 447)• Implementaciones (p. 448)• Configuraciones de implementación (p. 449)• Grupos de implementaciones (p. 450)• Instancias (p. 450)

AplicacionesCantidad máxima de aplicaciones asociadas a unacuenta de AWS en una única región

100

Cantidad máxima de caracteres en un nombre deaplicación

100

Caracteres permitidos en un nombre de aplicación Letras (a-z, A-Z), números (0-9), puntos (.),subrayado (_), + (signo de más), = (signo de igual),, (coma), @ (signo de arroba), - (signo de menos).

Cantidad máxima de aplicaciones que se puedenpasar a la acción BatchGetApplications de la API

100

Cantidad máxima de tokens de conexión de GitHubpara una única cuenta de AWS

25

Revisiones de aplicacionesCantidad máxima de caracteres en un nombre derevisión de aplicación

100

Tipos de archivo permitidos para revisiones deaplicaciones de EC2/On-Premises

Archivos con la extensión .zip o .tar y archivoscomprimidos con la extensión .tar.gz.

Un archivo o archivo comprimido compatible conCodeDeploy debe contener un único applicationspecification file (AppSpec file) con el nombre dearchivo appspec.yml.

Versión de API 2014-10-06447

Page 457: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioImplementaciones

Tipos de archivo permitidos para revisiones deaplicaciones de AWS Lambda y Amazon ECS

Un AppSpec file único con el nombre de archivoappspec.yaml o un archivo comprimido conla extensión .zip o .tar.gz que contiene unAppSpec file único con el nombre de archivoappspec.yaml.

ImplementacionesCantidad máxima de implementacionessimultáneas en un grupo de implementaciones¹

1

Cantidad máxima de implementacionessimultáneas asociadas a una cuenta de AWS²

100

Número máximo de horas que se puede ejecutaruna implementación in situ de EC2/On-Premises

8

Número máximo de horas entre la implementaciónde una revisión y el desvío del tráfico al entorno desustitución durante una implementación blue/greenEC2/On-Premises o Amazon ECS

48

Número máximo de horas entre la finalización deuna implementación y la terminación del entornooriginal durante una implementación blue/green deEC2/On-Premises o Amazon ECS

48

Número máximo de horas que se puede ejecutaruna implementación blue/green de EC2/On-Premises

109 (48 para cada uno de los dos límitesanteriores) más una hora por cada uno de los 13eventos de ciclo de vida posibles

Número máximo de horas que se puede ejecutaruna implementación de AWS Lambda

50 (48 horas para el tiempo máximo entre el primery el último desvío de tráfico, más una hora porcada uno de los dos enlaces de ciclo de vidaposibles)

Número máximo de segundos hasta que seconsidere que un evento de ciclo de vida deimplementación ha fallado si no se ha completado

3600

Cantidad máxima de caracteres en una descripciónde implementación

256

Cantidad máxima de implementaciones que sepueden pasar a la acción BatchGetDeployments dela API

100

Número máximo de minutos hasta que se produceun error en la implementación si un evento del ciclode vida no comienza después de:

• Una implementación se activa utilizando laconsola o el comando create-deployment de laAWS CLI.

• El evento del ciclo de vida anterior se hacompletado.

5

Versión de API 2014-10-06448

Page 458: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioConfiguraciones de implementación

Número máximo de minutos que unaimplementación "blue/green" (azul/verde)pueden esperar después de una implementaciónsatisfactoria antes de finalizar las instancias de laimplementación original

2800

Número máximo de agentes de escucha en unaruta de tráfico durante una implementación deAmazon ECS

1

¹ Este límite está pensado para evitar implementaciones simultáneas accidentales de la mismaaplicación en el mismo grupo de implementaciones.

² Cada implementación en una instancia de Amazon EC2 ampliada dentro de un grupo de AmazonEC2 Auto Scaling cuenta como una única implementación simultánea. Si la instancia de Amazon EC2ampliada se asocia a varias aplicaciones, se genera una implementación simultánea adicional para cadaaplicación. Por ejemplo, un grupo de Amazon EC2 Auto Scaling que aumente a cinco sus instanciasde Amazon EC2 y que esté asociado a una sola aplicación podría generar cinco implementacionessimultáneas. Si las mismas instancias Amazon EC2 incrementadas se asociaran a dos aplicacionesadicionales, se generaran diez implementaciones simultáneas adicionales.

Configuraciones de implementación

Cantidad máxima de configuraciones deimplementación personalizadas asociadas a unacuenta de AWS

25

Valores permitidos para una configuración conun mínimo de instancias en buen estado deHOST_COUNT

Cualquier entero positivo o 0 (cero). Cero (0)resultados en la implementación en todas lasinstancias a la vez.

Valores permitidos para una configuración conun mínimo de instancias en buen estado deFLEET_PERCENT

Cualquier entero positivo menor que 100 o 0(cero). Cero (0) resultados en la implementación entodas las instancias a la vez.

Cantidad máxima de caracteres en un nombre deconfiguración de implementación personalizada

100

Caracteres permitidos en un nombre deconfiguración de la implementación personalizada

Letras (a-z, A-Z), números (0-9), puntos (.),subrayado (_), + (signo de más), = (signo de igual),, (coma), @ (signo de arroba), - (signo de menos).

Prefijos no permitidos en un nombre deconfiguración de implementación personalizada

CodeDeployDefault.

Número máximo de minutos entre el primery el último desvío de tráfico durante unaimplementación “canary” o “linear” de AWSLambda

2 880

Porcentaje máximo de tráfico que se puede desviaren un incremento durante una implementaciónde AWS Lambda que usa una configuración deimplementación “canary” o “linear”.

99

Versión de API 2014-10-06449

Page 459: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGrupos de implementaciones

Grupos de implementacionesCantidad máxima de grupos de implementacionesasociados a una sola aplicación

100

Cantidad máxima de etiquetas en un grupo deimplementaciones

10

Cantidad máxima de grupos de Amazon EC2 AutoScaling en un grupo de implementaciones

10

Cantidad máxima de caracteres en un nombre degrupo de implementaciones

100

Caracteres permitidos en un nombre de grupo deimplementaciones

Letras (a-z, A-Z), números (0-9), puntos (.),subrayado (_), + (signo de más), = (signo de igual),, (coma), @ (signo de arroba), - (signo de menos).

Cantidad máxima de disparadores denotificaciones de eventos en un grupo deimplementaciones

10

Cantidad máxima de grupos de implementacionesque se pueden asociar con un servicio de AmazonECS

1

InstanciasCantidad máxima de instancias de una únicaimplementación

500

Cantidad máxima de caracteres en una clave deetiqueta

128

Cantidad máxima de caracteres en un valor deetiqueta

256

Cantidad máxima de instancias que se puedenpasar a la acción BatchGetOnPremisesInstancesde la API

100

Número máximo de instancias que pueden utilizarlas implementaciones simultáneas en curso y queestán asociadas con una cuenta

500

Se requiere una versión de SDK de AWS paraRuby (aws-sdk-core)

2.1.2 o anteriores para versiones de agente deCodeDeploy previas a la 1.0.1.880.

2.2 o anteriores para la versión de agente deCodeDeploy 1.0.1.880, o las posteriores.

Versión de API 2014-10-06450

Page 460: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas generales

Solución de problemas deCodeDeploy

Utilice los temas de esta sección para ayudarle a solucionar problemas y errores que pueda encontrar alutilizar CodeDeploy.

Note

Puede identificar las causas de muchos errores de implementación revisando los archivos logcreados durante el proceso de implementación. Para simplificar, le recomendamos que utiliceAmazon CloudWatch Logs para monitorizar de forma centralizada los archivos de log, en lugarde hacerlo en cada instancia. Para obtener información, consulte Consulta de registros deCodeDeploy en la consola de CloudWatch Logs.

Temas• Solución de problemas generales (p. 451)• Solución de problemas de las implementaciones de EC2/On-Premises (p. 454)• Solución de problemas de las implementaciones de AWS Lambda (p. 463)• Solución de problemas de grupos de implementaciones (p. 464)• Solución de problemas de instancias (p. 464)• Solución de problemas de token de GitHub (p. 466)• Solución de problemas de Amazon EC2 Auto Scaling (p. 466)• Códigos de error de AWS CodeDeploy (p. 472)

Solución de problemas generalesTemas

• Lista de comprobación de solución de problemas generales (p. 451)• Los recursos de implementación de CodeDeploy solo se admiten en algunas regiones de

AWS (p. 453)• Los procedimientos de esta guía no sirven para la consola de CodeDeploy (p. 453)• Los roles de IAM necesarios no están disponibles (p. 453)• El uso de algunos editores de texto para crear archivos AppSpec y scripts del shell produce un error en

las implementaciones (p. 453)• El uso de Finder en macOS para empaquetar una revisión de la aplicación puede producir un error en

la implementación (p. 454)

Lista de comprobación de solución de problemasgeneralesPuede utilizar la siguiente lista de comprobación para solucionar un error en la implementación.

Versión de API 2014-10-06451

Page 461: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLista de comprobación de solución de problemas generales

1. Consulte Visualización de los detalles de las implementaciones de CodeDeploy (p. 337) yVisualización de los detalles de la instancia (p. 254) para determinar por qué se produjo un error en laimplementación. Si no puede determinar la causa, revise los elementos de esta lista de comprobación.

2. Compruebe si ha configurado correctamente las instancias:• ¿Se ha lanzado la instancia con un par de claves de Amazon EC2 especificadas? Para obtener más

información, consulte Pares de claves de Amazon EC2 en la Guía del usuario de Amazon EC2 parainstancias de Linux.

• ¿Se ha asociado a la instancia el perfil de instancia de IAM correcto? Para obtener más información,consulte Configuración de una instancia Amazon EC2 para trabajar con CodeDeploy (p. 223) y Paso4: Crear un perfil de instancia de IAM para las instancias Amazon EC2 (p. 44).

• ¿Se ha etiquetado la instancia? Para obtener más información, consulte Trabajo con etiquetasmediante la consola en la Guía del usuario de Amazon EC2 para instancias de Linux.

• ¿Está instalado y ejecutándose el agente de CodeDeploy en la instancia? Para obtener másinformación, consulte Gestión de las operaciones del agente de CodeDeploy (p. 184).

3. Compruebe la configuración de la aplicación y del grupo de implementaciones:• Para comprobar la configuración de la aplicación, consulte Visualización de los detalles de la

aplicación con CodeDeploy (p. 280).• Para comprobar la configuración del grupo de implementaciones, consulte Visualización de los

detalles de un grupo de implementaciones con CodeDeploy (p. 298).4. Confirme que la revisión de la aplicación está configurada correctamente:

• Compruebe el formato de su AppSpec file. Para obtener más información, consulte Adición de unarchivo de especificación de aplicación a una revisión para CodeDeploy (p. 305) y Referencia deAppSpec File de CodeDeploy (p. 402).

• Compruebe el bucket de Amazon S3 o el repositorio de GitHub para verificar que la revisión de laaplicación se encuentra en la ubicación prevista.

• Examine los detalles de la revisión de la aplicación de CodeDeploy para asegurarse de que estáregistrada correctamente. Para obtener información, consulte Visualización de los detalles de unarevisión de aplicación con CodeDeploy (p. 316).

• Si va a realizar la implementación desde Amazon S3, compruebe el bucket de Amazon S3 paraverificar que a CodeDeploy se le han concedido permisos para descargar la revisión de la aplicación.Para obtener información sobre las políticas de buckets, consulte Requisitos previos para unaimplementación (p. 321).

• Si va a realizar la implementación desde GitHub, compruebe el repositorio de GitHub para verificarque a CodeDeploy se le han concedido permisos para descargar la revisión de la aplicación.Para obtener más información, consulte Crear una implementación con CodeDeploy (p. 321) yAutenticación en GitHub con aplicaciones de CodeDeploy (p. 65).

5. Compruebe si el rol de servicio está configurado correctamente. Para obtener información, consultePaso 3: Crear un rol de servicio para CodeDeploy (p. 39).

6. Confirme que ha seguido los pasos de Introducción a CodeDeploy (p. 37) para:• Asociar políticas al usuario de IAM.• Instalar o actualizar y configurar la AWS CLI.• Crear un perfil de instancia y un rol de servicio de IAM.

Para obtener más información, consulte Administración de identidades y accesos en AWSCodeDeploy (p. 376).

7. Confirme que está usando la versión de la AWS CLI 1.6.1 o posterior. Para comprobar la versión quetiene instalada, llame a aws --version.

Si sigue sin poder solucionar el error de la implementación, consulte los otros puntos de este tema.

Versión de API 2014-10-06452

Page 462: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLos recursos de implementación de CodeDeploy

solo se admiten en algunas regiones de AWS

Los recursos de implementación de CodeDeploy solose admiten en algunas regiones de AWSSi no ve o no puede tener acceso a aplicaciones, grupos de implementaciones, instancias u otros recursosde implementación desde la AWS CLI o la consola de CodeDeploy, asegúrese de que está haciendoreferencia a una de las regiones de AWS que se indican en Regiones y puntos de enlace en la AWSGeneral Reference.

Las instancias Amazon EC2 y los grupos de Amazon EC2 Auto Scaling que se vayan a utilizar enimplementaciones de CodeDeploy deben lanzarse y crearse en una de estas regiones de AWS.

Si utiliza la AWS CLI, ejecute el comando aws configure desde la AWS CLI. Después podrá ver yconfigurar la región de AWS predeterminada.

Si utiliza la consola de CodeDeploy, en la barra de navegación, desde el selector de regiones, elija una delas regiones de AWS admitidas.

Important

Para utilizar servicios en Región China (Pekín) o Región China (Ningxia) debe disponer de unacuenta y credenciales para dicha región. Las cuentas y las credenciales de otras regiones deAWS no funcionan con Regiones de Pekín y Ningxia y viceversa.La información sobre algunos recursos para Regiones de China, como nombres de bucket del kitde recursos de CodeDeploy y los procedimientos de instalación del agente de CodeDeploy no seincluyen en esta edición de la CodeDeploy Guía del usuario.Para obtener más información:

• CodeDeploy en Introducción a AWS en Región China (Pekín)• CodeDeploy Guía del usuario para Regiones de China (Versión en inglés | Versión en chino)

Los procedimientos de esta guía no sirven para laconsola de CodeDeployLos procedimientos de esta guía se han diseñado para reflejar el nuevo diseño de la consola. Si utiliza laversión anterior de la consola, muchos de los conceptos y procedimientos básicos de esta guía se siguenaplicando. Para obtener acceso a ayuda en la nueva consola, elija el icono de información.

Los roles de IAM necesarios no están disponiblesSi utiliza un perfil de instancia de IAM o un rol de servicio que se creó como parte de una pila de AWSCloudFormation y elimina la pila, se eliminarán también todos los roles de IAM. Este puede ser elmotivo por el que el rol de IAM ya no se muestre en la consola de IAM y por el que CodeDeploy ya nofuncione según lo previsto. Para solucionar este problema, debe volver a crear manualmente el rol de IAMeliminado.

El uso de algunos editores de texto para creararchivos AppSpec y scripts del shell produce un erroren las implementacionesAlgunos editores de texto introducen en los archivos caracteres no imprimibles que no se admiten. Si utilizaeditores de texto para crear o modificar archivos AppSpec o archivos de script del shell para su ejecución

Versión de API 2014-10-06453

Page 463: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioEl uso de Finder en macOS para empaquetar

una revisión de la aplicación puedeproducir un error en la implementación

en instancias de Amazon Linux, Ubuntu Server o RHEL, las implementaciones que usan estos archivospodrían producir un error. Cuando CodeDeploy utiliza estos archivos durante una implementación, lapresencia de estos caracteres puede provocar errores de validación de AppSpec file difíciles de solucionary errores de ejecución del script.

En la consola de CodeDeploy, en la página de detalles del evento de la implementación, elija View logs(Ver registros). (O utilice la AWS CLI para llamar al comando get-deployment-instance). Busque errorescomo invalid character, command not found o file not found.

Para solucionar este problema, le recomendamos lo siguiente:

• No utilice editores de texto que introduzcan caracteres no imprimibles, como retornos de carro(caracteres ^M) en sus archivos AppSpec y archivos de script del shell.

• Utilice editores de texto que muestren los caracteres no imprimibles, como los retornos de carro, en susarchivos AppSpec y archivos de script del shell, para que pueda buscar y eliminar aquellos caracteresque se hayan podido introducir. Para ver ejemplos de estos tipos de editores de texto, busque enInternet "el editor de texto muestra los retornos de carro".

• Utilice editores de texto que se ejecuten en instancias de Amazon Linux, Ubuntu Server o RHEL paracrear los archivos de script del shell que se van a ejecutar en instancias de Amazon Linux, UbuntuServer o RHEL. Para ver ejemplos de estos tipos de editores de texto, busque en Internet "editor descript de shell de Linux".

• Si debe utilizar un editor de texto en Windows o macOS para crear archivos de script del shell que sevan a ejecutar en instancias de Amazon Linux, Ubuntu Server o RHEL, use un programa o una utilidadque convierta el texto en formato Windows o macOS en formato Unix. Para ver ejemplos de estosprogramas y utilidades, busque en Internet "de DOS a UNIX" o "de Mac a UNIX". Asegúrese de probarlos archivos del shell convertidos en los sistemas operativos de destino.

El uso de Finder en macOS para empaquetar unarevisión de la aplicación puede producir un error en laimplementaciónLas implementaciones podrían producir un error si usa la aplicación de interfaz de usuario gráfica (GUI)Finder en un Mac para empaquetar (zip) un AppSpec file y archivos relacionados en un archivo dealmacenamiento de revisión de la aplicación (.zip). Esto se debe a que Finder crea una carpeta __MACOSXintermedia en el archivo .zip y coloca archivos de componentes en ella. CodeDeploy no puede encontrarlos archivos de componentes y la implementación produce un error.

Para solucionar este problema, le recomendamos que utilice la AWS CLI para llamar al comando push,que empaqueta los archivos de componentes en la estructura prevista. Otra opción es usar Terminal enlugar de la GUI para comprimir los archivos de componentes. Terminal no crea una carpeta __MACOSXintermedia.

Solución de problemas de las implementaciones deEC2/On-Premises

Temas• La implementación produce un error con el mensaje “Validation of PKCS7 signed message

failed” (p. 455)• La implementación o la reimplementación de los mismos archivos en la misma instancia producen el

error "The deployment failed because a specified file already exists at this location" (p. 455)

Versión de API 2014-10-06454

Page 464: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLa implementación produce un error con el mensaje

“Validation of PKCS7 signed message failed”

• Solución de problemas con un evento de ciclo de vida AllowTraffic que ha producido un error noregistrado en los registros de implementación (p. 457)

• Solución de problemas con los eventos de ciclo de vida de la implementación ApplicationStop,BeforeBlockTraffic y AfterBlockTraffic que han producido un error (p. 458)

• Solución de problemas con un evento de ciclo de vida de la implementación DownloadBundle que haproducido el error "UnknownError: not opened for reading" (p. 459)

• El script de Windows PowerShell no puede usar la versión de 64 bits de Windows PowerShell de formapredeterminada (p. 459)

• Los procesos de larga duración pueden producir un error en la implementación (p. 460)• Solución de problemas cuando se omiten todos los eventos del ciclo de vida (p. 461)• Error de falta de credenciales en el complemento de CodeDeploy CommandPoller (p. 463)

Note

Las causas de muchos errores de implementación pueden identificarse revisando los archivoslog creados durante el proceso de implementación. Para simplificar, le recomendamos queutilice Amazon CloudWatch Logs para monitorizar de forma centralizada los archivos de log, enlugar de hacerlo en cada instancia. Para obtener información, consulte Consulta de registros deCodeDeploy en la consola de CloudWatch Logs.

La implementación produce un error con el mensaje“Validation of PKCS7 signed message failed”Este mensaje de error indica que la instancia está ejecutando una versión del agente de CodeDeployque solo admite el algoritmo hash SHA-1. La compatibilidad con el algoritmo hash SHA-2 se introdujoen la versión 1.0.1.854 del agente de CodeDeploy, publicada en noviembre de 2015. A partir del 17de octubre de 2016, las implementaciones producen un error si se instala una versión del agente deCodeDeploy anterior a la 1.0.1.854. Para obtener más información, consulte AWS to Switch to SHA256Hash Algorithm for SSL Certificates, NOTICE: Retiring CodeDeploy Host Agents Older Than Version1.0.1.85, and Actualización del agente de CodeDeploy (p. 195).

La implementación o la reimplementación de losmismos archivos en la misma instancia producen elerror "The deployment failed because a specified filealready exists at this location"Cuando CodeDeploy intenta implementar un archivo en una instancia, pero ya existe un archivo conel mismo nombre en la ubicación de destino especificada, la implementación en dicha instancia podríaproducir un error. Es posible que aparezca el mensaje de error "The deployment failed because a specifiedfile already exists at this location: nombre-ubicación" (Se produjo un error en la implementación porqueun archivo especificado ya existe en esta ubicación: nombre-ubicación). Esto se debe a que durante cadaimplementación CodeDeploy elimina primero todos los archivos de la implementación anterior, que seenumeran en un archivo log de limpieza. Si hay archivos en las carpetas de instalación de destino queno figuran en este archivo de limpieza, el agente de CodeDeploy interpreta esto como un error de formapredeterminada y la implementación produce un error.

Note

En las instancias de Amazon Linux, RHEL y Ubuntu Server, el archivo de limpieza se encuentraen /opt/codedeploy-agent/deployment-root/deployment-instructions/. En

Versión de API 2014-10-06455

Page 465: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLa implementación o la reimplementación delos mismos archivos en la misma instancia

producen el error "The deployment failed becausea specified file already exists at this location"las instancias de Windows Server, la ubicación es C:\ProgramData\Amazon\CodeDeploy

\deployment-instructions\.

La forma más sencilla de evitar este error es especificar una opción distinta del comportamiento de errorpredeterminado de la implementación. Para cada implementación, puede elegir si la implementaciónproduce un error, si se sobrescriben los archivos no incluidos en el archivo de limpieza o si se conservanlos archivos que ya están en la instancia.

La opción de sobrescritura resulta útil cuando, por ejemplo, coloca manualmente un archivo en unainstancia después de la última implementación, pero después añade un archivo con el mismo nombre a lasiguiente revisión de la aplicación.

Puede elegir la opción de conservación para los archivos que coloca en la instancia que desea que formenparte de la siguiente implementación sin tener que añadirlos al paquete de revisión de la aplicación.La opción de conservación también es útil si los archivos de la aplicación ya están en el entorno deproducción y desea implementarlos utilizando CodeDeploy por primera vez. Para obtener más información,consulte Creación de una implementación EC2/On-Premises Plataforma de computación (consola) (p. 327)y Comportamiento de la restauración con contenido existente (p. 344).

Solución de errores de implementación The deploymentfailed because a specified file already existsat this location

Si decide no especificar una opción para sobrescribir o conservar el contenido que CodeDeploy detectaen las ubicaciones de implementación de destino (o si no se especifica ninguna opción de implementaciónpara el tratamiento del contenido existente en un comando del código), puede elegir solucionar el error.

Esta información se aplica únicamente si decide no conservar ni sobrescribir el contenido.

Si intenta volver a implementar archivos con los mismos nombres y ubicaciones, la nueva implementacióntendrá más probabilidades de que se realice con éxito si especifica el nombre de aplicación y el grupo deimplementaciones con el mismo ID del grupo de implementaciones subyacente que usó anteriormente.CodeDeploy utiliza el ID del grupo de implementaciones subyacente para identificar los archivos que sedeben eliminar antes de volver a realizar la implementación.

La implementación de nuevos archivos o la reimplementación de los mismos archivos en las mismasubicaciones de las instancias pueden producir un error por estas razones:

• Ha especificado un nombre de aplicación distinto para la reimplementación de la misma revisión enlas mismas instancias. La nueva implementación produce un error porque aunque el nombre del grupode implementaciones sea el mismo, el uso de un nombre de aplicación diferente significa que se estáusando un ID de grupo de implementaciones subyacente distinto.

• Ha eliminado y ha vuelto a crear un grupo de implementaciones para una aplicación y, a continuación,ha intentado volver a implementar la misma revisión en el grupo de implementaciones. La nuevaimplementación produce un error porque aunque el nombre del grupo de implementaciones sea elmismo, CodeDeploy hace referencia a un ID de grupo de implementaciones subyacente distinto.

• Ha eliminado una aplicación y un grupo de implementaciones en CodeDeploy y, a continuación,ha creado una nueva aplicación y grupo de implementaciones con los mismos nombres que losque ha eliminado. A continuación, ha intentado implementar de nuevo una revisión que se habíaimplementado en el grupo de implementaciones anterior en el nuevo grupo con el mismo nombre.La nueva implementación produce un error porque aunque los nombres de la aplicación y del grupode implementaciones sean los mismos, CodeDeploy sigue haciendo referencia al ID del grupo deimplementaciones que ha eliminado.

• Ha implementado una revisión en un grupo de implementaciones y después ha implementado la mismarevisión en otro grupo de implementaciones en las mismas instancias. La segunda implementación

Versión de API 2014-10-06456

Page 466: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas con un evento de ciclode vida AllowTraffic que ha producido un error

no registrado en los registros de implementaciónproduce un error porque CodeDeploy hace referencia a un ID de grupo de implementaciones subyacentedistinto.

• Ha implementado una revisión en un grupo de implementaciones y después ha implementado otrarevisión en otro grupo de implementaciones en las mismas instancias. Hay al menos un archivo con elmismo nombre y en la misma ubicación en la que el segundo grupo de implementaciones intenta realizarla implementación. La segunda implementación produce un error porque CodeDeploy no elimina elarchivo existente antes de que comience la segunda implementación. Ambas implementaciones hacenreferencia a identificadores de grupo de implementaciones diferentes.

• Ha implementado una revisión en CodeDeploy, pero hay al menos un archivo con el mismo nombre y enla misma ubicación. La implementación produce un error porque, de forma predeterminada, CodeDeployno elimina el archivo existente antes de que comience la segunda implementación.

Para solucionar estas situaciones, proceda del modo siguiente:

• Elimine los archivos de las ubicaciones e instancias en las que aplicaron anteriormenteimplementaciones e intente realizar de nuevo la implementación.

• En el AppSpec file de la revisión, en los eventos del ciclo de vida de la implementación ApplicationStop oBeforeInstall, especifique un script personalizado para eliminar los archivos de todas las ubicaciones quecoincidan con los archivos que la revisión va a instalar.

• Implemente o reimplemente los archivos en ubicaciones o instancias que no formaron parte deimplementaciones anteriores.

• Antes de eliminar una aplicación o un grupo de implementaciones, implemente una revisión quecontenga un AppSpec file que especifique que no se copie ningún archivo en las instancias. Para laimplementación, especifique el nombre de aplicación y el nombre del grupo de implementacionesque usan los mismos identificadores de aplicación y grupo de implementaciones que los que está apunto de eliminar. (Puede utilizar el comando get-deployment-group para recuperar el ID del grupo deimplementaciones). CodeDeploy utiliza el ID del grupo de implementaciones subyacente y AppSpec filepara eliminar todos los archivos que se instalaron en la implementación anterior realizada correctamente.

Solución de problemas con un evento de ciclo de vidaAllowTraffic que ha producido un error no registradoen los registros de implementaciónEn algunos casos, una implementación blue/green producirá un error durante el evento de ciclo de vidaAllowTraffic, pero la causa del error no se indica en los registros de implementación.

Este error se debe normalmente a que las comprobaciones de estado se han configurado incorrectamenteen Elastic Load Balancing para la instancia de Classic Load Balancer, Balanceador de cargade aplicaciones o Network Load Balancer que se usa para administrar el tráfico del grupo deimplementaciones.

Para resolver el problema, revise y corrija los errores en la configuración de la comprobación de estado delbalanceador de carga.

Para los Classic Load Balancers, consulte Configurar comprobaciones de estado en la Guía del usuariode Classic Load Balancers y ConfigureHealthCheck en la Elastic Load Balancing API Reference version2012-06-01.

Para los Application Load Balancers, consulte Comprobaciones de estado de los grupos de destino en laGuía del usuario de Application Load Balancers.

Para los Network Load Balancers, consulte Comprobaciones de estado de los grupos de destino en laGuía del usuario de Network Load Balancer.

Versión de API 2014-10-06457

Page 467: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas con los eventos de ciclo de vida

de la implementación ApplicationStop, BeforeBlockTrafficy AfterBlockTraffic que han producido un error

Solución de problemas con los eventos de ciclode vida de la implementación ApplicationStop,BeforeBlockTraffic y AfterBlockTraffic que hanproducido un errorDurante una implementación, el agente de CodeDeploy ejecuta los scripts especificados paraApplicationStop, BeforeBlockTraffic y AfterBlockTraffic en el archivo AppSpec de la implementaciónsatisfactoria anterior. (Todos los demás scripts se ejecutan desde el archivo AppSpec de laimplementación actual). Si alguno de estos scripts contiene un error y no se ejecuta correctamente, laimplementación puede producir un error.

Los posibles motivos de estos errores son los siguientes:

• El agente de CodeDeploy busca el archivo deployment-group-id_last_successful_installen la ubicación correcta, pero la ubicación que figura en el archivo deployment-group-id_last_successful_install no existe.

En las instancias de Amazon Linux, Ubuntu Server y RHEL, este archivo debe estar en /opt/codedeploy-agent/deployment-root/deployment-instructions.

En las instancias de Windows Server, este archivo se debe almacenar en la carpeta C:\ProgramData\Amazon\CodeDeploy\deployment-instructions.

• En la ubicación que se indica en el archivo deployment-group-id_last_successful_install, elarchivo AppSpec file no es válido o los scripts no se ejecutan correctamente.

• El script contiene un error que no se puede corregir, por lo que nunca se ejecuta correctamente.

Utilice la consola de CodeDeploy para investigar por qué una implementación ha podido producir un errordurante cualquiera de estos eventos. En la página de detalles de la implementación, elija View events(Ver eventos). En la página de detalles de la instancia, en la fila ApplicationStop, BeforeBlockTraffic oAfterBlockTraffic, elija View logs (Ver registros). O bien utilice la AWS CLI para llamar al comando get-deployment-instance.

Si la causa del error es un script de la última implementación correcta que no se ejecuta nuncacorrectamente, cree una nueva implementación y especifique que se omitan los errores deApplicationStop, BeforeBlockTraffic y AfterBlockTraffic. Hay dos formas de hacer esto:

• Use la consola de CodeDeploy para crear una implementación. En la página Create deployment(Crear implementación), en ApplicationStop lifecycle event failure (Error del evento del ciclo de vidaApplicationStop), elija Don't fail the deployment to an instance if this lifecycle event on the instance fails(Dar como válida la implementación en una instancia si este evento de ciclo de vida en la instanciaproduce un error).

• Utilice la AWS CLI para llamar al comando create-deployment e incluya la opción --ignore-application-stop-failures.

Cuando vuelva a implementar la revisión de la aplicación, la implementación continuará aunque algunos deestos eventos de ciclo de vida produzcan un error. Si la nueva revisión incluye scripts fijos para los eventosde ciclo de vida, puede que las implementaciones futuras se realicen correctamente si aplica esta solución.

Versión de API 2014-10-06458

Page 468: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas con un evento de ciclo de

vida de la implementación DownloadBundle que haproducido el error "UnknownError: not opened for reading"

Solución de problemas con un evento de ciclo devida de la implementación DownloadBundle que haproducido el error "UnknownError: not opened forreading"Si intenta implementar una revisión de la aplicación desde Amazon S3 y la implementación produce elerror UnknownError: not opened for reading durante el evento de ciclo de vida DownloadBundlede la implementación:

• Se ha producido un error interno del servicio de Amazon S3. Implemente de nuevo la revisión de laaplicación.

• El perfil de instancia de IAM de su instancia Amazon EC2 no tiene permisos para obtener acceso a larevisión de la aplicación en Amazon S3. Para obtener información sobre las políticas de buckets deAmazon S3, consulte Envío de una revisión para CodeDeploy a Amazon S3 (solo implementaciones deEC2/On-Premises) (p. 313) y Requisitos previos para una implementación (p. 321).

• Las instancias en las que se va a realizar la implementación están asociadas a una región de AWS(por ejemplo, EE.UU. Oeste (Oregón)), pero el bucket de Amazon S3 que contiene la revisión de laaplicación está asociado a otra región de AWS (por ejemplo, US East (N. Virginia)). Asegúrese de que larevisión de la aplicación está en un bucket de Amazon S3 asociado a la misma región de AWS que lasinstancias.

En la página de detalles del evento de la implementación, en la fila Download bundle (Descargar paquete),elija View logs (Ver registros). O bien utilice la AWS CLI para llamar al comando get-deployment-instance.Si se produce un error, debería aparecer un error en el resultado con el código de error UnknownError yel mensaje de error not opened for reading.

Para determinar la causa de este error:

1. Habilite el registro en red en al menos una de las instancias y, a continuación, implemente de nuevo larevisión de la aplicación.

2. Examine el archivo de registro en red para encontrar el error. Los mensajes de error comunes paraeste problema incluyen la frase "access denied".

3. Después de examinar los archivos de registro, le recomendamos que deshabilite el registro en redpara reducir el tamaño de los archivos de registro y la cantidad de información confidencial que puedeaparecer en la salida en texto sin formato en la instancia en el futuro.

Para obtener información sobre cómo encontrar el archivo de registro en red y habilitar y deshabilitar elregistro en red, consulte :log_aws_wire: in Referencia de configuración del agente de CodeDeploy.

El script de Windows PowerShell no puede usar laversión de 64 bits de Windows PowerShell de formapredeterminadaSi un script de Windows PowerShell que se ejecuta como parte de una implementación depende de lafuncionalidad de 64 bits (por ejemplo, porque consume más memoria que la que permite una aplicación de32 bits o porque llama a bibliotecas que solo se ofrecen en una versión de 64 bits), puede que el script sebloquee o que no se ejecute según lo previsto. Esto se debe a que, de forma predeterminada, CodeDeployutiliza la versión de 32 bits de Windows PowerShell para ejecutar scripts de Windows PowerShell queforman parte de una revisión de la aplicación.

Versión de API 2014-10-06459

Page 469: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLos procesos de larga duración puedenproducir un error en la implementación

Añada código como el siguiente al comienzo de cualquier script que tenga que ejecutar con la versión de64 bits de Windows PowerShell:

✔ Are you running in 32-bit mode?✔ (\SysWOW64\ = 32-bit mode)

if ($PSHOME -like "*SysWOW64*"){ Write-Warning "Restarting this script under 64-bit Windows PowerShell."

✔ Restart this script under 64-bit Windows PowerShell. ✔ (\SysNative\ redirects to \System32\ for 64-bit mode)

& (Join-Path ($PSHOME -replace "SysWOW64", "SysNative") powershell.exe) -File ` (Join-Path $PSScriptRoot $MyInvocation.MyCommand) @args

✔ Exit 32-bit script.

Exit $LastExitCode}

✔ Was restart successful?Write-Warning "Hello from $PSHOME"Write-Warning " (\SysWOW64\ = 32-bit mode, \System32\ = 64-bit mode)"Write-Warning "Original arguments (if any): $args"

✔ Your 64-bit script code follows here...✔ ...

Aunque la información de ruta del archivo de este código pueda parecer contradictoria, la versión de 32bits de Windows PowerShell utiliza una ruta como la siguiente:

c:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

La versión de 64 bits de Windows PowerShell utiliza una ruta como la siguiente:

c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Los procesos de larga duración pueden producir unerror en la implementaciónPara las implementaciones en instancias de Amazon Linux, Ubuntu Server y RHEL, si tiene un script deimplementación que inicia un proceso de larga duración, CodeDeploy puede dedicar mucho tiempo aesperar al evento de ciclo de vida de la implementación y se producirá un error en la implementación. Estose debe a que, si el proceso se ejecuta durante más tiempo que el tiempo previsto de ejecución de losprocesos en primer y segundo plano de ese evento, CodeDeploy detiene la implementación aunque elproceso siga ejecutándose según lo previsto.

Suponga, por ejemplo, que la revisión de la aplicación contiene dos archivos en su raíz, after-install.sh y sleep.sh. Su AppSpec file contiene las siguientes instrucciones:

version: 0.0os: linuxfiles: - source: ./sleep.sh destination: /tmphooks: AfterInstall: - location: after-install.sh

Versión de API 2014-10-06460

Page 470: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas cuando se omiten

todos los eventos del ciclo de vida

timeout: 60

El archivo after-install.sh se ejecuta durante el evento de ciclo de vida AfterInstall de la aplicación.Este es su contenido:

✔!/bin/bash/tmp/sleep.sh

El archivo sleep.sh contiene lo siguiente, que suspende la ejecución del programa durante tres minutos(180 segundos), lo que simula un proceso de larga duración:

✔!/bin/bashsleep 180

Cuando after-install.sh llame a sleep.sh, sleep.sh se iniciará y se mantendrá en ejecucióndurante tres minutos (180 segundos), que es dos minutos más (120 segundos) que el tiempo queCodeDeploy espera que sleep.sh (y, por relación, after-install.sh) dejen de ejecutarse. Tras eltiempo de espera de un minuto (60 segundos), CodeDeploy detiene la implementación en los eventosde ciclo de vida AfterInstall de la aplicación, aunque siga ejecutándose sleep.sh según lo previsto. Semuestra el siguiente error:

Script at specified location: after-install.sh failed to complete in 60 seconds.

No basta con añadir un signo de ampersand (&) en after-install.sh para ejecutar sleep.sh ensegundo plano.

✔!/bin/bash✔ Do not do this./tmp/sleep.sh &

Si hace eso, la implementación se quedará en un estado pendiente hasta el período de tiempo de esperapredeterminado del evento de ciclo de vida de la implementación, después de lo cual CodeDeploydetendrá la implementación en el evento de ciclo de vida AfterInstall de la aplicación como antes.

En after-install.sh, llame a sleep.sh del modo siguiente para que CodeDeploy pueda continuardespués de que el proceso empiece a ejecutarse:

✔!/bin/bash/tmp/sleep.sh > /dev/null 2> /dev/null < /dev/null &

En la llamada anterior, sleep.sh es el nombre del proceso que desea empezar a ejecutar en segundoplano, redirigiendo stdout, stderr y stdin a /dev/null.

Solución de problemas cuando se omiten todos loseventos del ciclo de vidaSi todos los eventos del ciclo de vida de una implementación de Amazon EC2 o local se omiten, esposible que reciba un error similar a The overall deployment failed because too manyindividual instances failed deployment, too few healthy instances are availablefor deployment, or some instances in your deployment group are experiencingproblems. (Error code: HEALTH_CONSTRAINTS). Estas son algunas posibles causas y soluciones:

• El agente de CodeDeploy no se puede instalar ni ejecutar en la instancia. Para determinar si el agentede CodeDeploy se está ejecutando:

Versión de API 2014-10-06461

Page 471: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas cuando se omiten

todos los eventos del ciclo de vida

• Para un servidor de Amazon Linux RHEL o Ubuntu, ejecute lo siguiente:

sudo service codedeploy-agent status

• Para Windows, ejecute lo siguiente:

powershell.exe -Command Get-Service -Name codedeployagent

Si el agente de CodeDeploy no está instalado o en ejecución, consulte Comprobación de que el agentede CodeDeploy se está ejecutando (p. 184).

Es posible que la instancia no pueda conectar con el punto de enlace de CodeDeploy o S3 público através del puerto 443. Pruebe con una de las siguientes acciones:• Asigne una dirección IP pública a la instancia y utilice su tabla de ruteo para permitir el acceso a

Internet. Asegúrese de que el grupo de seguridad asociado con la instancia permite el acceso desalida a través del puerto 443 (HTTPS). Para obtener más información, consulte Protocolo y puerto decomunicación para el agente de CodeDeploy (p. 177).

• Si una instancia se aprovisiona en una subred privada, utilice una gateway NAT en lugar de unagateway de Internet en la tabla de ruteo. Para obtener más información, consulte Gateways NAT.

• El rol de servicio de CodeDeploy podría no tener los permisos necesarios. Para configurar un rol deservicio de CodeDeploy, consulte Paso 3: Crear un rol de servicio para CodeDeploy (p. 39).

• Si utiliza un proxy HTTP, asegúrese de que está especificado en el valor de :proxy_uri: en el archivode configuración del agente de CodeDeploy. Para obtener más información, consulte Referencia deconfiguración del agente de CodeDeploy (p. 435).

• Es posible que la firma de fecha y hora de la firma de su instancia de implementación no coincida conla firma de fecha y hora de la solicitud de implementación. Busque un error similar a Cannot reachInstanceService: Aws::CodeDeployCommand::Errors::InvalidSignatureException- Signature expired en el archivo de registro del agente de CodeDeploy. Si ve este error, sigalos pasos que se indican en Solución de errores de implementación “InvalidSignatureException– Signature expired: [hora] is now earlier than [hora]” (p. 466). Para obtener más información,consulte Visualización de los datos de log de las implementaciones de EC2/On-Premises deCodeDeploy (p. 339).

• Puede que el agente de CodeDeploy haya detenido la ejecución porque una instancia se está quedandosin memoria o espacio en el disco duro. Intente reducir el número de implementaciones archivadas enla instancia actualizando el valor de max_revisions en la configuración del agente de CodeDeploy.Si hace esto para una instancia Amazon EC2 y el problema continúa, considere la posibilidad deutilizar una instancia más grande. Por ejemplo, si el tipo de instancia es t2.small, intente usar unat2.medium. Para obtener más información, consulte Archivos instalados por el agente de CodeDeploy (p. 182), Referencia de configuración del agente de CodeDeploy (p. 435) y Tipos de instanciasAmazonEC2.

• Es posible que la instancia que va a implementar no tenga un perfil de instancia de IAM asociado o quetenga un perfil de instancia de IAM asociado que no tenga los permisos necesarios.• Si un perfil de instancia de IAM no está asociado a la instancia, cree uno con los permisos necesarios

y, a continuación, asócielo a la instancia.• Si un perfil de instancia de IAM ya está asociado a la instancia, asegúrese de que dispone de los

permisos necesarios.

Después de confirmar que el perfil de instancia asociado está configurado con los permisos necesarios,reinicie la instancia. Para obtener más información, consulte Paso 4: Crear un perfil de instancia de IAMpara las instancias Amazon EC2 (p. 44) y Roles de IAM para Amazon EC2 en la Guía del usuario deAmazon EC2.

Versión de API 2014-10-06462

Page 472: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioError de falta de credenciales en el

complemento de CodeDeploy CommandPoller

Error de falta de credenciales en el complemento deCodeDeploy CommandPollerSi aparece un error similar a InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller:Missing credentials - please check if this instance was started with an IAMinstance profile, podría deberse a una de las siguientes causas:

• La instancia en la que va a implementar no tiene un perfil de instancia de IAM asociado.• El perfil de instancia de IAM no tiene los permisos correctos configurado.

Un perfil de instancia de IAM concede permiso al agente de CodeDeploy para comunicarse conCodeDeploy y para descargar la revisión desde Amazon S3. En el caso de las instancias Amazon EC2,consulte Administración de identidades y accesos en AWS CodeDeploy (p. 376). En el caso de lasinstancias locales, consulte Trabajar con instancias on-premise (p. 226).

Solución de problemas de las implementaciones deAWS Lambda

Temas• Las implementaciones de AWS Lambda no se realizan correctamente si se detiene manualmente una

implementación de Lambda que no tiene configuradas las restauraciones (p. 463)

Las implementaciones de AWS Lambda no se realizancorrectamente si se detiene manualmente unaimplementación de Lambda que no tiene configuradaslas restauracionesEn algunos casos, el alias de una función de Lambda especificada en una implementación podría hacerreferencia a dos versiones diferentes del función. Como consecuencia, no se realizan correctamente losintentos posteriores de implementar la función de Lambda. Una implementación Lambda puede entraren este estado cuando no tiene configuradas las reversiones y se detiene manualmente. Para continuar,utilice la consola de AWS Lambda para asegurarse de que la función no esté configurada para el desvío detráfico entre dos versiones:

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.

2. En el panel izquierdo, elija Functions (Funciones).3. Seleccione el nombre de la función de Lambda que está en la implementación de CodeDeploy.4. En Qualifiers (Cualificadores), elija el alias utilizado en la implementación de CodeDeploy.5. En Additional Version (Versión adicional), elija <none>. Esto garantiza que el alias no esté configurado

para desviar un porcentaje (o peso) del tráfico a más de una versión. Anote la versión seleccionada enVersion (Versión).

6. Elija Save and test (Guardar y probar).7. Abra la consola de CodeDeploy e intente implementar la versión que se muestra en el menú

desplegable del paso 5.

Versión de API 2014-10-06463

Page 473: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas de grupos de implementaciones

Solución de problemas de grupos deimplementaciones

Cuando se etiqueta una instancia como parte deun grupo de implementaciones, no se implementaautomáticamente la aplicación en la nueva instanciaCodeDeploy no implementa automáticamente su aplicación en una nueva instancia etiquetada. Debe crearuna nueva implementación en el grupo de implementaciones.

Puede utilizar CodeDeploy para permitir implementaciones automáticas en nuevas instancias AmazonEC2 en grupos de Amazon EC2 Auto Scaling. Para obtener más información, consulte Integración deCodeDeploy con Amazon EC2 Auto Scaling (p. 54).

Solución de problemas de instanciasTemas

• Las etiquetas deben estar configuradas correctamente (p. 464)• El agente de AWS CodeDeploy debe estar instalado y ejecutándose en las instancias (p. 464)• Las implementaciones no producen error hasta una hora después cuando se termina una instancia

durante una implementación (p. 465)• Análisis de archivos de registro para investigar los errores de implementación en instancias (p. 465)• Cree un nuevo archivo log de CodeDeploy si se ha eliminado por error (p. 465)• Solución de errores de implementación “InvalidSignatureException – Signature expired: [hora] is now

earlier than [hora]” (p. 466)

Las etiquetas deben estar configuradas correctamenteUtilice el comando list-deployment-instances para confirmar que las instancias utilizadas para unaimplementación están etiquetadas correctamente. Si falta una instancia Amazon EC2 en la salida, utilice laconsola de Amazon EC2 para confirmar que las etiquetas se han configurado en la instancia. Para obtenermás información, consulte Trabajo con etiquetas mediante la consola en la Guía del usuario de AmazonEC2 para instancias de Linux.

Note

Si etiqueta una instancia y utiliza CodeDeploy inmediatamente para implementar una aplicaciónen ella, es posible que la instancia no se incluya en la implementación. Esto se debe a queCodeDeploy puede tardar varios minutos en leer las etiquetas. Le recomendamos que espere almenos cinco minutos entre el momento en que etiqueta una instancia y el momento en que intentarealizar una implementación en ella.

El agente de AWS CodeDeploy debe estar instalado yejecutándose en las instanciasPara verificar que el agente de CodeDeploy está instalado y ejecutándose en una instancia, consulteComprobación de que el agente de CodeDeploy se está ejecutando (p. 184).

Versión de API 2014-10-06464

Page 474: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLas implementaciones no producen error

hasta una hora después cuando se terminauna instancia durante una implementación

Para instalar, desinstalar o reinstalar el agente de CodeDeploy, consulte Instalación del agente deCodeDeploy (p. 187).

Las implementaciones no producen error hastauna hora después cuando se termina una instanciadurante una implementaciónCodeDeploy proporciona un período de una hora para que cada evento de ciclo de vida de laimplementación termine de ejecutarse. Esto proporciona tiempo suficiente para los scripts de largaduración.

Si los scripts no se terminan de ejecutar mientras hay un evento de ciclo de vida en curso (por ejemplo,si se termina una instancia o se cierra el agente de CodeDeploy), puede transcurrir una hora hasta queel estado de la implementación se muestre como Failed (Error). Esto es cierto incluso si el periodo detiempo especificado en el script es inferior a una hora. Esto se debe a que cuando se termina la instancia,el agente de CodeDeploy se cierra y no puede procesar más scripts.

Si se termina una instancia entre eventos de ciclo de vida o antes de que se inicie el primer paso de unevento de ciclo de vida, el tiempo de espera se agota en solo cinco minutos.

Análisis de archivos de registro para investigar loserrores de implementación en instanciasSi el estado de una instancia en la implementación es distinto de Succeeded, puede examinar losdatos del archivo log para poder identificar el problema. Para obtener información sobre cómo obteneracceso a los datos de registro de una implementación, consulte Visualización de los datos de log de lasimplementaciones de EC2/On-Premises de CodeDeploy (p. 339).

Cree un nuevo archivo log de CodeDeploy si se haeliminado por errorSi elimina por error el archivo log de implementación en una instancia, CodeDeploy no crea un archivolog de sustitución. Para crear un nuevo archivo log, inicie sesión en la instancia y, a continuación, ejecuteestos comandos:

Para una instancia de Amazon Linux, Ubuntu Server o RHEL, ejecute estos comandos y en este orden,uno cada vez:

sudo service codedeploy-agent stop

sudo service codedeploy-agent start

Para una instancia de Windows Server:

powershell.exe -Command Restart-Service -Name codedeployagent

Versión de API 2014-10-06465

Page 475: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de errores de implementación“InvalidSignatureException – Signature

expired: [hora] is now earlier than [hora]”

Solución de errores de implementación“InvalidSignatureException – Signature expired: [hora]is now earlier than [hora]”CodeDeploy requiere referencias de tiempo precisas para realizar sus operaciones. Si la fecha y la horade la instancia no están definidas correctamente, es posible que no coincidan con la fecha de firma de lasolicitud de la implementación, que CodeDeploy rechaza.

Para evitar errores relacionados con la configuración de tiempo incorrecta, consulte los siguientes temas:

• Establecer la hora en una instancia de Linux• Establecimiento de la hora para una instancia de Windows

Solución de problemas de token de GitHubToken OAuth de GitHub no válidoLas aplicaciones de CodeDeploy creadas después de junio de 2017 utilizan tokens OAuth de GitHub paracada región de AWS. El uso de tokens vinculados a regiones de AWS específicas le da más control sobrequé aplicaciones de CodeDeploy tienen acceso a un repositorio de GitHub.

Si recibe un error de token de GitHub, es posible que tenga un token más antiguo que ahora no es válido.

Para corregir un token de OAuth de GitHub no válido

1. Utilice DeleteGitHubAccountToken para quitar el token antiguo.2. Añadir un nuevo token de OAuth. Para obtener más información, consulte Integración de CodeDeploy

con GitHub (p. 64).

Se ha superado el número máximo de tokens deOAuth de GitHubAl crear una implementación de CodeDeploy, el número máximo permitido de tokens de GitHub es 10. Sirecibe un error de tokens de OAuth de GitHub, asegúrese de que tiene 10 tokens o menos. Si tiene másde 10 tokens, los primeros tokens que se han creado no son válidos. Por ejemplo, si tiene 11 tokens, elprimer token que ha creado no es válido. Si tiene 12 tokens, los dos primeros tokens que ha creado no sonválidos. Para obtener más información sobre el uso del API de CodeDeploy para eliminar tokens antiguos,consulte DeleteGitHubAccountToken.

Solución de problemas de Amazon EC2 AutoScaling

Temas• Solución de problemas generales de Amazon EC2 Auto Scaling (p. 467)

Versión de API 2014-10-06466

Page 476: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioSolución de problemas generales

de Amazon EC2 Auto Scaling

• Error "CodeDeployRole does not give you permission to perform operations in the following AWSservice: AmazonAutoScaling" (p. 468)

• Las instancias de un grupo de Amazon EC2 Auto Scaling se aprovisionan y se terminanconstantemente antes de que pueda implementarse una revisión (p. 468)

• La terminación o el reinicio de una instancia de Amazon EC2 Auto Scaling puede producir un error enlas implementaciones (p. 469)

• Evite asociar varios grupos de implementaciones a un único grupo de Amazon EC2 AutoScaling (p. 469)

• Las instancias Amazon EC2 de un grupo de Amazon EC2 Auto Scaling no se pueden lanzar y apareceel error "Heartbeat Timeout" (p. 470)

• Los enlaces de ciclo de vida de Amazon EC2 Auto Scaling no coincidentes podrían provocardetenciones o errores de las implementaciones automáticas en grupos de Amazon EC2 AutoScaling (p. 471)

Solución de problemas generales de Amazon EC2Auto ScalingLas implementaciones en instancias Amazon EC2 en un grupo de Amazon EC2 Auto Scaling puedenfracasar por las razones siguientes:

• Amazon EC2 Auto Scaling lanza y termina continuamente instancias Amazon EC2. Si CodeDeploy nopuede implementar automáticamente la revisión de la aplicación, Amazon EC2 Auto Scaling lanzará yterminará continuamente instancias Amazon EC2.

Desasocie el grupo de Amazon EC2 Auto Scaling del grupo de implementaciones de CodeDeploy ocambie la configuración de su grupo de Amazon EC2 Auto Scaling para que el número deseado deinstancias coincida con el número actual de instancias (lo que evitará que Amazon EC2 Auto Scalinglance más instancias Amazon EC2). Para obtener más información, consulte Cambio de la configuraciónde un grupo de implementaciones con CodeDeploy (p. 299) o Escalado manual de Amazon EC2 AutoScaling.

• El agente de CodeDeploy no responde. Puede que el agente de CodeDeploy no esté instaladosi los scripts de inicialización (por ejemplo, los scripts cloud-init) que se ejecutan inmediatamentedespués de que se lance o inicie una instancia Amazon EC2 tardan más de una hora en ejecutarse.CodeDeploy tiene un tiempo de espera de una hora para que el agente de CodeDeploy responda a lasimplementaciones pendientes. Para solucionar este problema, mueva los scripts de inicialización a larevisión de la aplicación de CodeDeploy.

• Una instancia Amazon EC2 en un grupo de Amazon EC2 Auto Scaling se reinicia durante unaimplementación. La implementación puede producir un error si una instancia Amazon EC2 se reiniciadurante una implementación o si el agente de CodeDeploy se cierra mientras procesa un comando deimplementación. Para obtener más información, consulte La terminación o el reinicio de una instancia deAmazon EC2 Auto Scaling puede producir un error en las implementaciones (p. 469).

• Varias revisiones de aplicación se implementan simultáneamente en la misma instancia Amazon EC2en un grupo de Amazon EC2 Auto Scaling. La implementación de varias revisiones de aplicación enla misma instancia Amazon EC2 en un grupo de Amazon EC2 Auto Scaling al mismo tiempo puedeproducir un error si una de las implementaciones tiene scripts que se ejecutan durante más de unosminutos. No implemente varias revisiones de aplicación en las mismas instancias Amazon EC2 en ungrupo de Amazon EC2 Auto Scaling.

• Una implementación produce un error en nuevas instancias Amazon EC2 que se lanzan como parte deun grupo de Amazon EC2 Auto Scaling. En este caso, la ejecución de scripts en una implementaciónpuede evitar el lanzamiento de instancias Amazon EC2 en el grupo de Amazon EC2 Auto Scaling.(Puede parecer que otras instancias Amazon EC2 del grupo de Amazon EC2 Auto Scaling se ejecutannormalmente). Para solucionar este problema, asegúrese de que todos los demás scripts se completanprimero:

Versión de API 2014-10-06467

Page 477: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioError "CodeDeployRole does not give you

permission to perform operations in thefollowing AWS service: AmazonAutoScaling"

• El agente de CodeDeploy no está incluido en su AMI: si usa el comando cfn-init para instalar el agentede CodeDeploy mientras se lanza una nueva instancia, coloque el script de instalación del agente alfinal de la sección cfn-init de su plantilla de AWS CloudFormation.

• El agente de CodeDeploy se incluye en su AMI: configure la AMI de forma que tenga un estadoStopped cuando se cree la instancia y, a continuación, incluya un script para iniciar el agente como elúltimo paso en la biblioteca de scripts cfn-init.

.

Error "CodeDeployRole does not give you permissionto perform operations in the following AWS service:AmazonAutoScaling"Las implementaciones que utilizan un grupo de Auto Scaling creado con una plantilla de lanzamientorequieren los siguientes permisos. Estos se suman a los permisos concedidos por la política administradade AWS AWSCodeDeployRole.

• ec2:RunInstances

• ec2:CreateTags

• iam:PassRole

Si no tiene los permisos indicados, puede recibir este error. Para obtener más información, consulteTutorial: Uso de CodeDeploy para la implementación de una aplicación en un grupo de Amazon EC2 AutoScaling (p. 111) y Creación de una plantilla de lanzamiento para un grupo de Auto Scaling.

Las instancias de un grupo de Amazon EC2 AutoScaling se aprovisionan y se terminan constantementeantes de que pueda implementarse una revisiónEn algunos casos, un error puede impedir que se realice la implementación en instancias reciénaprovisionadas de un grupo de Amazon EC2 Auto Scaling. Los resultados son instancias en mal estadoe implementaciones infructuosas. Como la implementación no se puede ejecutar o no se completacorrectamente, las instancias se terminan en cuanto se crean. La configuración del grupo de Amazon EC2Auto Scaling provoca que se aprovisione otro lote de instancias para intentar satisfacer los requisitos dehosts mínimos en buen estado. Este lote se termina también y así una y otra vez.

Entre las causas posibles se incluyen las siguientes:

• Comprobaciones de estado del grupo de Amazon EC2 Auto Scaling no superadas.• Un error en la revisión de la aplicación.

Para solucionar este problema, siga estos pasos:

1. Cree manualmente una instancia Amazon EC2 que no forme parte del grupo de Amazon EC2 AutoScaling. Etiquete la instancia con una etiqueta de instancia EC2 única.

2. Añada la nueva instancia al grupo de implementaciones afectado.3. Implemente una nueva revisión de la aplicación sin errores en el grupo de implementaciones.

Versión de API 2014-10-06468

Page 478: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLa terminación o el reinicio de una instancia

de Amazon EC2 Auto Scaling puedeproducir un error en las implementaciones

De esta forma, se solicitará al grupo de Amazon EC2 Auto Scaling que implemente la revisión de laaplicación en futuras instancias del grupo de Amazon EC2 Auto Scaling.

Note

Después de confirmar que las implementaciones se han realizado correctamente, elimine lainstancia que ha creado para evitar cargos de facturación continuos en su cuenta de AWS.

La terminación o el reinicio de una instancia deAmazon EC2 Auto Scaling puede producir un error enlas implementacionesSi se lanza una instancia Amazon EC2 a través de Amazon EC2 Auto Scaling y la instancia termina o sereinicia, las implementaciones en dicha instancia pueden producir un error por las razones siguientes:

• Durante una implementación en curso, un evento de escalado o cualquier otro evento de terminaciónprovoca que la instancia se desvincule del grupo de Amazon EC2 Auto Scaling y que termine. Como laimplementación no se puede completar, produce un error.

• La instancia se reinicia, pero tarda más de cinco minutos en iniciarse. CodeDeploy considera que se haagotado el tiempo de espera. El servicio no puede realizar implementaciones actuales y futuras en lainstancia.

Para solucionar este problema:

• En general, asegúrese de que todas las implementaciones se completen antes de que la instanciatermine o se reinicie. Asegúrese de que todas las implementaciones comienzan una vez iniciada oreiniciada la instancia.

• Las implementaciones pueden producir un error si especifica una imagen de máquina de Amazon(AMI) base de Windows Server para una configuración de Amazon EC2 Auto Scaling y usa el servicioEC2Config para establecer el nombre de equipo de la instancia. Para solucionar este problema, en laAMI base de Windows Server base AMI, en la pestaña General de Ec2 Service Properties (Propiedadesdel servicio EC2), desactive la opción Set Computer Name (Definir nombre del equipo). Una vezdesactivada esta casilla, este comportamiento se deshabilitará para todas las nuevas instancias deAmazon EC2 Auto Scaling de Windows Server lanzadas con esa AMI base de Windows Server. Paralas instancias de Amazon EC2 Auto Scaling de Windows Server en las que este comportamiento estáhabilitado, no es necesario desactivar esta casilla. Simplemente vuelva a aplicar las implementacionesque han producido un error en esas instancias una vez reiniciadas.

Evite asociar varios grupos de implementaciones a unúnico grupo de Amazon EC2 Auto ScalingComo práctica recomendada, debe asociar solo un grupo de implementaciones a cada grupo de AmazonEC2 Auto Scaling.

Esto se debe a que si Amazon EC2 Auto Scaling escala una instancia que tiene enlaces asociados convarios grupos de implementaciones, envía las notificaciones para todos los enlaces a la vez. Esto provocaque comiencen a aplicarse las distintas implementaciones en cada instancia al mismo tiempo. Cuandovarias implementaciones envían comandos al agente de CodeDeploy al mismo tiempo, podría alcanzarseel tiempo de espera de cinco minutos entre un evento del ciclo de vida y el inicio de la implementacióno bien el final del evento del ciclo de vida anterior. Si esto ocurre, la implementación no se realizacorrectamente, incluso aunque el proceso de implementación se haya ejecutado según lo previsto.

Versión de API 2014-10-06469

Page 479: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLas instancias Amazon EC2 de un grupo

de Amazon EC2 Auto Scaling no se puedenlanzar y aparece el error "Heartbeat Timeout"

Note

El tiempo de espera predeterminado de un script en un evento de ciclo de vida es de 30 minutos.Puede cambiar el tiempo de espera por otro valor en AppSpec file. Para obtener más información,consulte Adición de un archivo AppSpec para una implementación de EC2/On-Premises (p. 309).

No es posible controlar el orden en el que se producen las implementaciones si se realizan varios intentosde implementación al mismo tiempo.

Por último, si se produce un error de la implementación en cualquier instancia, Amazon EC2 AutoScaling termina inmediatamente la instancia. Cuando se cierra la primera instancia, el resto de lasimplementaciones en ejecución empiezan a producir un error. Como CodeDeploy tiene un tiempo deespera de una hora para que el agente de CodeDeploy responda a las implementaciones pendientes,pueden transcurrir hasta 60 minutos antes de que se agote el tiempo de espera de cada instancia.

Para obtener más información sobre Amazon EC2 Auto Scaling, consulte Under the Hood: CodeDeployand Auto Scaling Integration.

Las instancias Amazon EC2 de un grupo de AmazonEC2 Auto Scaling no se pueden lanzar y aparece elerror "Heartbeat Timeout"Es posible que un grupo de Amazon EC2 Auto Scaling no pueda lanzar nuevas instancias Amazon EC2 ygenere un mensaje similar al siguiente:

Launching a new Amazon EC2 instance <instance-Id>. Status Reason: Instancefailed to complete user's Lifecycle Action: Lifecycle Action with token<token-Id> was abandoned: Heartbeat Timeout.

Este mensaje suele indicar una de las siguientes posibilidades:

• Se ha alcanzado el número máximo de implementaciones simultáneas asociadas a una cuenta deAWS. Para obtener más información acerca de los límites de implementación, consulte Límites deCodeDeploy (p. 447).

• Una aplicación en CodeDeploy se ha eliminado antes de que sus grupos de implementacionesasociados se actualizaran o eliminaran.

Cuando se elimina una aplicación o un grupo de implementaciones, CodeDeploy intenta limpiar todoslos enlaces de Amazon EC2 Auto Scaling asociados a ellos, pero es posible que se conserven algunosenlaces. Si ejecuta un comando para eliminar un grupo de implementaciones, los enlaces restantes sedevuelven en la salida. Sin embargo, si ejecuta un comando para eliminar una aplicación, los enlacesrestantes no aparecen en la salida.

Por lo tanto, es recomendable que elimine todos los grupos de implementaciones asociados a unaaplicación antes de eliminar la aplicación. Puede utilizar el resultado del comando para identificar losenlaces de ciclo de vida que deben eliminarse manualmente.

Si aparece un mensaje de error "Heartbeat Timeout", puede determinar si los enlaces de ciclo de vidarestantes son la causa del problema y resolverlo mediante el siguiente procedimiento:

1. Ejecute el comando update-deployment-group o delete-deployment-group. Examine el resultado dela llamada. Si el resultado contiene una estructura hooksNotCleanedUp con una lista de enlaces deciclo de vida de Amazon EC2 Auto Scaling, la causa más probable del error serán los enlaces de ciclode vida restantes.

2. Llame al comando describe-lifecycle-hooks, especificando el nombre del grupo de Amazon EC2 AutoScaling asociado a las instancias Amazon EC2 que no se pueden lanzar. En el resultado, busque

Versión de API 2014-10-06470

Page 480: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioLos enlaces de ciclo de vida de Amazon EC2

Auto Scaling no coincidentes podrían provocardetenciones o errores de las implementaciones

automáticas en grupos de Amazon EC2 Auto Scalingtodos los nombres de enlaces de ciclo de vida de Amazon EC2 Auto Scaling que se correspondancon la estructura hooksNotCleanedUp que identificó en el paso 1. Otra opción es buscar nombresde enlaces de ciclo de vida de Amazon EC2 Auto Scaling que contengan el nombre del grupo deimplementaciones.

3. Llame al comando delete-lifecycle-hook para cada enlace de ciclo de vida de Amazon EC2 AutoScaling. Especifique el grupo de Amazon EC2 Auto Scaling y el enlace de ciclo de vida.

Si elimina (de un grupo de Amazon EC2 Auto Scaling) todos los enlaces de ciclo de vida de Amazon EC2Auto Scaling creados por CodeDeploy, CodeDeploy ya no aplicará las implementaciones en las instanciasAmazon EC2 que se ampliaron como parte del grupo de Amazon EC2 Auto Scaling.

Los enlaces de ciclo de vida de Amazon EC2 AutoScaling no coincidentes podrían provocar detencioneso errores de las implementaciones automáticas engrupos de Amazon EC2 Auto ScalingAmazon EC2 Auto Scaling y CodeDeploy utilizan enlaces de ciclo de vida para determinar qué revisionesde la aplicación deben implementarse en las instancias Amazon EC2 una vez iniciadas en grupos deAmazon EC2 Auto Scaling. Las implementaciones automáticas se pueden detener o producir un error si losenlaces de ciclo de vida y la información sobre estos enlaces no coinciden exactamente en Amazon EC2Auto Scaling y CodeDeploy.

Si las implementaciones en un grupo de Amazon EC2 Auto Scaling producen error, compruebe si losnombres de los enlaces de ciclo de vida de Amazon EC2 Auto Scaling y CodeDeploy coinciden. Si nocoinciden, utilice estas llamadas a comandos de la AWS CLI.

En primer lugar, obtenga la lista de enlaces de ciclo de vida para el grupo de Amazon EC2 Auto Scaling yel grupo de implementaciones:

1. Llame al comando describe-lifecycle-hooks, especificando el nombre del grupo de Amazon EC2Auto Scaling asociado al grupo de implementaciones de CodeDeploy. En el resultado, en la listaLifecycleHooks, anote todos los valores de LifecycleHookName.

2. Llame al comando get-deployment-group, especificando el nombre del grupo de implementacionesasociado al grupo de Amazon EC2 Auto Scaling. En el resultado, en la lista autoScalingGroups,busque todos los elementos cuyo valor de nombre coincida con el nombre del grupo de Amazon EC2Auto Scaling y, a continuación, anote el valor de hook correspondiente.

Después, compare los dos conjuntos de nombres de enlaces de ciclo de vida. Si coinciden exactamente,carácter por carácter, entonces este no es el problema. Pruebe con otros pasos de solución de problemasde Amazon EC2 Auto Scaling que se describen en esta sección.

Sin embargo, si los dos conjuntos de nombres de enlaces de ciclo de vida no coinciden exactamente,carácter por carácter, pruebe lo siguiente:

1. Si hay nombres de enlaces de ciclo de vida en el resultado del comando describe-lifecycle-hooks queno están en el resultado del comando get-deployment-group, proceda del modo siguiente:

a. Para cada nombre de enlace de ciclo de vida en el resultado del comando describe-lifecycle-hooks, ejecute el comando describe-lifecycle-hook.

b. Llame al comando update-deployment-group, especificando el nombre del grupo de AmazonEC2 Auto Scaling original. CodeDeploy crea nuevos enlaces de ciclo de vida de sustitución enel grupo de Amazon EC2 Auto Scaling y asocia los enlaces de ciclo de vida con el grupo de

Versión de API 2014-10-06471

Page 481: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCódigos de error

implementaciones. Las implementaciones automáticas se deben reanudar ahora cuando seañadan nuevas instancias al grupo de Amazon EC2 Auto Scaling.

2. Si hay nombres de enlaces de ciclo de vida en el resultado del comando get-deployment-group que noestán en el resultado del comando describe-lifecycle-hooks, proceda del modo siguiente:

a. Llame al comando update-deployment-group, pero no especifique el nombre del grupo deAmazon EC2 Auto Scaling original.

b. Llame al comando update-deployment-group de nuevo, pero esta vez especifique el nombre delgrupo de Amazon EC2 Auto Scaling original. CodeDeploy vuelve a crear los enlaces de ciclo devida que faltan en el grupo de Amazon EC2 Auto Scaling. Las implementaciones automáticasse deben reanudar ahora cuando se añadan nuevas instancias al grupo de Amazon EC2 AutoScaling.

Una vez que los dos conjuntos de nombres de enlaces de ciclo de vida coincidan exactamente, carácterpor carácter, las revisiones de la aplicación deberían implementarse de nuevo, pero solamente en lasnuevas instancias cuando estas se añadan al grupo de Amazon EC2 Auto Scaling. Las implementacionesno se realizan automáticamente en instancias que ya están en el grupo de Amazon EC2 Auto Scaling.

Códigos de error de AWS CodeDeployEste tema ofrece información de referencia acerca de errores de CodeDeploy.

Código de error Descripción

AGENT_ISSUE

La implementación falló debido a un problema conel agente de CodeDeploy. Asegúrese de que elagente está instalado y se ejecuta en todas lasinstancias de este grupo de implementaciones.

Más información:

• Comprobación de que el agente de CodeDeployse está ejecutando (p. 184)

• Instalación del agente de CodeDeploy (p. 187)• Trabajar con el agente de CodeDeploy (p. 176)

AUTO_SCALING_IAM_ROLE_PERMISSIONS

El rol de servicio asociado a su grupo deimplementaciones no tiene el permiso necesariopara llevar a cabo operaciones en el siguienteservicio de AWS.

Más información:

• Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39)

• Crear un rol para delegar permisos a un serviciode AWS

HEALTH_CONSTRAINTS

La implementación global falló porquefallaron demasiadas instancias individualesde la implementación, hay muy pocasinstancias en buen estado disponibles para laimplementación o algunas instancias de su grupode implementaciones tienen problemas.

Versión de API 2014-10-06472

Page 482: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCódigos de error

Código de error DescripciónMás información:

• Estado de las instancias (p. 255)• Solución de problemas de instancias (p. 464)• Solución de problemas de las implementaciones

de EC2/On-Premises (p. 454)

HEALTH_CONSTRAINTS_INVALID

La implementación no puede comenzar porqueno hay el número mínimo de instancias en buenestado, tal como define la configuración deimplementación. Puede reducir el número deinstancias en buen estado necesario actualizandola configuración de implementación o aumentandoel número de instancias de este grupo deimplementaciones.

Más información:

• Estado de las instancias (p. 255)• Trabajar con instancias de CodeDeploy (p. 202)

IAM_ROLE_MISSING

La implementación falló porque no existe ningúnrol de servicio con el nombre especificado para elgrupo de implementaciones. Asegúrese de queutiliza el nombre de rol de servicio correcto.

Más información:

• Paso 3: Crear un rol de servicio paraCodeDeploy (p. 39)

• Cambio de la configuración de un grupo deimplementaciones con CodeDeploy (p. 299)

IAM_ROLE_PERMISSIONS

CodeDeploy no tiene los permisos necesarios paraasumir un rol, o el rol de IAM que está utilizandono le da permiso para realizar operaciones en unservicio de AWS.

Más información:

• Paso 1: Aprovisionar un usuario de IAM (p. 37)• Paso 3: Crear un rol de servicio para

CodeDeploy (p. 39)• Paso 4: Crear un perfil de instancia de IAM para

las instancias Amazon EC2 (p. 44)

Versión de API 2014-10-06473

Page 483: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioCódigos de error

Código de error Descripción

NO_INSTANCES

Esto podría deberse a una de las siguientescausas.

• Si se trata de una implementación EC2/On-Premises blue/green yi utiliza etiquetas deAmazon EC2, es posible que estas etiquetasno estén configuradas correctamente. En sugrupo de implementaciones de CodeDeploy,asegúrese de que se incluyen en sus instanciasblue y green. Puede confirmar que las instanciasestán etiquetadas correctamente a través de laconsola de Amazon EC2.

• Si utiliza un grupo Auto Scaling de AmazonEC2, puede que el grupo Auto Scaling no tengacapacidad suficiente. Asegúrese de que sugrupo Auto Scaling tenga capacidad suficientepara su implementación. Puede confirmar quesu grupo Auto Scaling de Amazon EC2 tienecapacidad comprobando el número de instanciasen buen estado mediante la consola de AmazonEC2.

• Si se trata de una implementación blue/green deEC2/On-Premises, es posible que las flotas bluey green no tengan el mismo tamaño. Asegúresede que ambas flotas tengan el mismo tamaño.

Más información:

• Instancias de etiquetado para implementacionesen AWS CodeDeploy (p. 204)

• Tutorial: Uso de CodeDeploy para laimplementación de una aplicación en un grupode Amazon EC2 Auto Scaling (p. 111)

• Creación de una aplicación para unaimplementación blue/green (consola) (p. 273)

OVER_MAX_INSTANCES

La implementación falló porque desea implementarmás instancias de las que están autorizadas parasu cuenta. Para reducir el número de instanciasque desea implementar, actualice la configuraciónde etiqueta de este grupo de implementacioneso elimine algunas de las instancias de destino.También puede ponerse en contacto con AWSSupport para solicitar un aumento del límite.

Más información:

• Cambio de la configuración de un grupo deimplementaciones con CodeDeploy (p. 299)

• Límites de CodeDeploy (p. 447)• Solicitar un aumento del límite

Versión de API 2014-10-06474

Page 484: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioTemas relacionados

Código de error Descripción

THROTTLED

La implementación falló porque un rol de IAMrealizó más solicitudes de las permitidas paraAWS CodeDeploy. Intente reducir el número desolicitudes.

Más información:

• Tasa de solicitudes de la API de consulta

UNABLE_TO_SEND_ASG

La implementación falló porque el grupode implementaciones no está configuradocorrectamente con su grupo de Amazon EC2 AutoScaling. En la consola de CodeDeploy, elimine elgrupo de Amazon EC2 Auto Scaling del grupo deimplementaciones y, a continuación, añádalo denuevo.

Más información:

• Under the Hood: CodeDeploy and Auto ScalingIntegration

Temas relacionadosSolución de problemas de CodeDeploy (p. 451)

Versión de API 2014-10-06475

Page 485: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioGuías de referencia y recursos de soporte

Recursos de CodeDeployLos recursos relacionados siguientes pueden serle de ayuda cuando trabaje con CodeDeploy.

Guías de referencia y recursos de soporte• AWS CodeDeploy API Reference: descripciones, sintaxis y ejemplos de uso de acciones y tipos de datos

de CodeDeploy, incluidos los parámetros y los códigos de error más comunes.• Preguntas frecuentes sobre CodeDeploy: las principales preguntas de los clientes sobre CodeDeploy.• Centro de AWS Support: centro para crear y administrar los casos de AWS Support. También incluye

enlaces a otros recursos útiles, como foros, preguntas técnicas frecuentes, estado de los servicios yAWS Trusted Advisor.

• Planes de AWS Support: página web principal para obtener información sobre los planes de AWSSupport.

• Contáctenos: un punto central de contacto para las consultas relacionadas con la facturación, cuentas,eventos, abuso y otros problemas relacionados con AWS.

• Términos del sitio de AWS: información detallada sobre nuestros derechos de autor y marca comercial,su cuenta, su licencia y su acceso al sitio, entre otros temas.

Ejemplos• CodeDeploy Samples on GitHub: ejemplos y escenarios de plantillas para CodeDeploy.• CodeDeploy Jenkins Plugin: complemento de Jenkins para CodeDeploy.• CodeDeploy Agent: versión de código abierto del agente de CodeDeploy.

Blogs• Blog de operaciones de desarrollo de AWS: información para desarrolladores, administradores de

sistemas y arquitectos.

Kits de desarrollo de software y herramientas deAWS

Los siguientes SDK y herramientas de AWS facilitan el desarrollo de soluciones con CodeDeploy:

• AWS SDK para .NET• AWS SDK for Java• AWS SDK para JavaScript• AWS SDK para PHP• AWS SDK for Python (Boto)• AWS SDK parar Ruby

Versión de API 2014-10-06476

Page 486: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioKits de desarrollo de software y herramientas de AWS

• AWS Toolkit for Eclipse: partes 1, 2 y 3.• Herramientas de AWS para Windows PowerShell: un conjunto de cmdlets de Windows PowerShell que

exponen la funcionalidad del AWS SDK para .NET en el entorno de PowerShell.• CodeDeploy Cmdlets in the AWS Tools for PowerShell: un conjunto de cmdlets de Windows PowerShell

que exponen la funcionalidad de CodeDeploy en el entorno de PowerShell.• AWS Command Line Interface: una sintaxis de línea de comandos uniforme para obtener acceso a los

servicios de AWS. La AWS CLI utiliza un único proceso de configuración para permitir el acceso a todoslos servicios compatibles.

• Herramientas para desarrolladores de AWS: enlaces a herramientas y recursos para desarrolladoresque incluyen documentación, ejemplos de código, notas de versiones y otra información para ayudarle acrear aplicaciones innovadoras con CodeDeploy y AWS.

Versión de API 2014-10-06477

Page 487: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

Historial de revisiónEn la siguiente tabla, se describen los principales cambios que se han realizado en esta guía del usuariopara añadir una funcionalidad nueva y mejorada desde la última versión de la Guía del usuario deCodeDeploy.

• Versión de la API: 2014-10-06• Última actualización de la documentación: 6 de enero de 2020

update-history-change update-history-description update-history-date

Versión 1.1.0 del agente deCodeDeploy e integracióncon Amazon EC2 SystemsManager (p. 478)

La versión 1.1.0 del agente deCodeDeploy ya está disponible.Para obtener más información,consulte Historial de versionesdel agente de CodeDeploy.Ahora puede utilizar AmazonEC2 Systems Manager paraadministrar la instalación y lasactualizaciones del agente deCodeDeploy de forma automáticaen las instancias AmazonEC2 o en las instalaciones.Para obtener más información,consulte Instalación del agentede CodeDeploy medianteAmazon EC2 Systems Manager.

June 30, 2020

CodeDeploy admite la gestiónde implementaciones blue/green(azul/verde) de Amazon ECS conAWS CloudFormation (p. 478)

Ahora puede usar AWSCloudFormation para administrarimplementaciones blue/green(azul/verde) de Amazon ECSa través de CodeDeploy. Paragenerar la implementación,defina los recursos verdesy azules y especifique laconfiguración de enrutamientoy estabilización del tráficoque se va a utilizar en AWSCloudFormation. Para obtenermás información, consulte Crearuna implementación blue/green(azul/verde) de Amazon ECS através de AWS CloudFormation.

May 19, 2020

CodeDeploy admite la desviaciónponderada del tráfico paraimplementaciones blue/green(azul/verde) de AmazonECS (p. 478)

CodeDeploy ahora admite ladesviación ponderada del tráficopara implementaciones blue/green (azul/verde) de AmazonECS. Puede elegir o crear unaconfiguración de implementaciónpara especificar el número deintervalos de cambio de tráfico dela implementación y el porcentaje

February 6, 2020

Versión de API 2014-10-06478

Page 488: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

de tráfico que se va a cambiar encada intervalo. Se ha actualizadoel tema siguiente para reflejareste cambio: Configuracionesde implementación en unaplataforma de computación deAmazon ECS.

Se han actualizado los temas deseguridad, autenticación y controlde acceso (p. 478)

Se ha organizado la informaciónde control de acceso,autenticación y seguridadde CodeDeploy en un nuevocapítulo de seguridad. Paraobtener más información,consulte Seguridad.

November 26, 2019

CodeDeploy admite reglas denotificación (p. 478)

Ahora puede usar reglas denotificación para notificar a losusuarios los cambios importantesen las implementaciones.Para obtener más información,consulte Creación de una reglade notificación.

November 5, 2019

Temas actualizados (p. 478) CodeDeploy ya está disponibleen la región Región Asia Pacífico(Hong Kong) (ap-east-1). Parareflejar la disponibilidad de estanueva región, se han actualizadovarios temas, incluidos losque contienen instruccionespara configurar el agente deCodeDeploy. Debe habilitarexplícitamente el acceso aesta región. Para obtenermás información, consulteAdministración de las regiones deAWS.

April 25, 2019

Versión de API 2014-10-06479

Page 489: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Temas actualizados (p. 478) AWS CodeDeploy ahoraadmite implementaciones blue/green de una aplicación encontenedor en un servicio deAmazon ECS. Una aplicaciónde CodeDeploy que utiliza lanueva Amazon ECS plataformade computación implementa unaaplicación en contenedor en unnuevo conjunto de tareas desustitución en el mismo serviciode Amazon ECS. Se han añadidoy actualizado varios temas parareflejar este cambio, incluidosInformación general sobre lasplataformas de computaciónde AWS CodeDeploy,Implementaciones en unaplataforma de computaciónde Amazon ECS, Estructurade archivo AppSpec paraimplementaciones de AmazonECS y Crear una aplicación parauna implementación de serviciode Amazon ECS (Consola).

November 27, 2018

Agente de CodeDeployactualizado (p. 478)

El agente de AWS CodeDeployse ha actualizado a la versión1.0.1.1597. Para obtener másinformación, consulte Historialde versiones del agente deCodeDeploy.

November 15, 2018

Consola actualizada (p. 478) Los procedimientos en esta guíase han actualizado para quecoincidan con el nuevo diseño dela consola de CodeDeploy.

October 30, 2018

Nueva versión mínimaadmitida del agente deCodeDeploy (p. 478)

La versión mínima admitida delagente de AWS CodeDeploy esahora 1.0.1.1458. Para obtenermás información, consulteHistorial de versiones del agentede CodeDeploy.

August 7, 2018

Actualizaciones anterioresEn la siguiente tabla, se describen los cambios importantes de cada versión de la Guía del usuario de AWSCodeDeploy anteriores a junio de 2018.

Versión de API 2014-10-06480

Page 490: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualizaciones detemas

CodeDeploy ya está disponible en la región (eu-west-3).Para reflejar la disponibilidad de esta nueva región, sehan actualizado varios temas, incluidos los que contieneninstrucciones para configurar el agente de CodeDeploy.

19 dediciembre de2017

Temas actualizados CodeDeploy ya está disponible en la Región China (Ningxia).

Para utilizar servicios en Región China (Pekín) o Región China(Ningxia) debe disponer de una cuenta y credenciales paradicha región. Las cuentas y las credenciales de otras regionesde AWS no funcionan con Regiones de Pekín y Ningxia yviceversa.

La información sobre algunos recursos para Regiones deChina, como nombres de bucket del kit de recursos deCodeDeploy y los procedimientos de instalación del agente deCodeDeploy no se incluyen en esta edición de la CodeDeployGuía del usuario.

Para obtener más información:

• CodeDeploy en Introducción a AWS en Región China(Pekín)

• CodeDeploy Guía del usuario para Regiones de China(Versión en inglés | Versión en chino)

11 dediciembre de2017

Temas actualizados CodeDeploy ahora permite implementar una función deLambda. Las implementaciones de AWS Lambda desvían eltráfico entrante de una función de Lambda existente a unaversión actualizada de la función de Lambda. Puede elegir ocrear una configuración de implementación para especificar elnúmero de intervalos de desvío de tráfico de la implementacióny el porcentaje de tráfico que se va a desviar en cada intervalo.Las implementaciones de AWS Lambda son compatiblescon Modelo de aplicación sin servidor de AWS (AWS SAM),por lo que se puede usar una preferencia de implementaciónde AWS SAM para administrar la forma en que se desvíael tráfico durante una implementación de AWS Lambda. Sehan añadido y actualizado varios temas para reflejar estecambio, como Información general sobre las plataformasde computación de CodeDeploy (p. 2), Implementacionesen una AWS Lambda Plataforma de computación (p. 17),Creación de una implementación AWS Lambda Plataforma decomputación (consola) (p. 325), Creación de una aplicaciónpara la implementación de una función de AWS Lambda(consola) (p. 278) y Adición de un archivo AppSpec para unaimplementación de AWS Lambda (p. 307).

28 denoviembre de2017

Nuevo tema CodeDeploy ahora permite realizar implementacionesdirectamente en un equipo local o en una instancia quetenga instalado el agente de CodeDeploy. Puede probaruna implementación de manera local y, si contiene errores,depurarlos con la ayuda de los registros de error del agente deCodeDeploy. También puede usar una implementación local

16 denoviembre de2017

Versión de API 2014-10-06481

Page 491: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

para probar la integridad de una revisión de la aplicación o elcontenido de un archivo de AppSpec file, entre otras cosas.Para obtener más información, consulte Uso del agente deCodeDeploy para validar un paquete de implementación en unamáquina local (p. 349).

Temas actualizados La compatibilidad con CodeDeploy de los balanceadoresde carga de Elastic Load Balancing en los grupos deimplementaciones se ha ampliado para incluir los Network LoadBalancers, tanto para las implementaciones "blue/green" (azul/verde) como para las implementaciones in situ. Ahora puedeelegir entre un Balanceador de carga de aplicaciones, unClassic Load Balancer o un Network Load Balancer para elgrupo de implementaciones. Los balanceadores de carga sonobligatorios para las implementaciones “blue/green” (azul/verde) y opcionales para las implementaciones in situ. Variostemas se han actualizado para reflejar esta compatibilidadadicional, tales como Integración de CodeDeploy con ElasticLoad Balancing (p. 57), Creación de una aplicación para unaimplementación in situ (consola) (p. 271), Requisitos previospara una implementación (p. 321), Integración de CodeDeploycon Elastic Load Balancing (p. 57) y Creación de una aplicaciónpara una implementación in situ (consola) (p. 271).

12 deseptiembre de2017

Temas actualizados La compatibilidad con CodeDeploy de los balanceadoresde carga de Elastic Load Balancing en los grupos deimplementaciones se ha ampliado para incluir los ApplicationLoad Balancers, tanto para las implementaciones "blue/green" (azul/verde) como para las implementacionesin situ. Ahora puede elegir entre un Balanceador decarga de aplicaciones y un Classic Load Balancer parael grupo de implementaciones. Los balanceadores decarga son obligatorios para las implementaciones “blue/green” (azul/verde) y opcionales para las implementacionesin situ. Los temas Integración de CodeDeploy con ElasticLoad Balancing (p. 57), Creación de una aplicacióncon CodeDeploy (p. 270) y Creación de un grupo deimplementaciones con CodeDeploy (p. 285) se han actualizadopara reflejar esta compatibilidad adicional.

10 de agostode 2017

Versión de API 2014-10-06482

Page 492: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Temas nuevos yactualizados

CodeDeploy ahora admite el uso de varios grupos de etiquetaspara identificar uniones e intersecciones de instancias quese incluirán en un grupo de implementaciones. Si utiliza unúnico grupo de etiquetas, cualquier instancia que se identifiquemediante al menos una etiqueta del grupo se incluye enel grupo de implementaciones. Si utiliza varios grupos deetiquetas, solo se incluyen las instancias que se identificanpor al menos una etiqueta en cada uno de los grupos deetiquetas. Para obtener más información sobre el nuevométodo de añadir instancias a un grupo de implementaciones,consulte Instancias de etiquetado para implementacionesen AWS CodeDeploy (p. 204). Entre otros temas que sehan actualizado para reflejar esta compatibilidad se incluyenCreación de una aplicación para una implementación in situ(consola) (p. 271), Creación de una aplicación para unaimplementación blue/green (consola) (p. 273), Creación de ungrupo de implementaciones para una implementación in situ(consola) (p. 286), Creación de un grupo de implementacionespara una implementación blue/green de EC2/On-Premises(Consola) (p. 288), Implementaciones (p. 17) y Paso 5: Crearuna aplicación y un grupo de implementaciones (p. 134) enTutorial: Uso de CodeDeploy para implementar una aplicacióndesde GitHub (p. 128).

31 de julio de2017

Tema actualizado Se han añadido dos métodos adicionales para instalar elagente de CodeDeploy en instancias de Windows Servera Instalación del agente de CodeDeploy para WindowsServer (p. 191). Además de los comandos de WindowsPowerShell, ahora hay instrucciones disponibles paradescargar el archivo de instalación mediante un enlace HTTPSdirecto y usando un comando copy de Amazon S3. Una vezque el archivo se haya descargado o copiado en una instancia,puede ejecutar la instalación manualmente.

12 de julio de2017

Temas actualizados CodeDeploy ha mejorado la forma en que administra lasconexiones a las cuentas y los repositorios de GitHub. Ahorapuede crear y actualizar hasta 25 conexiones a cuentas deGitHub para asociar aplicaciones de CodeDeploy a repositoriosde GitHub. Cada conexión puede admitir múltiples repositorios.Puede crear conexiones con hasta 25 cuentas diferentes deGitHub o crear más de una conexión con una cuenta única.Después de conectar una aplicación con una cuenta de GitHub,CodeDeploy administra los permisos de acceso requeridos sinrequerir que haga nada más. Las actualizaciones que reflejanesta compatibilidad se realizaron en Especifique informaciónacerca de una revisión almacenada en un repositorio deGitHub (p. 329), Integración de CodeDeploy con GitHub (p. 64)y Tutorial: Uso de CodeDeploy para implementar una aplicacióndesde GitHub (p. 128).

30 de mayode 2017

Versión de API 2014-10-06483

Page 493: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Temas actualizados Anteriormente, si el agente de CodeDeploy detectaba archivosen una ubicación de destino que no formaba parte de larevisión de la aplicación desde la implementación correcta másreciente, la implementación actual producía un error de formapredeterminada. Ahora, CodeDeploy proporciona opcionespara la forma en que el agente administra estos archivos: errorde implementación, conservar el contenido o sobrescribir elcontenido. Crear una implementación con CodeDeploy (p. 321)se ha actualizado para reflejar estas opciones y la nuevasección Comportamiento de la restauración con contenidoexistente (p. 344) se ha añadido a Volver a implementar yrestaurar una implementación con CodeDeploy (p. 342).

16 de mayode 2017

Temas actualizados Ahora se puede asignar una instancia de Classic LoadBalancer en Elastic Load Balancing a un grupo deimplementaciones mediante la consola de CodeDeployo la CLI de AWS. Durante una implementación local, elbalanceador de carga impide que el tráfico de Internet sedirija a la instancia en la que está ocurriendo, y la vuelve aponer a disposición una vez finalizada dicha implementación.Se han actualizado varios temas para reflejar esta nuevacompatibilidad, incluidos Integración con otros servicios deAWS (p. 49), Integración de CodeDeploy con Elastic LoadBalancing (p. 57), Creación de una aplicación para unaimplementación in situ (consola) (p. 271), Creación de ungrupo de implementaciones para una implementación in situ(consola) (p. 286) y la Sección "hooks" de AppSpec (p. 416).Se ha añadido una sección nueva a la guía de solución deproblemas, Solución de problemas con los eventos de ciclo devida de la implementación ApplicationStop, BeforeBlockTraffic yAfterBlockTraffic que han producido un error (p. 458).

27 de abril de2017

Temas actualizados Ahora se puede asignar una instancia de Classic LoadBalancer en Elastic Load Balancing a un grupo deimplementaciones mediante la consola de CodeDeployo la CLI de AWS. Durante una implementación local, elbalanceador de carga impide que el tráfico de Internet sedirija a la instancia en la que está ocurriendo, y la vuelve aponer a disposición una vez finalizada dicha implementación.Se han actualizado varios temas para reflejar esta nuevacompatibilidad, incluidos Integración con otros servicios deAWS (p. 49), Integración de CodeDeploy con Elastic LoadBalancing (p. 57), Creación de una aplicación para unaimplementación in situ (consola) (p. 271), Creación de ungrupo de implementaciones para una implementación in situ(consola) (p. 286) y la Sección "hooks" de AppSpec (p. 416).Se ha añadido una sección nueva a la guía de solución deproblemas, Solución de problemas con los eventos de ciclo devida de la implementación ApplicationStop, BeforeBlockTraffic yAfterBlockTraffic que han producido un error (p. 458).

1 de mayo de2017

Versión de API 2014-10-06484

Page 494: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Temas actualizados CodeDeploy ya está disponible en la Región China (Pekín).

Para utilizar servicios en Región China (Pekín) o Región China(Ningxia) debe disponer de una cuenta y credenciales paradicha región. Las cuentas y las credenciales de otras regionesde AWS no funcionan con Regiones de Pekín y Ningxia yviceversa.

La información sobre algunos recursos para Regiones deChina, como nombres de bucket del kit de recursos deCodeDeploy y los procedimientos de instalación del agente deCodeDeploy no se incluyen en esta edición de la CodeDeployGuía del usuario.

Para obtener más información:

• CodeDeploy en Introducción a AWS en Región China(Pekín)

• CodeDeploy Guía del usuario para Regiones de China(Versión en inglés | Versión en chino)

29 de marzode 2017

Temas nuevos yactualizados

Se han introducido varios temas nuevos para reflejar lacompatibilidad de CodeDeploy con las implementaciones"blue/green” (azul/verde), un método de implementaciónen el que las instancias de un grupo de implementaciones(el entorno original) se sustituyen por otro conjunto deinstancias (el entorno de sustitución). Información generalde la implementación blue/green (p. 9) proporciona unaexplicación general de la metodología "blue/green" que utilizaCodeDeploy. Los temas adicionales nuevos incluyen Creaciónde una aplicación para una implementación blue/green(consola) (p. 273). Creación de un grupo de implementacionespara una implementación blue/green de EC2/On-Premises(Consola) (p. 288) y Configuración de un balanceador de cargaen Elastic Load Balancing para implementaciones de AmazonEC2 de CodeDeploy (p. 293).

Además, se han actualizado numerosos temas, incluidosCrear una implementación con CodeDeploy (p. 321), Uso deconfiguraciones de implementación en CodeDeploy (p. 260),Creación de una aplicación con CodeDeploy (p. 270), Trabajarcon grupos de implementaciones en CodeDeploy (p. 284) ,Trabajo con implementaciones en CodeDeploy (p. 320) y laSección "hooks" de AppSpec (p. 416).

25 de enerode 2017

Versión de API 2014-10-06485

Page 495: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Temas nuevos yactualizados

Hay un tema nuevo, Usar el comando register-on-premises-instance (ARN de sesión de IAM) para registrar una instanciaon-premises (p. 242), que describe la forma de autenticary registrar las instancias on-premises mediante el uso decredenciales temporales actualizadas periódicamente,generadas con AWS Security Token Service. Este enfoqueproporciona una mejor compatibilidad para admitir grandesflotas de instancias on-premises que solamente el uso decredenciales estáticas de un usuario de IAM en cada instancia.Trabajar con instancias on-premise (p. 226) también se haactualizado para reflejar esta nueva compatibilidad.

28 dediciembre de2016

Temas actualizados CodeDeploy ya está disponible en la Región de Europa(Londres) (eu-west-2). Para reflejar la disponibilidad de estanueva región, se han actualizado varios temas, incluidos losque contienen instrucciones para configurar el agente deCodeDeploy.

13 dediciembre de2016

Temas actualizados CodeDeploy ya está disponible en la Región Canadá (Central)(ca-central-1). Para reflejar la disponibilidad de esta nuevaregión, se han actualizado varios temas, incluidos losque contienen instrucciones para configurar el agente deCodeDeploy.

8 dediciembre de2016

Temas actualizados CodeDeploy ya está disponible en la Región EE.UU Este (Ohio)(us-east-2). Para reflejar la disponibilidad de esta nueva región,se han actualizado varios temas, incluidos los que contieneninstrucciones para configurar el agente de CodeDeploy.

17 de octubrede 2016

Temas nuevos Una nueva sección, autenticación y control de acceso, ofreceinformación exhaustiva sobre el uso de AWS Identity andAccess Management (IAM) y CodeDeploy para contribuir aasegurar el acceso a los recursos mediante credenciales. Estascredenciales proporcionan los permisos necesarios para teneracceso a recursos de AWS como, por ejemplo, la recuperaciónde revisiones de la aplicación desde buckets de Amazon S3 yla lectura de etiquetas en instancias Amazon EC2.

11 de octubrede 2016

Tema actualizado Actualización del agente de CodeDeploy en WindowsServer (p. 196) se ha actualizado para reflejar la disponibilidaddel nuevo actualizador del agente de CodeDeploy paraWindows Server. Cuando se lo instala en una instancia deWindows Server, el actualizador comprobará periódicamente siexisten nuevas versiones. Cuando detecte una nueva versióndel agente, el actualizador desinstalará la versión actual, si lahay, antes de instalar la última versión.

4 de octubrede 2016

Versión de API 2014-10-06486

Page 496: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Temas actualizados CodeDeploy ahora se integra con las alarmas de AmazonCloudWatch, lo que hace posible detener una implementaciónsi se produce un cambio en el estado de una alarmadeterminada durante varios periodos consecutivos, según seespecifica en el umbral de alarma.

Además, CodeDeploy ahora admite la anulación automática deuna implementación si se cumplen ciertas condiciones, comoun error en la implementación o la activación de una alarma.

Se han actualizado una serie de temas para reflejarestos cambios, incluidos Creación de una aplicacióncon CodeDeploy (p. 270), Creación de un grupo deimplementaciones con CodeDeploy (p. 285), Cambiode la configuración de un grupo de implementacionescon CodeDeploy (p. 299), Implementaciones (p. 17),Volver a implementar y restaurar una implementacióncon CodeDeploy (p. 342) y Integraciones de productos yservicios con CodeDeploy (p. 49), junto con un tema nuevo,Monitorizar implementaciones con alarmas de CloudWatch enCodeDeploy (p. 357).

15 deseptiembre de2016

Temas nuevos yactualizados

Ahora, CodeDeploy proporciona integración con AmazonCloudWatch Events. Ahora puede usar Eventos de CloudWatchpara iniciar una o varias acciones cuando se detecten cambiosen el estado de una implementación o de una instancia quepertenezca a un grupo de implementaciones de CodeDeploy.Puede incorporar acciones que invocan funciones AWSLambda; que publican en flujos de Kinesis o temas de AmazonSNS; que insertan mensajes en colas de Amazon SQS; oque, a su vez, activan acciones de alarma de CloudWatch.Para obtener más información, consulte Monitorización deimplementaciones con Amazon CloudWatch Events (p. 359).

9 deseptiembre de2016

Actualizaciones detemas

Se han actualizado los temas Integración de CodeDeploycon Elastic Load Balancing (p. 57) y Integración con otrosservicios de AWS (p. 49) para reflejar una opción adicional delbalanceador de carga. CodeDeploy ahora admite el ClassicLoad Balancer y el Balanceador de carga de aplicacionesdisponibles en Elastic Load Balancing.

11 de agostode 2016

Actualizaciones detemas

CodeDeploy ya está disponible en la Región Asia Pacífico(Mumbai) (ap-south-1). Para reflejar la disponibilidad de estanueva región, se han actualizado varios temas, incluidos losque contienen instrucciones para configurar el agente deCodeDeploy.

27 de junio de2016

Versión de API 2014-10-06487

Page 497: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualizaciones detemas

CodeDeploy ya está disponible en la Región Asia Pacífico(Seúl) (ap-northeast-2). Para reflejar la disponibilidad de estanueva región, se han actualizado varios temas, incluidos losque contienen instrucciones para configurar el agente deCodeDeploy.

El índice se ha reorganizado y ahora incluye seccionespara instancias, configuraciones de implementación,aplicaciones, grupos de implementaciones, revisiones eimplementaciones. Se ha añadido una nueva sección paralos tutoriales de CodeDeploy. A fin de facilitar su uso, se handividido varios temas largos, como Referencia de AppSpecFile de CodeDeploy (p. 402) y Solución de problemas deCodeDeploy (p. 451), en temas más cortos. La informaciónsobre configuración del agente de CodeDeploy se hatrasladado a un tema nuevo, Referencia de configuración delagente de CodeDeploy (p. 435).

15 de junio de2016

Temas nuevos yactualizados

Códigos de error de AWS CodeDeploy (p. 472) proporcionainformación sobre algunos de los mensajes de error quepodrían mostrarse cuando se produce un error en lasimplementaciones de CodeDeploy.Se han actualizado las siguientes secciones en Solución deproblemas de CodeDeploy (p. 451) para facilitar la resoluciónde problemas de implementación:

• Las instancias Amazon EC2 de un grupo de AmazonEC2 Auto Scaling no se pueden lanzar y aparece el error"Heartbeat Timeout" (p. 470)

• Evite asociar varios grupos de implementaciones a un únicogrupo de Amazon EC2 Auto Scaling (p. 469)

20 de abril de2016

Actualizaciones detemas

CodeDeploy ya está disponible en la Región América delSur (São Paulo) (sa-east-1). Para reflejar la disponibilidad deesta nueva región, se han actualizado varios temas, incluidoslos que contienen instrucciones para configurar el agente deCodeDeploy.

Trabajar con el agente de CodeDeploy (p. 176) se haactualizado para reflejar la nueva opción de configuración:max_revisions:, que se utiliza para especificar el número derevisiones de la aplicación que desea que archive el agente deCodeDeploy para un grupo de implementaciones.

10 de marzode 2016

Versión de API 2014-10-06488

Page 498: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Temas nuevos yactualizados

CodeDeploy ahora admite la incorporación de disparadoresa un grupo de implementaciones para recibir notificacionesacerca de los eventos relacionados con las implementacioneso instancias de ese grupo de implementaciones. Estasnotificaciones se envían a los destinatarios que están suscritosa un tema de Amazon Simple Notification Service que formaparte de la acción del disparador. También puede utilizar losdatos JSON que se crean cuando se activa un disparador enun flujo de trabajo de notificación personalizado. Para obtenermás información, consulte Monitorización de implementacionescon notificaciones de eventos de Amazon SNS (p. 363).

Se han actualizado los procedimientos para reflejar el rediseñode la página Application details.

Se ha actualizado la sección Las implementaciones noproducen error hasta una hora después cuando se termina unainstancia durante una implementación (p. 465) en Solución deproblemas de CodeDeploy (p. 451).

Límites de CodeDeploy (p. 447) se ha actualizado parareflejar los límites revisados del número de grupos deimplementaciones que se pueden asociar a una sola aplicación,los valores permitidos para una configuración con un mínimo deinstancias en buen estado y las versiones requeridas del AWSSDK para Ruby (aws-sdk-core).

17 de febrerode 2016

Temas nuevos yactualizados

CodeDeploy ya está disponible en la región EE.UU. Oeste(Norte de California) (us-west-1). Para reflejar la incorporaciónde esta nueva región, se han actualizado varios temas,incluidos los que contienen instrucciones para configurar elagente de CodeDeploy.

Elección de un tipo de repositorio de CodeDeploy (p. 311)enumera y describe los tipos de repositorio que ahora admiteCodeDeploy. Este tema nuevo se actualizará a medida que seintroduzca la compatibilidad para otros tipos de repositorio.

Gestión de las operaciones del agente de CodeDeploy (p. 184)se ha actualizado con información acerca del nuevo archivo.version añadido a las instancias para notificar la versiónactual del agente de CodeDeploy, así como con informaciónsobre las versiones compatibles del agente.

Se ha añadido a la guía del usuario resalte de la sintaxis paramuestras de código, que incluyen ejemplos de JSON y YAML.

Adición de un archivo de especificación de aplicación a unarevisión para CodeDeploy (p. 305) se ha reorganizado eninstrucciones paso a paso.

20 de enerode 2016

Versión de API 2014-10-06489

Page 499: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Nuevo tema Implementar una aplicación en otra cuenta de AWS (p. 346)describe los requisitos de configuración y el proceso parainiciar implementaciones que pertenecen a otra cuentade la organización, sin necesitar un conjunto completo decredenciales para esa otra cuenta. Esto resulta muy útil paralas organizaciones que utilizan múltiples cuentas con finesdiferentes, como una asociada a entornos de desarrollo yprueba y otra asociada a un entorno de producción.

30 dediciembre de2015

Actualización de tema Se ha rediseñado el tema Integraciones de productos yservicios con CodeDeploy (p. 49). Ahora incluye una seccióncon ejemplos de integración de la comunidad, que incluye listasde entradas de blog y ejemplos de vídeos relacionados con lasintegraciones de CodeDeploy.

16 dediciembre de2015

Actualizaciones detemas

CodeDeploy ya está disponible en la Región Asia Pacífico(Singapur) (ap-southeast-1). Para reflejar la disponibilidad deesta nueva región, se han actualizado varios temas, incluidoslos que contienen instrucciones para configurar el agente deCodeDeploy.

9 dediciembre de2015

Actualizaciones detemas

Trabajar con el agente de CodeDeploy (p. 176) se haactualizado para reflejar la nueva opción :proxy_uri: en elarchivo de configuración del agente de CodeDeploy.Referencia de AppSpec File de CodeDeploy (p. 402) se haactualizado con información acerca del uso de una nuevavariable de entorno, DEPLOYMENT_GROUP_ID, a los que losscripts de enlace pueden tener acceso durante un evento delciclo de vida de la implementación.

1 dediciembre de2015

Actualización de tema Paso 3: Crear un rol de servicio para CodeDeploy (p. 39) se haactualizado para reflejar un nuevo procedimiento para crear unrol de servicio para CodeDeploy e incorporar otras mejoras.

13 denoviembre de2015

Actualizaciones detemas

CodeDeploy ya está disponible en la Región de Europa(Fráncfort) (eu-central-1). Para reflejar la disponibilidad deesta nueva región, se han actualizado varios temas, incluidoslos que contienen instrucciones para configurar el agente deCodeDeploy.

El tema Solución de problemas de CodeDeploy (p. 451) se haactualizado con información acerca de cómo garantizar que laconfiguración de hora en las instancias sea precisa.

19 de octubrede 2015

Temas nuevos Referencia de plantillas de AWS CloudFormation paraCodeDeploy (p. 438) se ha publicado para reflejar la nuevacompatibilidad de AWS CloudFormation con las acciones deCodeDeploy.

Se ha creado un tema de Componentes principales (p. 13) y seha introducido la definición de una revisión de destino.

1 de octubrede 2015

Versión de API 2014-10-06490

Page 500: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualizaciones detemas

Creación de un grupo de implementaciones conCodeDeploy (p. 285) se ha actualizado para reflejarla capacidad para ubicar instancias para un grupo deimplementaciones que utiliza búsquedas de comodín.

Estado de las instancias (p. 255) se ha actualizado para aclararel concepto de mínimo de instancias en buen estado.

31 de agostode 2015

Actualizaciones detemas

CodeDeploy ya está disponible en la Región Asia Pacífico(Tokio) (ap-northeast-1). Para reflejar la disponibilidad deesta nueva región, se han actualizado varios temas, incluidoslos que contienen instrucciones para configurar el agente deCodeDeploy.

19 de agostode 2015

Actualizaciones detemas

CodeDeploy ahora admite implementaciones en instanciason-premises de Red Hat Enterprise Linux (RHEL) e instanciasAmazon EC2. Para obtener más información, consulte lossiguientes temas:

• Sistemas operativos admitidos por el agente deCodeDeploy (p. 176)

• Trabajar con instancias de CodeDeploy (p. 202)• Tutorial: Implementación de WordPress en una instancia

Amazon EC2 (Amazon Linux o Red Hat Enterprise Linux yLinux, macOS, or Unix) (p. 69)

• Tutorial: Implementación de una aplicación en una instanciaon-premises con CodeDeploy (Windows Server UbuntuServer o Red Hat Enterprise Linux) (p. 104)

23 de junio de2015

Actualización de tema CodeDeploy ahora proporciona un conjunto de variablesde entorno que los scripts de enlace pueden usar durantelas implementaciones. Estas variables de entorno incluyeninformación como el nombre de la aplicación actual deCodeDeploy, el grupo de implementaciones y el evento delciclo de vida de la implementación, así como el identificadoractual de la implementación de CodeDeploy. Para obtener másinformación, consulte el final de la sección Sección "hooks"de AppSpec (p. 416) en la Referencia de AppSpec File deCodeDeploy (p. 402).

29 de mayode 2015

Versión de API 2014-10-06491

Page 501: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualizaciones detemas

CodeDeploy ahora proporciona un conjunto de políticasadministradas de AWS en IAM que se puede utilizar en lugarde crear manualmente políticas propias equivalentes. Entreellas se incluyen:

• Una política para permitir a un usuario de IAM que registrelas revisiones en CodeDeploy solamente y que luego lasimplemente a través de CodeDeploy.

• Una política para proporcionar a un usuario de IAM accesototal a los recursos de CodeDeploy.

• Una política para proporcionar a un usuario de IAM accesode solo lectura a los recursos de CodeDeploy.

• Una política para asociar a un rol de servicio que permitaa CodeDeploy identificar instancias Amazon EC2 a travésde sus etiquetas de Amazon EC2, etiquetas de instanciason-premises o nombres de grupo de Amazon EC2 AutoScaling e implementar revisiones de aplicaciones en dichasinstancias, según corresponda.

Para obtener más información, consulte Ejemplos de políticasadministradas por los clientes (p. 387) la sección sobreautenticación y control de acceso.

29 de mayode 2015

Actualizaciones detemas

CodeDeploy ya está disponible en la Región de Europa(Irlanda) (eu-west-1) y la Región Asia Pacífico (Sídney) (ap-southeast-2). Para reflejar la disponibilidad de estas nuevasregiones, se han actualizado varios temas, incluidos losque contienen instrucciones para configurar el agente deCodeDeploy.

7 de mayo de2015

Temas nuevos CodeDeploy ahora admite implementaciones en instancias on-premises e instancias Amazon EC2. Los siguientes temas sehan añadido para describir la nueva compatibilidad.

• Trabajar con instancias on-premise (p. 226)• Tutorial: Implementación de una aplicación en una instancia

on-premises con CodeDeploy (Windows Server UbuntuServer o Red Hat Enterprise Linux) (p. 104)

• Trabajar con instancias on-premise (p. 226)

2 de abril de2015

Nuevo tema Recursos de CodeDeploy (p. 476) se ha añadido. 2 de abril de2015

Versión de API 2014-10-06492

Page 502: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualización de tema Solución de problemas de CodeDeploy (p. 451) se haactualizado:

• Una nueva sección Los procesos de larga duración puedenproducir un error en la implementación (p. 460) describelos pasos que puede tomar para identificar y solucionar loserrores de implementación ocasionados por procesos delarga duración.

• La sección Solución de problemas generales de AmazonEC2 Auto Scaling (p. 467) se ha actualizado para mostrarque CodeDeploy ha aumentado la lógica de tiempo deespera de Amazon EC2 Auto Scaling para el agente deCodeDeploy de cinco minutos a una hora.

• Una nueva sección Los enlaces de ciclo de vida de AmazonEC2 Auto Scaling no coincidentes podrían provocardetenciones o errores de las implementaciones automáticasen grupos de Amazon EC2 Auto Scaling (p. 471) describelos pasos que puede realizar para identificar y solucionarerrores de las implementaciones automáticas en los gruposde Amazon EC2 Auto Scaling.

2 de abril de2015

Actualizaciones detemas

Se han actualizado los siguientes temas para reflejar lasnuevas recomendaciones para crear políticas personalizadas yadjuntarlas a usuarios y roles en IAM:

• Configuración de una instancia Amazon EC2 para trabajarcon CodeDeploy (p. 223)

• Paso 4: Crear un perfil de instancia de IAM para lasinstancias Amazon EC2 (p. 44)

• Paso 3: Crear un rol de servicio para CodeDeploy (p. 39)

Se han añadido dos secciones a Solución de problemas deCodeDeploy (p. 451):

• Lista de comprobación de solución de problemasgenerales (p. 451)

• El script de Windows PowerShell no puede usar laversión de 64 bits de Windows PowerShell de formapredeterminada (p. 459)

La sección Sección "hooks" de AppSpec (p. 416) en laReferencia de AppSpec File de CodeDeploy (p. 402) se haactualizado para describir con mayor precisión los eventos delciclo de vida disponibles.

12 de febrerode 2015

Actualizaciones detemas

Se ha añadido una nueva sección a Solución de problemas deCodeDeploy (p. 451): Las instancias Amazon EC2 de un grupode Amazon EC2 Auto Scaling no se pueden lanzar y aparece elerror "Heartbeat Timeout" (p. 470).

Se ha añadido una sección de CloudBees a Integraciones deproductos y servicios con CodeDeploy (p. 49).

28 de enerode 2015

Versión de API 2014-10-06493

Page 503: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualizaciones detemas

Se han añadido las siguientes secciones a Solución deproblemas de CodeDeploy (p. 451):

• El uso de algunos editores de texto para crear archivosAppSpec y scripts del shell produce un error en lasimplementaciones (p. 453)

• El uso de Finder en macOS para empaquetar unarevisión de la aplicación puede producir un error en laimplementación (p. 454)

• Solución de problemas con los eventos de ciclo de vida dela implementación ApplicationStop, BeforeBlockTraffic yAfterBlockTraffic que han producido un error (p. 458)

• Solución de problemas con un evento de ciclo de vida de laimplementación DownloadBundle que ha producido el error"UnknownError: not opened for reading" (p. 459)

• Solución de problemas generales de Amazon EC2 AutoScaling (p. 467)

20 de enerode 2015

Temas nuevos La sección Integraciones de productos y servicios conCodeDeploy (p. 49) se ha actualizado para incluir los siguientestemas:

• Integración de CodeDeploy con Amazon EC2 AutoScaling (p. 54)

• Tutorial: Uso de CodeDeploy para la implementación de unaaplicación en un grupo de Amazon EC2 Auto Scaling (p. 111)

• Monitorización de implementaciones con AWSCloudTrail (p. 361)

• Integración de CodeDeploy con Elastic LoadBalancing (p. 57)

• Integración de CodeDeploy con GitHub (p. 64)• Tutorial: Uso de CodeDeploy para implementar una

aplicación desde GitHub (p. 128)

9 de enero de2015

Versión de API 2014-10-06494

Page 504: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuarioActualizaciones anteriores

Cambio Descripción Fecha demodificación

Actualizaciones detemas

• Se ha añadido la sección Implementación automática desdeCodePipeline con CodeDeploy (p. 67) en Integración deCodeDeploy con GitHub (p. 64). Ahora puede dispararautomáticamente una implementación desde un repositoriode GitHub siempre que el código fuente de ese repositoriocambie.

• Se ha añadido la sección Solución de problemas de AmazonEC2 Auto Scaling (p. 466) en Solución de problemas deCodeDeploy (p. 451). Esta nueva sección describe cómosolucionar problemas comunes en la implementación agrupos de Amazon EC2 Auto Scaling.

• Se ha añadido la nueva sección secundaria "Ejemplos dearchivos" a la sección Sección "files" de AppSpec (solopara implementaciones de EC2/On-Premises) (p. 406) deReferencia de AppSpec File de CodeDeploy (p. 402). Estanueva sección secundaria incluye varios ejemplos de cómoutilizar la sección files de un AppSpec file para indicar aCodeDeploy que copie determinados archivos o carpetasen ubicaciones específicas de una instancia Amazon EC2durante una implementación.

8 de enero de2015

Nuevo tema Se ha añadido Monitorización de implementaciones con AWSCloudTrail (p. 361). CodeDeploy está integrado con AWSCloudTrail, un servicio que captura las llamadas a la APIrealizadas por CodeDeploy o en su nombre, en una cuenta deAWS y que envía los archivos de registro al bucket de AmazonS3 que se especifique.

17 dediciembre de2014

Versión pública inicial Esta es la versión pública inicial de la Guía del usuario deCodeDeploy.

12 denoviembre de2014

Versión de API 2014-10-06495

Page 505: AWS CodeDeploy - Guía del usuario · Paso 2: Crear una revisión de aplicación de ejemplo..... 103 Paso 3: Empaquetar y cargar la revisión de la aplicación en Amazon S3..... 106

AWS CodeDeploy Guía del usuario

AWS glossaryFor the latest AWS terminology, see the AWS glossary in the AWS General Reference.

Versión de API 2014-10-06496