Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Tutorial: Crear una canalización simple (bucket de S3)

Modo de enfoque
Tutorial: Crear una canalización simple (bucket de S3) - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

La forma más sencilla de crear una canalización es utilizar el asistente de creación de canalización de la AWS CodePipeline consola.

En este tutorial, creará una canalización de dos etapas que utiliza un bucket de código fuente de S3 versionado y CodeDeploy lanzará una aplicación de muestra.

nota

Si Amazon S3 es el proveedor de origen de la canalización, debe comprimir los archivos de origen en un solo archivo.zip y cargarlo en el bucket de origen. También puede cargar un archivo sin comprimir; sin embargo, se producirá un error en las acciones posteriores que esperan un archivo.zip.

importante

Como parte de la creación de una canalización, se utilizará un depósito de artefactos de S3 proporcionado por el cliente para crear artefactos. CodePipeline (Es diferente del bucket que se usa para una acción de origen de S3). Si el depósito de artefactos de S3 está en una cuenta diferente a la de tu canalización, asegúrate de que el depósito de artefactos de S3 pertenezca a una Cuentas de AWS persona segura y fiable.

Una vez creada esta canalización simple, le agregará otra etapa para después deshabilitar y volver a habilitar la transición entre etapas.

importante

Muchas de las acciones que añades a la canalización en este procedimiento implican AWS recursos que debes crear antes de crear la canalización. AWS Los recursos para las acciones de origen siempre deben crearse en la misma AWS región en la que se creó la canalización. Por ejemplo, si creas tu canalización en la región EE.UU. Este (Ohio), tu CodeCommit repositorio debe estar en la región EE.UU. Este (Ohio).

Puedes añadir acciones entre regiones al crear tu canalización. AWS los recursos para las acciones entre regiones deben estar en la misma AWS región en la que planeas ejecutar la acción. Para obtener más información, consulte Añadir una acción interregional en CodePipeline.

Antes de comenzar, debe completar los requisitos previos de Empezar con CodePipeline.

Paso 1: creación de un bucket de origen de S3 para la aplicación

Puede almacenar sus aplicaciones o archivos de código fuente en cualquier ubicación con control de versiones. En este tutorial, va a crear un bucket de S3 para los archivos de la aplicación de ejemplo y a habilitar en él el control de versiones. Una vez habilitado el control de versiones, copiará las aplicaciones de ejemplo a ese bucket.

