En el desarrollo de software actual, los equipos de ingeniería se enfrentan de forma recurrente a tres grandes cuellos de botella: la escritura repetitiva de código repetitivo (boilerplate), la detección tardía de vulnerabilidades de seguridad en las etapas finales del despliegue y el mantenimiento complejo de sistemas heredados anclados en versiones antiguas del entorno de ejecución. Amazon Q Developer, un asistente de desarrollo impulsado por inteligencia artificial generativa sobre Amazon Bedrock, se integra de forma directa en los entornos de desarrollo integrados (IDE) principales para brindar soporte en todo el ciclo de vida del software.
A través de sus extensiones oficiales para Visual Studio Code, los IDE de JetBrains (incluidos IntelliJ IDEA y PyCharm) y Visual Studio 2022, Amazon Q Developer proporciona tres capacidades técnicas fundamentales:
- Generación de código en línea en tiempo real y asistencia conversacional contextual: predice sintaxis dinámicamente y escribe funciones a partir de comentarios en lenguaje natural, permitiendo además la implementación de funciones multifichero mediante
/dev. - Escaneo de seguridad estático automatizado: impulsado por la biblioteca de detectores de Amazon CodeGuru, identifica vulnerabilidades (inyecciones SQL, credenciales expuestas, XSS) directamente en la pestaña "Problems" del IDE con parches de corrección en un solo clic.
- Transformación automatizada de código heredado (Code Transformation): un agente autónomo actualiza versiones del lenguaje Java (como Java 8 u 11 a Java 17 o 21) o moderniza proyectos .NET, ejecutando compilaciones locales y pruebas unitarias para certificar la compatibilidad hacia atrás.
Esta guía técnica detalla cómo configurar la herramienta, utilizar sus funcionalidades clave en los flujos diarios de trabajo y evaluar las diferencias entre el plan gratuito y el plan empresarial Pro.
1. Requisitos previos y configuración de autenticación en el IDE
Amazon Q Developer es compatible con los principales ecosistemas de desarrollo. Antes de comenzar, verifique que su entorno cumpla con las versiones mínimas y complete el proceso de autenticación.
Entornos de desarrollo compatibles
| IDE | Versión mínima compatible | Paquete de extensión |
|---|---|---|
| Visual Studio Code | 1.85.0 o posterior | VS Code Marketplace: Extensión "Amazon Q" |
| JetBrains IDEs (IntelliJ IDEA, PyCharm, etc.) | 2024.3 o posterior | JetBrains Marketplace: Complemento "Amazon Q" |
| Visual Studio (Solo Windows) | Visual Studio 2022 v17.7 o posterior | Visual Studio Marketplace: "AWS Toolkit for Visual Studio 2022" |
| Eclipse | 2024-06 (4.32) o posterior | Eclipse Marketplace: Complemento "Amazon Q" |
Métodos de autenticación: Nivel gratuito (Free Tier) vs. Nivel Pro
Tras instalar la extensión, haga clic en el icono de Amazon Q en la barra de actividad para iniciar sesión mediante una de las dos vías disponibles:
- AWS Builder ID (Nivel gratuito personal): Diseñado para desarrolladores individuales. No requiere una cuenta de AWS activa ni tarjeta de crédito. Al pulsar Use for free with AWS Builder ID, se abre el navegador para iniciar sesión o registrar una identidad personal de AWS Builder ID. Ofrece acceso continuo e ilimitado a sugerencias en línea, chat técnico, escaneos de seguridad y hasta 50 solicitudes mensuales de tareas de agentes complejos.
- IAM Identity Center (Nivel Pro empresarial - $19/usuario/mes): Diseñado para organizaciones de ingeniería. Se gestiona mediante Single Sign-On (SSO) corporativo (como Okta, Microsoft Entra ID o Ping Identity). En el IDE, seleccione Sign in with IAM Identity Center, ingrese la URL de inicio de la empresa (por ejemplo,
https://mi-empresa.awsapps.com/start) y la región de AWS correspondiente. Las sesiones del nivel Pro se mantienen activas durante 90 días de forma predeterminada, e incorporan administración centralizada, indemnización por propiedad intelectual, conexión con repositorios privados y bolsas compartidas de cuotas para transformación de código y desarrollo con agentes.
[!NOTE] Aviso de ciclo de vida del servicio: AWS ha comunicado una fecha de finalización de soporte para los complementos de Amazon Q Developer en IDE tradicionales programada para el 30 de abril de 2027. AWS recomienda a los equipos técnicos mantenerse atentos a las actualizaciones de la hoja de ruta y explorar herramientas de nueva generación como Kiro para capacidades avanzadas de agentes, Model Context Protocol (MCP) y chat.
2. Generación de código en tiempo real y asistencia contextual
Amazon Q Developer asiste en la creación de código mediante dos modalidades integradas: autocompletado predictivo en línea mientras escribe y paneles de diálogo interactivos.
Sugerencias de código en línea (Inline Suggestions)
A medida que redacta código o comentarios en lenguaje natural, Amazon Q evalúa el archivo activo, la posición del cursor, las librerías importadas y la estructura de su espacio de trabajo para proyectar recomendaciones de código (mostradas en texto gris tenue).
Métodos abreviados de teclado esenciales
| Acción | Atajo en macOS | Atajo en Windows / Linux |
|---|---|---|
| Aceptar recomendación completa | Tab | Tab |
| Aceptar únicamente la siguiente palabra | Cmd + Flecha derecha | Ctrl + Flecha derecha |
| Pasar a la siguiente sugerencia alternativa | Flecha derecha (o Option + ]) | Flecha derecha (o Alt + ]) |
| Volver a la sugerencia anterior | Flecha izquierda (o Option + [) | Flecha izquierda (o Alt + [) |
| Rechazar o descartar sugerencia | Esc o continuar escribiendo | Esc o continuar escribiendo |
| Forzar sugerencia manualmente | Option + C | Alt + C |
Ejemplo práctico de generación de código
Al implementar un cliente HTTP asíncrono en Python, definir la firma de la función con anotaciones de tipo y un docstring estructurado permite a Amazon Q generar automáticamente la lógica de reintento con retroceso exponencial:
import aiohttp
import asyncio
from typing import Dict, Any, Optional
# Indicación para Amazon Q Developer mediante docstring:
async def fetch_json_with_retry(
url: str,
headers: Optional[Dict[str, str]] = None,
max_retries: int = 3,
backoff_factor: float = 1.5
) -> Optional[Dict[str, Any]]:
"""
Fetch JSON payload from a remote endpoint with exponential backoff retry.
Handles client connection timeouts and non-200 HTTP responses.
"""
# Presione Tab para aceptar el bloque generado por Amazon Q:
timeout = aiohttp.ClientTimeout(total=10)
for attempt in range(1, max_retries + 1):
try:
async with aiohttp.ClientSession(timeout=timeout) as session:
async with session.get(url, headers=headers) as response:
if response.status == 200:
return await response.json()
elif response.status in (429, 500, 502, 503, 504):
await asyncio.sleep(backoff_factor ** attempt)
else:
response.raise_for_status()
except (aiohttp.ClientError, asyncio.TimeoutError):
if attempt == max_retries:
raise
await asyncio.sleep(backoff_factor ** attempt)
return None
Panel de chat y edición en línea en el editor
Para refactorizaciones de mayor alcance o consultas conceptuales, los desarrolladores pueden interactuar mediante el panel lateral o el chat directo en el editor:
- Contexto ampliado (
@workspacey selecciones): Amazon Q reconoce de forma predeterminada el archivo abierto y su sintaxis. Es posible adjuntar archivos adicionales o resaltar funciones específicas en el editor y consultar"Analiza la complejidad temporal de esta rutina"o"Reescribe este método usando programación funcional reactiva". - Chat en línea en el editor (Inline Chat): Al seleccionar un bloque de código y activar el chat en línea, aparece una barra de comandos flotante sobre las líneas seleccionadas, permitiendo solicitar cambios (como
"Agregar validación de parámetros y registro de errores") directamente en el documento. - Generación de pruebas unitarias (
/test): Resalte una función y ejecute/test. Amazon Q analizará los casos límite y las dependencias simuladas (mocks), generando pruebas compatibles con su marco de trabajo (como JUnit 5, pytest o Jest). - Desarrollo autónomo de funciones (
/dev): Con el comando/dev Implementa un middleware de limitación de tasa con Redis, el agente de desarrollo diseña un plan de ejecución, crea los ficheros necesarios, actualiza el enrutador y presenta una vista previa de cambios en formato Git Diff.
Rastreo de referencias de código abierto (Reference Tracker)
Si el código generado presenta similitudes marcadas con repositorios públicos de código abierto, el mecanismo integrado Reference Tracker emite una notificación alertando al usuario. Se detalla la URL del repositorio de origen y su licencia (por ejemplo, MIT, Apache 2.0 o GPL). En suscripciones Pro, los administradores pueden configurar directivas que bloqueen de forma estricta cualquier recomendación que coincida con código abierto con licencia restrictiva.
3. Escaneo automatizado de vulnerabilidades y remediación en un clic
Las pruebas de seguridad de aplicaciones estáticas (SAST) convencionales suelen ejecutarse de forma tardía en los conductos de CI/CD. Amazon Q Developer traslada este análisis directamente al IDE durante la fase de escritura.
Alcance y biblioteca de detección
El motor de escaneo combina razonamiento generativo con comprobación basada en reglas respaldada por la biblioteca de detectores de Amazon CodeGuru, analizando los siguientes riesgos:
- Vulnerabilidades OWASP Top 10: Inyección SQL, Cross-Site Scripting (XSS), inyección de entidades externas XML (XXE) y deserialización insegura de objetos.
- Exposición de credenciales críticas: Claves de acceso de AWS hardcodeadas en texto plano, cadenas de conexión a bases de datos, claves privadas de firma JWT y certificados.
- Configuraciones defectuosas de recursos: Vulnerabilidades de salto de directorio (directory traversal), algoritmos hash obsoletos (MD5/SHA1), flujos de archivos sin cerrar y permisos permisivos.
- Infraestructura como código (IaC): Defectos de seguridad en plantillas de AWS CloudFormation y definiciones de AWS CDK.
Cómo ejecutar un escaneo de seguridad
Se ofrecen dos modalidades de escaneo:
- Auto-Scan continuo: Se puede habilitar en los ajustes del IDE para inspeccionar automáticamente los archivos modificados cada vez que se guardan.
- Escaneo de proyecto o archivo a petición:
- Abra el espacio de trabajo en VS Code o JetBrains.
- Haga clic en el icono de Amazon Q en la barra de estado inferior o acceda al panel de chat.
- Seleccione Run Security Scan (o escriba en el chat
Ejecuta un escaneo de seguridad en este proyecto). - El complemento empaqueta los archivos del proyecto (hasta 100 MB, excluyendo automáticamente carpetas de pruebas y binarios externos) y ejecuta el análisis.
Diagnóstico de hallazgos y aplicación del parche
Los resultados se reflejan en la pestaña estándar Problems del IDE, categorizados según la severidad del estándar CVSS: Critical, High, Medium, Low o Info.
[Problems - Proyecto]
└── src/api/user_controller.py
└── [High] Línea 42: CWE-89 - Concatenación de cadenas expone la consulta a inyección SQL
Al seleccionar el problema, el panel de Amazon Q despliega la vista diagnóstica:
- Explicación técnica: Describe cómo el parámetro externo no sanitizado alcanza el punto de ejecución en la base de datos.
- Clasificación CWE: Asocia la incidencia con el identificador formal del catálogo MITRE CWE.
- Parche sugerido (Suggested Remediation): Presenta una comparación visual en código (Diff) mostrando la sustitución de cadenas concatenadas por consultas parametrizadas o mapeadores ORM.
- Aplicación inmediata: Pulse Apply Fix o Insert at cursor para insertar la corrección en el archivo y guarde para verificar la resolución de la advertencia.
4. Transformación de código heredado: Migración de Java y modernización
La actualización entre versiones mayores de un lenguaje (como migrar de Java 8 u 11 a Java 17 o 21) suele requerir semanas de esfuerzo manual. El Agente de Amazon Q Developer para transformación de código (Agent for Code Transformation) asume de manera autónoma la resolución de conflictos de dependencias, la reescritura de APIs obsoletas y la validación local de compilación.
Rutas de modernización admitidas
| Versión de origen | Versión de destino admitida | Herramienta de compilación |
|---|---|---|
| Java 8 | Java 17, Java 21 | Apache Maven (v3.8 o superior) |
| Java 11 | Java 17, Java 21 | Apache Maven (v3.8 o superior) |
| Java 17 | Java 17 (actualización de librerías), Java 21 | Apache Maven (v3.8 o superior) |
| Java 21 | Java 21 (mantenimiento de dependencias) | Apache Maven (v3.8 o superior) |
| .NET Framework (Windows) | .NET 8 (Modernización multiplataforma Linux) | MSBuild / Visual Studio |
Requisitos previos para la transformación de Java
Antes de lanzar una transformación, el proyecto y el entorno local deben cumplir con las siguientes condiciones:
- Compilación previa local exitosa: El proyecto debe compilar correctamente en su versión original mediante
mvn clean compile. - JDK de origen instalado localmente: La versión del JDK de origen debe estar configurada en el SDK del proyecto en el IDE (por ejemplo, se requiere tener JDK 8 instalado localmente para migrar un código base en Java 8).
- Pruebas unitarias aisladas de la red: Las pruebas unitarias que se ejecuten durante el proceso no deben depender de bases de datos de redes privadas, puntos de enlace VPC no simulados o servicios remotos activos.
- Codificación y compatibilidad de plugins: Los archivos deben usar codificación UTF-8. No se deben utilizar plugins mixtos que compilen otros lenguajes dentro de Maven (como
frontend-maven-pluginpara compilar código NodeJS). - Conectividad con Amazon S3: La máquina local debe tener conectividad saliente hacia los puntos de enlace de Amazon S3 utilizados para el intercambio de artefactos.
Flujo de trabajo de la transformación
El proceso de modernización sigue un ciclo integral y controlado:
flowchart TD
A["1. Iniciar trabajo (/transform)"] --> B["2. Validación y compilación previa local"]
B --> C["3. Carga cifrada a entorno seguro aislado"]
C --> D["4. Análisis de AST y refactorización con IA"]
D --> E["5. Compilación en JDK destino y ejecución de pruebas"]
E --> F["6. Descarga del parche a .aws/transform"]
F --> G["7. Revisión de Diff en el IDE y aceptación"]
Paso 1: Iniciar el trabajo en el IDE
En VS Code o IntelliJ IDEA, abra el panel de Amazon Q e introduzca:
/transform
También puede acceder desde el menú de herramientas al panel Amazon Q: Code Transformation. Seleccione el módulo deseado y elija el JDK de destino (Java 17 o Java 21).
Paso 2: Validación previa y extracción de contexto
Amazon Q ejecuta Maven en su entorno local para comprobar la integridad del proyecto y generar el árbol de sintaxis abstracta (AST). Si el proyecto original tiene errores de compilación, el proceso se interrumpe de inmediato mostrando el registro de fallos.
Paso 3: Transformación segura y refactorización
Superada la validación previa, el código se transmite cifrado a un entorno aislado de AWS donde el agente aplica los cambios:
- Actualización de dependencias: Analiza el archivo
pom.xml, actualiza plugins del compilador, migra versiones de frameworks principales (como Spring Boot 2.x a Spring Boot 3.x) y reemplaza paquetes obsoletos por alternativas compatibles. - Modernización de APIs y sintaxis: Reescribe llamadas a APIs eliminadas (por ejemplo, actualiza paquetes heredados de JAXB a Jakarta EE, reemplaza
java.util.Dateporjava.timey moderniza bucles tradicionales a streams funcionales). - Control de seguridad: Comprueba que las nuevas librerías añadidas no introduzcan vulnerabilidades CVE conocidas.
Paso 4: Compilación de verificación y pruebas unitarias
El agente compila el proyecto con el JDK objetivo y ejecuta la suite de pruebas unitarias existente. Si se producen fallos de compilación derivados de firmas modificadas, el agente efectúa iteraciones autónomas de corrección hasta conseguir que el proyecto compile y supere las pruebas.
Paso 5: Revisión de la solución y fusión en el IDE
Al finalizar, el informe y el parche unificado se descargan en el directorio local .aws/transform:
- Abra Transformation Summary para revisar la lista de dependencias actualizadas, archivos modificados y estadísticas de pruebas.
- Inspeccione los cambios mediante el visor comparativo (Diff) de dos paneles del IDE.
- Haga clic en Accept changes para incorporar las modificaciones al árbol de trabajo.
5. Comparativa técnica: Nivel gratuito vs. Nivel Pro
Para la toma de decisiones en el equipo de ingeniería, la siguiente tabla resume las diferencias clave entre ambos niveles:
| Parámetro | Nivel gratuito (AWS Builder ID) | Nivel Pro ($19 / usuario / mes) |
|---|---|---|
| Gestión de identidad | AWS Builder ID personal (Sin cuenta AWS) | AWS IAM Identity Center (SSO corporativo: Okta, Azure AD) |
| Autocompletado en línea | Incluido (Ilimitado) | Incluido (Ilimitado) |
| Chat técnico en IDE | Incluido (Ilimitado) | Incluido (Ilimitado) |
| Escaneo de seguridad | Incluido (Escaneos estándar de proyecto) | Incluido (Reglas avanzadas empresariales y auto-scan) |
Tareas de agentes (/dev) | 50 solicitudes mensuales por usuario | 400 solicitudes mensuales por usuario (Fondo compartido en la cuenta) |
| Transformación de código | 1.000 líneas al mes (Límite de prueba) | 4.000 líneas al mes por usuario (Fondo compartido en la cuenta) |
| Exceso de transformación | No ampliable (Límite estricto) | $0.003 por cada línea adicional transformada |
| Privacidad de datos | El contenido puede usarse para mejoras (Desactivable) | El contenido corporativo nunca se utiliza para entrenar modelos |
| Indemnización por PI | No incluida | Incluida (Protección legal total frente a infracciones de PI) |
| Panel de administración | No disponible | Consola centralizada de AWS, métricas y filtros de licencias |
6. Buenas prácticas de ingeniería y recomendaciones
Para maximizar la productividad y minimizar la deuda técnica con Amazon Q Developer, se recomienda aplicar los siguientes criterios:
- Cobertura de pruebas sólida antes de transformar: El agente de modernización valida la equivalencia funcional mediante las pruebas unitarias existentes. Refuerce la cobertura de pruebas de los módulos críticos antes de invocar
/transform. - Revisión experta de parches de seguridad: Aunque los parches generados resuelven la vulnerabilidad técnica de forma eficaz, verifique siempre que no alteren la lógica de negocio ni omitan autorizaciones de dominio específicas.
- Comentarios descriptivos y tipados: Al redactar comentarios para guiar la generación en línea, especifique tipos de datos, restricciones de error y objetivos concretos. Esto genera sugerencias significativamente más precisas.
- Monitoreo de licencias en entornos comerciales: Mantenga activo el Reference Tracker en proyectos comerciales para evitar la inclusión inadvertida de fragmentos bajo licencias restrictivas como GPL.
- Planificación ante la transición de 2027: Teniendo en cuenta la fecha de finalización de soporte para complementos de IDE el 30 de abril de 2027, los responsables de arquitectura deben seguir las directrices de AWS y evaluar de forma progresiva alternativas como Kiro para flujos de trabajo basados en agentes y el protocolo MCP.
Referencias
- What is Amazon Q Developer? - Amazon Q Developer
- Using Amazon Q Developer in the IDE - Amazon Q Developer
- Installing the Amazon Q Developer extension or plugin in your IDE - Amazon Q Developer
- Chatting with Amazon Q Developer about code - Amazon Q Developer
- Reviewing code with Amazon Q Developer - Amazon Q Developer
- Starting a code review with Amazon Q Developer - Amazon Q Developer
- Addressing code issues with Amazon Q Developer - Amazon Q Developer
- Upgrading Java versions with Amazon Q Developer - Amazon Q Developer
- Transforming code in the IDE with Amazon Q Developer - Amazon Q Developer
- Tiers of service for Q Developer – Free and Pro - Amazon Q Developer
- AI for Software Development – Amazon Q Developer Pricing – AWS