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.
Utilice repositorios de código fuente de Git de terceros en AWS CodePipeline
Creado por Kirankumar Chandrashekar (AWS)
Resumen
Aviso: ya no AWS CodeCommit está disponible para nuevos clientes. Los clientes actuales de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información
Este patrón describe cómo usar AWS CodePipeline con repositorios de código fuente de Git de terceros.
AWS CodePipeline es un servicio de entrega continua que automatiza las tareas de creación, prueba e implementación del software. Actualmente, el servicio es compatible con los repositorios de Git gestionados por GitHub AWS CodeCommit
Un webhook es una notificación HTTP que detecta eventos en otra herramienta, como un GitHub repositorio, y conecta esos eventos externos a una canalización. Cuando creas un webhook en CodePipeline, el servicio devuelve una URL que puedes usar en el webhook de tu repositorio de Git. Si insertas código en una rama específica del repositorio de Git, el webhook de Git inicia el CodePipeline webhook a través de esta URL y establece la etapa de origen de la canalización como En progreso. Cuando la canalización se encuentra en este estado, el trabajador CodePipeline busca el trabajo personalizado, lo ejecuta y envía un estado de éxito o fracaso a. CodePipeline En este caso, dado que la canalización se encuentra en la fase de origen, el trabajador obtiene el contenido del repositorio de Git, lo comprime y lo carga en el depósito de Amazon Simple Storage Service (Amazon S3), donde se almacenan los artefactos de la canalización, utilizando la clave de objeto proporcionada por el trabajo sondeado. También puedes asociar una transición para la acción personalizada a un evento en Amazon CloudWatch e iniciar el trabajo en función del evento. Esta configuración te permite usar repositorios Git de terceros que el servicio no admite de forma nativa como fuentes. CodePipeline
Requisitos previos y limitaciones
Requisitos previos
Una cuenta de AWS activa
Un repositorio de Git que admite webhooks y puede conectarse a una URL de CodePipeline webhook a través de Internet
Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada con la cuenta de AWS
Arquitectura
El patrón incluye los siguientes pasos:
El usuario confirma el código en un repositorio de Git.
Se llama el webhook de Git.
Se llama CodePipeline webhook.
La canalización está configurada En curso y la etapa de origen está configurada en el estado En curso.
La acción de la etapa de origen inicia una regla de CloudWatch eventos, lo que indica que se ha iniciado.
El CloudWatch evento inicia una función Lambda.
La función de Lambda obtiene los detalles del trabajo de acción personalizado.
La función Lambda inicia CodeBuild AWS y le pasa toda la información relacionada con el trabajo.
CodeBuild obtiene la clave SSH pública o las credenciales de usuario para el acceso a HTTPS Git desde Secrets Manager.
CodeBuild clona el repositorio de Git para una rama específica.
CodeBuild comprime el archivo y lo carga en el depósito de S3 que sirve como almacén de CodePipeline artefactos.