Para crear un bucket de S3
  1. Inicie sesión en la consola en AWS Management Console. Abra la consola de S3.

  2. Elija Crear bucket.

  3. En Bucket Name (Nombre del bucket), escriba el nombre del bucket (por ejemplo: awscodepipeline-demobucket-example-date).

    nota

    Como todos los nombres de bucket en Amazon S3 deben ser únicos, elija un nombre que no sea el que aparece en el ejemplo. Puede cambiar el nombre del ejemplo simplemente añadiéndole la fecha. Anote este nombre, ya que lo necesitará durante el resto de este tutorial.

    En Región, elija la región en la que quiere crear la canalización (por ejemplo, Oeste de EE. UU. (Oregón)) y elija Crear bucket.

  4. Una vez creado el bucket, aparecerá un banner donde se indicará que la operación se ha realizado correctamente. Elija Go to bucket details (Acceder a los detalles del bucket).

  5. En la pestaña Properties (Propiedades), elija Versioning (Control de versiones). Elija Enable versioning (Habilitar control de versiones) y haga clic en Save (Guardar).

    Cuando se habilita este control de versiones, Amazon S3 guarda todas las versiones de cada objeto en el bucket.

  6. En la pestaña Permissions (Permisos), deje los valores predeterminados. Para obtener más información sobre los permisos de los objetos y los buckets de S3, consulte Especificación de permisos en una política.

  7. A continuación, descargue un ejemplo y guárdelo en una carpeta o directorio del equipo local.

    1. Elija una de las siguientes opciones. Elija SampleApp_Windows.zip si desea seguir los pasos de este tutorial en instancias de Windows Server.

      • Si desea realizar la implementación en instancias de Amazon Linux mediante CodeDeploy, descargue la aplicación de muestra aquí: SampleApp_Linux.zip.

      • Si desea realizar la implementación en instancias de Windows Server mediante CodeDeploy, descargue la aplicación de muestra aquí: SampleApp_Windows.zip.

      La aplicación de ejemplo contiene los siguientes archivos para realizar la implementación con CodeDeploy:

      • appspec.yml— El archivo de especificaciones de la aplicación (AppSpecarchivo) es un archivo con formato YAML que se utiliza CodeDeploy para gestionar una implementación. Para obtener más información sobre el AppSpec archivo, consulte la referencia al CodeDeploy AppSpec archivo en la Guía del AWS CodeDeploy usuario.

      • index.html: el archivo de índice contiene la página de inicio de la aplicación de ejemplo implementada.

      • LICENSE.txt: el archivo de licencia contiene la información de licencia de la aplicación de ejemplo.

      • Archivos para scripts: la aplicación de ejemplo usa scripts para escribir archivos de texto en una ubicación de la instancia. Se escribe un archivo para cada uno de los diversos eventos del ciclo de vida de la CodeDeploy implementación, de la siguiente manera:

        • (Solo ejemplos de Linux) Carpeta scripts: la carpeta contiene los siguientes scripts de intérprete de comandos para instalar las dependencias e iniciar y detener la aplicación de ejemplo para la implementación automatizada: install_dependencies, start_server y stop_server.

        • (Solo ejemplo de Windows) before-install.bat: se trata de un script por lotes para el evento de ciclo de vida de implementación, que se ejecutará para eliminar los archivos antiguos escritos durante implementaciones anteriores de este ejemplo y crear una ubicación en su instancia en la que escribir los archivos nuevos.

    2. Descargue el archivo comprimido (en zip). No descomprima el archivo.

  8. En la consola de Amazon S3, para su bucket suba el archivo:

    1. Seleccione Cargar.

    2. Arrastre y suelte el archivo o elija Add files (Agregar archivos) y busque el archivo.

    3. Seleccione Cargar.

Paso 2: Crear instancias de Amazon EC2 Windows e instalar el CodeDeploy agente

nota

En este tutorial se proporcionan ejemplos de pasos para crear instancias de Amazon EC2 Windows. Para ver ejemplos de pasos para crear instancias de Amazon EC2 Linux, consultePaso 3: Crear una instancia de Amazon EC2 Linux e instalar el CodeDeploy agente. Cuando le pidan el número de instancias que se van a crear, especifique 2 instancias.

En este paso, creará las EC2 instancias Amazon de Windows Server en las que desplegará una aplicación de muestra. Como parte de este proceso, debe crear un rol de instancia con políticas que permitan instalar y administrar el CodeDeploy agente en las instancias. El CodeDeploy agente es un paquete de software que permite utilizar una instancia en CodeDeploy las implementaciones. También debe adjuntar políticas que permiten a la instancia recuperar los archivos que el CodeDeploy agente utiliza para implementar la aplicación y permitir que SSM administre la instancia.

Para crear un rol de instancia
  1. Abra la consola de IAM en). https://console.aws.amazon.com/iam/

  2. En el panel de la consola, elija Roles.

  3. Elija Crear rol.

  4. En Seleccionar el tipo de entidad de confianza, seleccione Servicio de AWS. En Elija un caso de uso, seleccione y EC2, a continuación, elija Siguiente: permisos.

  5. Busque y seleccione la política denominada AmazonEC2RoleforAWSCodeDeploy.

  6. Busque y seleccione la política denominada AmazonSSMManagedInstanceCore. Elija Siguiente: Etiquetas.

  7. Elija Siguiente: Revisar. Escriba el nombre del rol (por ejemplo, EC2InstanceRole).

    nota

    Anote el nombre del rol para utilizarlo en el siguiente paso. Tendrá que elegir este rol cuando cree la instancia.

    Elija Crear rol.

