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.
Automatice las CodeGuru revisiones de Amazon para aplicaciones de AWS CDK Python mediante GitHub Actions
Vanitha Dontireddy y Sarat Chandra Pothula, Amazon Web Services
Resumen
Nota: A partir del 7 de noviembre de 2025, no podrá crear nuevas asociaciones de repositorios en Amazon CodeGuru Reviewer. Para obtener información sobre los servicios con capacidades similares a las de CodeGuru Reviewer, consulte el cambio de disponibilidad de Amazon CodeGuru Reviewer en la documentación de CodeGuru Reviewer.
Este patrón muestra la integración de las revisiones de código CodeGuru automatizadas de Amazon para aplicaciones de AWS Cloud Development Kit (AWS CDK) Python, orquestadas a través GitHub de acciones. La solución implementa una arquitectura sin servidor definida en Python AWS CDK . Al automatizar el análisis de código experto dentro del proceso de desarrollo, este enfoque puede hacer lo siguiente para los proyectos de AWS CDK Python:
Mejorar la calidad del código.
Optimizar los flujos de trabajo.
Maximizar los beneficios de la informática sin servidor.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS.
AWS Command Line Interface (AWS CLI) versión 2.9.11 o posterior, instalada y configurada.
Una GitHub cuenta activa y un GitHub repositorio con permisos de flujo de trabajo de lectura y escritura y creación de solicitudes de extracción (PR) mediante GitHub Actions para garantizar que el flujo de trabajo de PR funcione correctamente.
Una función de OpenID Connect (OIDC) en GitHub Actions para implementar la solución en. Cuenta de AWS Utilice el constructo de AWS CDK
para crear el rol.
Limitaciones
Amazon CodeGuru Profiler admite aplicaciones escritas en todos los lenguajes de máquinas virtuales Java (JVM) (como Scala y Kotlin) y en tiempos de ejecución y Python 3.6 o versiones posteriores.
Amazon CodeGuru Reviewer solo admite asociaciones con repositorios de código Java y Python de los siguientes proveedores de código fuente: AWS CodeCommit Bitbucket GitHub, GitHub Enterprise Cloud y GitHub Enterprise Server. Además, los repositorios de Amazon Simple Storage Service (Amazon S3) solo se admiten mediante Actions. GitHub
No existe una forma automatizada de imprimir los resultados durante la canalización de procesos de integración e implementación continuos (CI/CD). En su lugar, este patrón utiliza GitHub las acciones como método alternativo para gestionar y mostrar los resultados.
Algunas Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte AWS services by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Arquitectura
En el siguiente diagrama se muestra la arquitectura para esta solución.