Herramientas
AWS CodePipeline
: AWS CodePipeline es un servicio de entrega continua totalmente gestionado que le ayuda a automatizar sus procesos de lanzamiento para obtener actualizaciones rápidas y fiables de las aplicaciones y la infraestructura. CodePipeline automatiza las fases de creación, prueba e implementación del proceso de publicación para cada cambio de código, en función del modelo de publicación que defina. Le permite entregar características y actualizaciones de forma rápida y de confianza. Puede integrar AWS CodePipeline con servicios de terceros, como GitHub su propio complemento personalizado. AWS Lambda
: AWS Lambda le permite ejecutar código sin aprovisionar ni administrar servidores. Con Lambda, puede ejecutar código para prácticamente cualquier tipo de aplicación o servicio backend sin necesidad de administración. Sólo tiene que cargar su código y Lambda se encarga de todo lo necesario para ejecutar y escalar su código con alta disponibilidad. Puede configurar el código para que se active automáticamente desde otros servicios de AWS o puede llamarlo directamente desde cualquier aplicación web o móvil. AWS CodeBuild
: AWS CodeBuild es un servicio de integración continua totalmente gestionado que compila el código fuente, ejecuta pruebas y produce paquetes de software listos para su implementación. Con CodeBuild, no necesita aprovisionar, administrar ni escalar sus propios servidores de compilación. CodeBuild escala de forma continua y procesa varias compilaciones simultáneamente, para que sus compilaciones no se queden esperando en una cola. Puede comenzar con rapidez usando entornos de compilación preempaquetados, o crear sus propios entornos de compilación personalizados que utilicen sus propias herramientas de compilación. AWS Secrets Manager
: AWS Secrets Manager le ayuda a proteger los secretos necesarios para acceder a sus aplicaciones, servicios y recursos de TI. El servicio le permite rotar, administrar y recuperar fácilmente credenciales de bases de datos, claves de API y otros datos confidenciales durante todo su ciclo de vida. Los usuarios y las aplicaciones recuperan los secretos llamando a Secrets Manager APIs, sin tener que codificar información confidencial en texto plano. Secrets Manager ofrece rotación secreta con integración integrada para Amazon Relational Database Service (Amazon RDS), Amazon Redshift y Amazon DocumentDB. El servicio se puede ampliar para admitir otros tipos de secretos, incluidas las claves y los OAuth tokens de API. Además, Secrets Manager le permite controlar el acceso a los datos secretos mediante permisos detallados y auditar la rotación de secretos de forma centralizada para los recursos de la nube de AWS, los servicios de terceros y los entornos locales. Amazon CloudWatch
: Amazon CloudWatch es un servicio de monitoreo y observación creado para DevOps ingenieros, desarrolladores, ingenieros de confiabilidad de sitios (SREs) y administradores de TI. CloudWatch le proporciona datos e información útil para supervisar sus aplicaciones, responder a los cambios en el rendimiento de todo el sistema, optimizar la utilización de los recursos y obtener una visión unificada del estado de las operaciones. CloudWatch recopila datos operativos y de supervisión en forma de registros, métricas y eventos, lo que le proporciona una visión unificada de los recursos, las aplicaciones y los servicios de AWS que se ejecutan en AWS y en servidores locales. Puede utilizarlos CloudWatch para detectar comportamientos anómalos en sus entornos, configurar alarmas, visualizar registros y métricas uno al lado del otro, tomar medidas automatizadas, solucionar problemas y descubrir información para que sus aplicaciones sigan funcionando sin problemas. Amazon S3
: Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos que le permite almacenar y proteger cualquier cantidad de datos para diversos casos de uso, tales como sitios web, aplicaciones móviles, copia de seguridad y restauración, archivado, aplicaciones empresariales, dispositivos IoT y análisis de macrodatos. Amazon S3 ofrece funciones easy-to-use de administración que le ayudan a organizar sus datos y configurar controles de acceso ajustados con precisión para cumplir con sus requisitos empresariales, organizativos y de conformidad específicos.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree una acción personalizada mediante AWS CLI o AWS CloudFormation. | Este paso implica la creación de una acción de origen personalizada que se pueda utilizar en la fase de origen de una canalización en su cuenta de AWS en una región concreta. Debe usar AWS CLI o AWS CloudFormation (no la consola) para crear la acción de origen personalizada. Para obtener más información sobre los comandos y los pasos descritos en esta y otras epics, consulte la sección «Recursos relacionados» al final de este patrón. En AWS CLI, utilice el create-custom-action-type comando. Utilice --configuration-properties para proporcionar todos los parámetros necesarios para que el trabajador del trabajo los procese cuando busca un trabajo CodePipeline . Asegúrese de anotar los valores proporcionados a las opciones --provider y --action-version, de modo que puedas usar los mismos valores al crear la canalización con esta etapa fuente personalizada. También puede crear la acción de origen personalizada en AWS CloudFormation mediante el tipo de recurso AWS::CodePipeline::CustomActionType. | AWS general |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cree un par de claves SSH. | Cree un par de claves Secure Shell (SSH). Para obtener instrucciones, consulte la GitHub documentación. | Sistemas/ingeniero DevOps |
Crear un secreto en AWS Secrets Manager. | Copie el contenido de la clave privada del par de claves SSH y cree un secreto en AWS Secrets Manager. Este secreto se utiliza para la autenticación al acceder al repositorio de Git. | AWS general |
Añada la clave pública al repositorio de Git. | Añada la clave pública del par de claves SSH a la configuración de la cuenta del repositorio de Git para autenticarte con la clave privada. | Ingeniero/sistema DevOps |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crear una canalización que incluya la acción de origen personalizada. | Crea una canalización en CodePipeline. Al configurar la etapa de origen, elija la acción de origen personalizada que creó anteriormente. Puede hacerlo en la CodePipeline consola de AWS o en la CLI de AWS. CodePipeline le solicita las propiedades de configuración que ha establecido en la acción personalizada. Esta información es necesaria para que el trabajador procese el trabajo para la acción personalizada. Siga las instrucciones del asistente y cree la siguiente etapa para la canalización. | AWS general |
Crea un CodePipeline webhook. | Cree un webhook para la canalización que creócon la acción de origen personalizada. Debe usar AWS CLI o AWS CloudFormation (no la consola) para crear el webhook. En AWS CLI, ejecute el comando put-webhook y proporcione los valores adecuados para las opciones de webhook. Anote la URL del webhook que devuelve el comando. Si utiliza AWS CloudFormation para crear el webhook, utilice el tipo AWS::CodePipeline::Webhook de recurso. Asegúrese de generar la URL del webhook del recurso creado y anotarla. | AWS general |
Cree una función y CodeBuild un proyecto de Lambda. | En este paso, utiliza Lambda CodeBuild para crear un trabajador laboral que sondee las solicitudes de trabajo CodePipeline para la acción personalizada, ejecute el trabajo y devuelva el resultado de estado al. CodePipeline Cree una función Lambda que se inicie mediante una regla de Amazon CloudWatch Events cuando la etapa de acción de origen personalizada de la canalización pase a «En curso». Cuando se inicia la funciónde Lambda, debe obtener los detalles del trabajo de acción personalizado consultando los trabajos. Puede utilizar la PollForJobs API para devolver esta información. Una vez obtenida la información del trabajo sondeada, la función de Lambda debe devolver un acuse de recibo y, a continuación, procesar la información con los datos que obtiene de las propiedades de configuración de la acción personalizada. Cuando el trabajador esté listo para comunicarse con el repositorio de Git, puedes iniciar un CodeBuild proyecto, ya que es conveniente gestionar las tareas de Git mediante el cliente SSH. | AWS general, desarrollador de código |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Crea una regla de CloudWatch eventos. | Cree una regla de CloudWatch eventos que inicie la función Lambda como objetivo siempre que la etapa de acción personalizada de la canalización pase a «En curso». | AWS general |
Recursos relacionados
Crear una acción personalizada en CodePipeline
Configurar la autenticación
Crear una canalización y un webhook
Creación de un evento
Referencias adicionales