Para lanzar las instancias
  1. Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/.

  2. En la barra de navegación lateral, elija Instancias y seleccione Lanzar instancias en la parte superior de la página.

  3. En Nombre y etiquetas, en Nombre, introduzca MyCodePipelineDemo. Esto asigna a las instancias una clave de etiqueta Name y un valor de etiqueta MyCodePipelineDemo. Más adelante, se crea una CodeDeploy aplicación que despliega la aplicación de muestra en las instancias. CodeDeployselecciona las instancias que se van a implementar en función de las etiquetas.

  4. En Imágenes de aplicaciones y sistema operativo (imagen de máquina de Amazon), elija Windows. (Esta AMI se describe como Microsoft Windows Server 2019 Base y tiene la etiqueta "Free tier eligible" (Apta para el nivel gratuito) y se encuentra en Inicio rápido).

  5. En Tipo de instancia, elija el tipo t2.micro apto para la capa gratuita como configuración de hardware de la instancia.

  6. En Par de claves (inicio de sesión), seleccione un par de claves o cree uno.

    Puede elegir Continuar sin un par de claves.

    nota

    A efectos de este tutorial, puede continuar sin utilizar un par de claves. Si desea usar SSH para conectarse a sus instancias, cree o use un par de claves.

  7. En Configuración de red, haga lo siguiente:

    En Asignar automáticamente IP pública, asegúrese de que el estado sea Activar.

    • Junto a Assign a security group (Asignar un grupo de seguridad), elija Create a new security group (Crear un nuevo grupo de seguridad).

    • En la fila de SSH, en Tipo de origen, elija Mi IP.

    • Elija Añadir grupo de seguridad, HTTP y en Tipo de origen, elija Mi IP.

  8. Amplíe Advanced details (Detalles avanzados). En Perfil de instancia de IAM, elija el rol de IAM que creó en el procedimiento anterior (por ejemplo, EC2InstanceRole).

  9. En Resumen, en Número de instancias, introduzca 2.

  10. Seleccione Iniciar instancia.

  11. Elija Ver todas las instancias para cerrar la página de confirmación y volver a la consola.

  12. Puede ver el estado del lanzamiento en la página Instances. Al lanzar una instancia, su estado inicial es pending. Una vez iniciada la instancia, el estado cambia a running y recibe un nombre de DNS público. (Si la columna Public DNS no se muestra, haga clic en el icono Show/Hide y después seleccione Public DNS.)

  13. Puede que transcurran unos minutos hasta que la instancia esté lista para conectarse. Verifique que su instancia ha pasado las comprobaciones de estado. Puede ver esta información en la columna Status Checks (Comprobaciones de estado).

Paso 3: Crea una aplicación en CodeDeploy

En CodeDeploy, una aplicación es un identificador, en forma de nombre, del código que se quiere implementar. CodeDeploy usa este nombre para garantizar que se haga referencia a la combinación correcta de revisión, configuración de implementación y grupo de implementación durante una implementación. Seleccione el nombre de la CodeDeploy aplicación que cree en este paso cuando cree la canalización más adelante en este tutorial.

Primero debe crear un rol de servicio CodeDeploy para usarlo. Si ya ha creado un rol de servicio, no necesita crear otro.

Para crear un rol CodeDeploy de servicio
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/).

  2. En el panel de la consola, elija Roles.

  3. Elija Crear rol.

  4. En Seleccionar entidad de confianza, elija Servicio de AWS. En Use case (Caso de uso), elija CodeDeploy. Elija una CodeDeployde las opciones que aparecen en la lista. Elija Next (Siguiente). La política administrada AWSCodeDeployRole ya está asociada al rol.

  5. Elija Next (Siguiente).

  6. Especifique un nombre para el rol (por ejemplo, CodeDeployRole) y elija Create role (Crear rol).

Para crear una aplicación en CodeDeploy
  1. Abra la CodeDeploy consola en https://console.aws.amazon.com/codedeploy.

  2. Si la página Aplicaciones no aparece, en el AWS CodeDeploy menú, seleccione Aplicaciones.

  3. Elija Creación de aplicación.

  4. En Application name (Nombre de aplicación), escriba MyDemoApplication.

  5. En Compute Platform, selecciona EC2/On-premises.

  6. Elija Creación de aplicación.