Como se muestra en el diagrama, cuando un desarrollador crea una solicitud de cambios (PR) para su revisión, GitHub Actions activa los siguientes pasos:
Suposición de la función de IAM: la canalización utiliza la función de IAM que se especifica en GitHub Secrets para realizar las tareas de despliegue.
Análisis de código
CodeGuru Reviewer analiza el código almacenado en el bucket de Amazon S3. Identifica los defectos y proporciona recomendaciones para corregirlos y optimizarlos.
CodeGuru La seguridad escanea en busca de infracciones y vulnerabilidades de las políticas.
Revisión de resultados
La canalización imprime un enlace al panel de resultados en la salida de la consola.
Si se detectan resultados críticos, la canalización devuelve un error inmediatamente.
En el caso de tener resultados de gravedad alta, normal o baja, el proceso continúa al siguiente paso.
Aprobación de PR
El revisor debe aprobar manualmente el PR.
Si se deniega el PR, se produce un error en la canalización y se detienen los pasos de implementación adicionales.
Implementación de CDK: tras la aprobación del PR, comienza el proceso de implementación de CDK. Configura lo siguiente Servicios de AWS y los recursos:
CodeGuru Generador de perfiles
AWS Lambda función
Cola de Amazon Simple Queue Service (Amazon SQS)
Generación de datos de creación de perfiles: para generar suficientes datos de creación de perfiles para CodeGuru Profiler:
La canalización invoca la función de Lambda varias veces mediante el envío periódico de mensajes a la cola de Amazon SQS.
Tools (Herramientas)
Servicios de AWS
AWS Cloud Development Kit (AWS CDK)es un marco de desarrollo de software que le ayuda a definir y aprovisionar la Nube de AWS infraestructura en código.
CDK Toolkit es un kit de desarrollo en la nube de línea de comandos que le ayuda a interactuar con su AWS CDK aplicación.
Amazon CodeGuru Profiler recopila datos de rendimiento en tiempo de ejecución de sus aplicaciones activas y proporciona recomendaciones que pueden ayudarle a ajustar el rendimiento de las aplicaciones.
Amazon CodeGuru Reviewer utiliza el análisis de programas y el aprendizaje automático para detectar posibles defectos difíciles de encontrar para los desarrolladores. A continuación, CodeGuru Profiler ofrece sugerencias para mejorar el código de Java y Python.
Amazon CodeGuru Security es una herramienta de seguridad de aplicaciones estática que utiliza el aprendizaje automático para detectar infracciones y vulnerabilidades de las políticas de seguridad. Proporciona sugerencias para abordar los riesgos de seguridad y genera métricas para que pueda realizar un seguimiento del estado de seguridad de sus aplicaciones.
AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
Amazon Simple Queue Service (Amazon SQS) ofrece una cola alojada segura, duradera y disponible que le permite integrar y desacoplar sistemas y componentes de software distribuidos.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
Otras herramientas
GitHub Actions
es una plataforma de integración y entrega continuas (CI/CD) que está estrechamente integrada con los repositorios. GitHub Puedes usar GitHub Actions para automatizar tu proceso de creación, prueba e implementación.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub amazon-codeguru-suite-cdk-python
Prácticas recomendadas
Siga las prácticas recomendadas para desarrollar e implementar una infraestructura en la nube con la AWS CDK.
Siga las prácticas recomendadas de seguridad de IAM cuando utilice los flujos de trabajo de Servicios de AWS In GitHub Actions, entre las que se incluyen:
No guarde las credenciales en el código del repositorio.
Obtenga un rol de IAM para recibir credenciales temporales y utilícelas siempre que sea posible.
Otorgue el mínimo privilegio al rol de IAM utilizado en los flujos de trabajo de GitHub Actions. Conceda únicamente los permisos necesarios para realizar las acciones en sus flujos de trabajo de GitHub Actions.
Supervisa la actividad del rol de IAM que se usa en los flujos de trabajo de GitHub Actions.
Cambie periódicamente las credenciales a largo plazo que utilice.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Configura las AWS credenciales. | Para exportar las variables que definen la pila Cuenta de AWS y Región de AWS dónde la vas a implementar, ejecuta los siguientes comandos:
Las AWS credenciales de la AWS CDK se proporcionan a través de variables de entorno. | AWS DevOps, DevOps ingeniero |
Clonar el repositorio. | Para clonar un repositorio en su máquina local, ejecute el siguiente comando:
| AWS DevOps, DevOps ingeniero |
Instale el kit de herramientas de CDK. | Para confirmar que el Kit de herramientas de CDK está instalado y comprobar la versión, ejecute el siguiente comando:
Si la versión del kit de herramientas de CDK es anterior a la versión 2.27.0, ejecute el siguiente comando para actualizar a esa versión.
Si el kit de herramientas de CDK no está instalado, ejecute el siguiente comando para instalarlo:
| AWS DevOps, DevOps ingeniero |
Instale las dependencias requeridas. | Ejecute el siguiente comando para instalar las dependencias de proyecto necesarias:
| AWS DevOps, DevOps ingeniero |
Arranque el entorno de CDK. | Para arrancar un entorno de AWS CDK, ejecute los siguientes comandos.
Tras arrancar correctamente el entorno, debería aparecer el siguiente resultado.
| AWS DevOps, DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Sintetiza la AWS CDK aplicación. | Para sintetizar una AWS CDK aplicación, ejecuta el siguiente comando:
Para obtener más información sobre este comando, consulte cdk synthesize en la documentación. AWS CDK | AWS DevOps, DevOps ingeniero |
Implementación de recursos. | Ejecute el siguiente comando para implementar los recursos:
notaEl indicador | AWS DevOps, DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Cree los secretos necesarios en GitHub. | Para permitir que los flujos de trabajo de GitHub Actions accedan a AWS los recursos de forma segura sin exponer información confidencial del código de tu repositorio, crea secretos. Para crear los secretos de GitHub un repositorio y A continuación, encontrará más información sobre las variables:
| AWS DevOps, DevOps ingeniero |
Crea un token de acceso GitHub personal. | Para configurar una forma segura de autenticar tus flujos de trabajo de GitHub Actions e interactuar con ellos GitHub, haz lo siguiente:
| AWS DevOps, DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Eliminación de recursos. | Para limpiar tu aplicación de AWS CDK Python, ejecuta el siguiente comando:
| DevOps ingeniero |
Resolución de problemas
| Problema | Solución |
|---|---|
Muestre el enlace a los resultados del panel. | No hay forma de imprimir los resultados durante el CI/CD oleoducto. En cambio, este patrón utiliza GitHub las acciones como un método alternativo para gestionar y mostrar los resultados. |
Recursos relacionados
AWS resources
GitHub documentación