Para crear un grupo de implementación en CodeDeploy
  1. En la página que muestra su aplicación, elija Create deployment group (Crear grupo de implementaciones).

  2. En Nombre de grupo de implementación, escriba MyDemoDeploymentGroup.

  3. En Rol de servicio, elija el rol de servicio de que creó anteriormente. Debe usar un rol de servicio que confíe, como mínimo, AWS CodeDeploy con la confianza y los permisos descritos en Crear un rol de servicio para CodeDeploy. Para obtener el ARN del rol de servicio, consulte Obtención del ARN del rol de servicio (consola).

  4. En Deployment type (Tipo de implementación), elija In-place (In situ).

  5. En Configuración del entorno, elija Amazon EC2 Instances. Elija Name (Nombre) en el campo Key (Clave) y, en el campo Value (Valor), escriba MyCodePipelineDemo.

    importante

    Aquí debe elegir el mismo valor para la clave de nombre que asignó a sus EC2 instancias cuando las creó. Si etiquetó la instancia con un término distinto de MyCodePipelineDemo, asegúrese de usarlo aquí.

  6. En Configuración del agente con AWS Systems Manager, seleccione Ahora y programe las actualizaciones. Primero, instale el agente en la instancia. La instancia de Windows ya está configurada con el agente SSM y ahora se actualizará con el CodeDeploy agente.

  7. En Configuración de implementación, elija CodeDeployDefault.OneAtaTime.

  8. En Equilibrador de carga, asegúrese de que no esté seleccionado el cuadro Habilitar equilibrio de carga. No es necesario configurar un balanceador de carga ni elegir un grupo de destino para este ejemplo. Tras anular la selección de la casilla de verificación, no se muestran las opciones del equilibrador de carga.

  9. En la sección Avanzado, deje los valores predeterminados.

  10. Elija Crear grupo de implementación.

Paso 4: Crea tu primera canalización en CodePipeline

En esta parte del tutorial se crea la canalización. El ejemplo se ejecuta automáticamente en la canalización.

Para crear un proceso de publicación CodePipeline automatizado
  1. Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en http://console.aws.amazon. com/codesuite/codepipeline/home.

  2. En la página Bienvenido, Introducción o Canalizaciones, elija Crear canalización.

  3. En la página Paso 1: elección de la opción de creación, en Opciones de creación, seleccione la opción Crear una canalización personalizada. Elija Next (Siguiente).

  4. En Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba MyFirstPipeline.

    nota

    Si elige otro nombre para la canalización, utilícelo en lugar de MyFirstPipeline durante el resto de este tutorial. Después de crear una canalización, no podrá cambiar el nombre. Los nombres de canalizaciones están sujetos a algunas limitaciones. Para obtener más información, consulte Cuotas en AWS CodePipeline.

  5. CodePipeline proporciona tuberías de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte Tipos de canalización. Para obtener información sobre los precios de CodePipeline, consulte Precios.

  6. En Service role (Rol de servicio), realice una de las operaciones siguientes:

    • Elija Nueva función de servicio para CodePipeline poder crear una nueva función de servicio en IAM.

    • Elija Existing service role (Rol de servicio existente) para utilizar un rol de servicio que ya se ha creado en IAM. En Role name (Nombre del rol), elija el nombre del rol de servicio en la lista.

  7. En Advanced settings (Configuración avanzada), deje los valores predeterminados y elija Next (Siguiente).

  8. En Paso 3: agregar la etapa de origen, en Proveedor de origen, elija Amazon S3. En Bucket, escriba el nombre del bucket de S3·que creó en Paso 1: creación de un bucket de origen de S3 para la aplicación. En la clave del objeto de S3, escriba la clave del objeto con o sin una ruta de archivo y recuerde incluir la extensión de archivo. Por ejemplo, en SampleApp_Windows.zip, escriba el nombre del archivo de ejemplo tal y como aparece en este ejemplo:

    SampleApp_Windows.zip

    Elija Next Step (Paso siguiente).

    En Change detection options, deje los valores predeterminados. Esto permite CodePipeline usar Amazon CloudWatch Events para detectar cambios en el bucket de origen.

    Elija Next (Siguiente).

  9. En Paso 4: agregar la etapa de compilación, elija Omitir la etapa de compilación y, a continuación, acepte el mensaje de advertencia eligiendo Omitir una vez más. Elija Next (Siguiente).

  10. En el paso 5: Añadir la etapa de prueba, seleccione Omitir la etapa de prueba y, a continuación, acepte el mensaje de advertencia seleccionando Omitir de nuevo.

    Elija Next (Siguiente).

  11. En el paso 6: Añadir la fase de despliegue, en Proveedor de despliegue, seleccione CodeDeploy . El campo Región tiene el mismo valor predeterminado Región de AWS que tu canalización. En Application name (Nombre de la aplicación), escriba MyDemoApplication o haga clic en el botón Refresh (Actualizar) y, a continuación, elija el nombre de la aplicación en la lista. En Deployment group (Grupo de implementación), escriba MyDemoDeploymentGroup o elija un grupo de la lista. A continuación, elija Next (Siguiente).

    nota

    El nombre "Deploy" (Implementación) es el que se asigna de forma predeterminada a la etapa creada en Step 4: Add deploy stage (Paso 4: Agregar la etapa de implementación), mientras que "Source" (Código fuente) es el nombre que recibe la primera etapa de la canalización.

  12. En el paso 7: Revisar, revisa la información y, a continuación, selecciona Crear canalización.

  13. La canalización comienza a ejecutarse. Puede ver los mensajes de progreso y de éxito y fracaso a medida que en el CodePipeline ejemplo se despliega una página web en cada una de las EC2 instancias de Amazon de la CodeDeploy implementación.

¡Enhorabuena! Acabas de crear una canalización sencilla en CodePipeline. La canalización tiene dos etapas:

  • Una etapa denominada Source (Código fuente), que detecta los cambios en la aplicación de ejemplo con control de versiones almacenada en el bucket de S3 y los transfiere a la canalización.

  • Una etapa de implementación que implementa esos cambios en las EC2 instancias con CodeDeploy.

Ahora compruebe los resultados.

Para comprobar que la canalización se ha ejecutado correctamente
  1. Vea el progreso inicial de la canalización. El estado de cada etapa cambia de No executions yet (Sin ejecuciones) a In Progress (En curso) y después a Succeeded (Realizado correctamente) o Failed (Error). La canalización debería completar la primera ejecución en unos minutos.

  2. Cuando el estado de la acción aparezca como Realizado correctamente, en el área de estado de la etapa Implementar, elija Detalles. Esto abre la CodeDeploy consola.

  3. En la pestaña Grupo de implementaciones de la sección Eventos del ciclo de vida de la implementación, elija el ID de la instancia. Esto abre la EC2 consola.

  4. En la pestaña Description (Descripción), en Public DNS (DNS público), copie la dirección y después péguela en la barra de direcciones de su explorador web. Vea la página de índice de la aplicación de ejemplo que cargó en el bucket de S3.

    La página web muestra la aplicación de ejemplo que cargó en el bucket de S3.

Para obtener más información sobre las etapas, las acciones y cómo funcionan las canalizaciones, consulte CodePipeline conceptos .

(Opcional) Paso 5: Agregar otra etapa a la canalización

Ahora agregaremos otra etapa a la canalización para implementar desde los servidores de ensayo a los servidores de producción utilizando CodeDeploy. En primer lugar, debe crear otro grupo de despliegue CodePipelineDemoApplication en el CodeDeploy. A continuación tiene que añadir una etapa con una acción que utilice ese grupo de implementaciones. Para añadir otra etapa, utilice la CodePipeline consola o la AWS CLI para recuperar y editar manualmente la estructura de la canalización en un archivo JSON y, a continuación, ejecute el update-pipeline comando para actualizar la canalización con los cambios.

Cree un segundo grupo de despliegues en CodeDeploy

nota

En esta parte del tutorial, crearás un segundo grupo de despliegues, pero lo implementarás en las mismas EC2 instancias de Amazon que antes. Esto solo se hace con fines ilustrativos. Está diseñado a propósito para no mostrarle cómo se muestran los errores. CodePipeline

Para crear un segundo grupo de despliegues en CodeDeploy
  1. Abra la CodeDeploy consola en https://console.aws.amazon.com/codedeploy.

  2. Elija Applications (Aplicaciones) y, en la lista de aplicaciones, elija MyDemoApplication.

  3. Elija la pestaña Deployment groups (Grupos de implementaciones) y , a continuación, Create deployment group (Crear grupo de implementaciones).

  4. En la página Create deployment group (Crear grupo de implementaciones), en Deployment group name (Nombre de grupo de implementaciones), escriba un nombre para el segundo grupo de implementaciones, como CodePipelineProductionFleet.

  5. En Función de servicio, elija la misma función CodeDeploy de servicio que utilizó para la implementación inicial (no la función de CodePipeline servicio).

  6. En Deployment type (Tipo de implementación), elija In-place (In situ).

  7. En Configuración del entorno, elija Amazon EC2 Instances. Elija Name (Nombre) el cuadro Key (Clave) y en el cuadro Value (Valor), seleccione MyCodePipelineDemo de la lista. Mantenga la configuración predeterminada de Deployment settings (Ajustes de implementación).

  8. En Deployment configuration (Configuración de implementación), elija CodeDeployDefault.OneAtaTime.

  9. En Load Balancer (Balanceador de carga), anule la selección de Enable load balancing (Habilitar balanceo de carga).

  10. Elija Crear grupo de implementación.

Agregar el grupo de implementación como otra etapa de la canalización

Ahora que tiene otro grupo de implementaciones, puede añadir una etapa que utilice este grupo de implementaciones para realizar la implementación en las mismas EC2 instancias que utilizó anteriormente. Puede usar la CodePipeline consola o la AWS CLI para agregar esta etapa.

Crear una tercera etapa (consola)

Puede utilizar la CodePipeline consola para añadir una nueva etapa que utilice el nuevo grupo de despliegue. Como este grupo de despliegue se despliega en las EC2 instancias que ya ha utilizado, la acción de despliegue de esta etapa no se realiza correctamente.

  1. Inicie sesión en la CodePipeline consola AWS Management Console y ábrala en http://console.aws.amazon. com/codesuite/codepipeline/home.

  2. En Name (Nombre), elija el nombre de la canalización que ha creado, MyFirstPipeline.

  3. En la página de detalles de la canalización, elija Edit.

  4. En la página Edit (Editar), elija + Add stage (Añadir etapa) para añadir una etapa inmediatamente después de la etapa Deploy (Implementar).

    Imagen que muestra el botón + Agregar etapa en la pantalla de edición
  5. En Add stage (Añadir etapa), in Stage name (Nombre de etapa), escriba Production. Elija Add stage (Añadir etapa).

  6. En la nueva etapa, elija +Add action group (+Añadir grupo de acciones).

  7. En Edit action (Editar acción), en Action name (Nombre de acción), escriba Deploy-Second-Deployment. En Action provider, en Deploy, elija CodeDeploy.

  8. En la CodeDeploy sección, en Nombre de la aplicación, elige una opción MyDemoApplication de la lista desplegable, tal y como hiciste cuando creaste la canalización. En Deployment group (Grupo de implementación), elija el grupo de implementaciones que acaba de crear, CodePipelineProductionFleet. En Input artifacts (Artefactos de entrada), elija el artefacto de entrada de la acción de origen. Seleccione Guardar.

  9. En la página Edit (Editar), elija Save (Guardar). En Save pipeline changes (Guardar los cambios de la canalización), elija Save (Guardar).

  10. Aunque se ha añadido la nueva etapa a la canalización, aparece el estado No executions yet (Sin ejecuciones) porque no se han producido cambios que activen otra ejecución de la canalización. Tiene que volver a ejecutar manualmente la última revisión para ver cómo se ejecuta la canalización editada. En la página de detalles de canalización, elija Liberar cambio y, a continuación, elija Liberar cuando se le solicite. Esto ejecuta la revisión más reciente disponible en cada ubicación de código fuente especificada en una acción de código fuente a través de la canalización.

    Como alternativa, para volver AWS CLI a ejecutar la canalización, desde una terminal de tu máquina Linux, macOS o Unix local, o desde una línea de comandos de tu máquina Windows local, ejecuta el start-pipeline-execution comando especificando el nombre de la canalización. De este modo se ejecuta por segunda vez la aplicación del bucket de código fuente en la canalización.

    aws codepipeline start-pipeline-execution --name MyFirstPipeline

    Este comando devuelve un objeto pipelineExecutionId.

  11. Vuelve a la CodePipeline consola y, en la lista de canalizaciones, selecciona MyFirstPipelineabrir la página de visualización.

    La canalización muestra tres etapas y el estado del artefacto en ejecución a lo largo de esas tres etapas. Pueden que transcurran cinco minutos hasta que el proceso de canalización se ejecute en todas las etapas. Verá las implementaciones en las primeras dos etapas, tal como antes, pero la etapa Production (Producción) mostrará que la acción Deploy-Second-Deployment no se ha realizado correctamente.

  12. En la acción Deploy-Second-Deployment, elija Details. Se le redirigirá a la página de la implementación CodeDeploy. En este caso, el error se debe a que el primer grupo de instancias se despliega en todas las EC2 instancias y no deja ninguna instancia para el segundo grupo de implementación.

    nota

    Se trata de un error de diseño, para mostrar lo que ocurre cuando se produce un error en una etapa de la canalización.

Crear una tercera etapa (CLI)

Aunque usar la AWS CLI para añadir una etapa a la canalización es más complejo que usar la consola, proporciona una mayor visibilidad de la estructura de la canalización.

Para crear una tercera etapa en la canalización
  1. Abra una sesión de terminal en su máquina Linux, macOS o Unix local o a través del símbolo del sistema en su equipo Windows local y ejecute el comando para mostrar la estructura de la canalización que acaba de crear. Para MyFirstPipeline, debería escribir el siguiente comando:

    aws codepipeline get-pipeline --name "MyFirstPipeline"

    Este comando devuelve la estructura de MyFirstPipeline. La primera parte del resultado debería tener un aspecto similar al siguiente:

    { "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE:role/AWS-CodePipeline-Service", "stages": [ ...

    La última parte de la salida incluye los metadatos de la canalización y debería tener un aspecto similar al siguiente:

    ... ], "artifactStore": { "type": "S3" "location": "amzn-s3-demo-bucket", }, "name": "MyFirstPipeline", "version": 4 }, "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 } }
  2. Copie y pegue esta estructura en un editor de texto sin formato y guarde el archivo como pipeline.json. Para su comodidad, guarde este archivo en el mismo directorio en el que ejecuta los comandos aws codepipeline.

    nota

    Puede enviar JSON directamente a un archivo con el comando get-pipeline del modo siguiente:

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
  3. Copie la sección de la etapa Implementar y péguela después de las primeras dos etapas. Al ser una etapa de implementación, al igual que la etapa Implementar, la utilizará como plantilla de la tercera etapa.

  4. Cambie el nombre de la etapa y los detalles del grupo de implementación.

    En el siguiente ejemplo, se muestra el archivo JSON que se va a agregar al archivo pipeline.json después de la etapa Implementar. Edite los elementos resaltados con valores nuevos. No olvide incluir una coma para separar las definiciones de las etapas Implementar y Producción.

    , { "name": "Production", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet" }, "runOrder": 1 } ] }
  5. Si está trabajando con la estructura de la canalización recuperada mediante el comando get-pipeline, debe eliminar las líneas metadata del archivo JSON. De lo contrario, el comando update-pipeline no puede utilizarlo. Elimine las líneas "metadata": { } y los campos "updated", "created" y "pipelineARN".

    Por ejemplo, quite las siguientes líneas de la estructura:

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    Guarde el archivo.

  6. Ejecute el comando update-pipeline, especificando el archivo JSON de la canalización, de forma similar a como se muestra a continuación:

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json

    Este comando devuelve la estructura completa de la canalización actualizada.

    importante

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

  7. Ejecute el comando start-pipeline-execution y especifique el nombre de la canalización. De este modo se ejecuta por segunda vez la aplicación del bucket de código fuente en la canalización.

    aws codepipeline start-pipeline-execution --name MyFirstPipeline

    Este comando devuelve un objeto pipelineExecutionId.

  8. Abra la CodePipeline consola y elija una opción MyFirstPipelinede la lista de canalizaciones.

    La canalización muestra tres etapas y el estado del artefacto en ejecución a lo largo de esas tres etapas. Pueden que transcurran cinco minutos hasta que el proceso de canalización se ejecute en todas las etapas. Aunque la implementación se realiza correctamente en las primeras dos etapas, tal como antes, la etapa Production muestra que se ha producido un error en la acción de Deploy-Second-Deployment.

  9. En la acción Deploy-Second-Deployment, elija Details para ver los detalles del error. Se le redirigirá a la página de detalles de la CodeDeploy implementación. En este caso, el error se debe a que el primer grupo de instancias se despliega en todas las EC2 instancias y no deja ninguna instancia para el segundo grupo de implementación.

    nota

    Se trata de un error de diseño, para mostrar lo que ocurre cuando se produce un error en una etapa de la canalización.

(Opcional) Paso 6: deshabilitar y habilitar las transiciones entre etapas en CodePipeline

La transición entre las etapas de una canalización puede habilitarse y deshabilitarse. Deshabilitar una transición entre etapas permite controlar manualmente las transiciones entre una etapa y otra. Por ejemplo, puede ser conveniente ejecutar las dos primeras etapas de una canalización, pero deshabilitar las transiciones a la tercera hasta que esté listo para implementar en la producción, o mientras investiga un problema o un error en esa etapa.

Para deshabilitar y habilitar las transiciones entre las etapas de una CodePipeline canalización
  1. Abre la CodePipeline consola y elige una opción MyFirstPipelinede la lista de canalizaciones.

  2. En la página de detalles de la canalización, elija el botón Deshabilitar la transición situado entre la segunda etapa, Implementar y la tercera etapa que agregó en la sección anterior (Producción).

  3. En el cuadro de diálogo Disable transition (Deshabilitar transición), escriba un motivo para deshabilitar la transición entre las etapas y después elija Disable (Deshabilitar).

    La flecha entre etapas muestra un icono y cambia de color, y aparece el botón Enable transition (Habilitar transición).

    Imagen que muestra el motivo introducido para deshabilitar la transición como “Deshabilitar la transición mientras soluciono el error”
  4. Cargue nuevamente la muestra en el bucket de S3. Como el bucket tiene varias versiones, este cambio inicia la canalización.

  5. Vuelva a la página de detalles de la canalización y observe el estado de las etapas. La vista de canalización cambia para mostrar el progreso y el éxito de las primeras dos etapas, pero no se realizan cambios en la tercera etapa. Este proceso puede tardar unos minutos.

  6. Habilite la transición eligiendo el botón Enable transition (Habilitar transición) entre las dos etapas. En el cuadro de diálogo Enable transition, elija Enable. La etapa comienza a ejecutarse en unos minutos e intenta procesar el artefacto que ya se ha ejecutado en las dos primeras etapas de la canalización.

    nota

    Si desea que esta tercera etapa se realice correctamente, edite el grupo de CodePipelineProductionFleet despliegues antes de habilitar la transición y especifique un conjunto diferente de EC2 instancias en las que se despliegue la aplicación. Para obtener más información acerca de cómo hacerlo, consulte Cambio en la configuración de un grupo de implementaciones. Si crea más EC2 instancias, podría incurrir en costes adicionales.

Paso 7: Limpiar recursos

Puede reutilizar algunos de los recursos que ha creado aquí en Tutorial: Crear una canalización de cuatro etapas. Por ejemplo, puede reutilizar la CodeDeploy aplicación y la implementación. Puede configurar una acción de compilación con un proveedor, por ejemplo CodeBuild, un servicio de compilación totalmente gestionado en la nube. También puede configurar una acción de compilación que utilice un proveedor con un servidor o un sistema de compilación, como Jenkins.

Sin embargo, una vez completado este o cualquier otro tutorial, debe eliminar la canalización y los recursos que utiliza para que no se le cobre por el uso continuado de esos recursos. En primer lugar, borra la canalización, después la CodeDeploy aplicación y sus EC2 instancias de Amazon asociadas y, por último, el bucket de S3.

Para limpiar los recursos usados en este tutorial
  1. Para limpiar tus CodePipeline recursos, sigue las instrucciones de Eliminar una canalización en AWS CodePipeline.

  2. Para limpiar CodeDeploy los recursos, sigue las instrucciones de Para limpiar los recursos (consola).

  3. Para eliminar el bucket de S3, siga las instrucciones que se especifican en Eliminar o vaciar un bucket de S3. Si no tiene intención de crear más canalizaciones, elimine el bucket de S3 creado para almacenar los artefactos de la canalización. Para obtener más información acerca de este bucket, consulte CodePipeline conceptos .

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.