ESPACIO PUBLICITARIO DISPONIBLE · HABLEMOS

Guía de Amazon Q Developer en el IDE: Generación de código en tiempo real, escaneo de seguridad y transformación de código heredado

365Finds Editorial
11.430 artículos Wiki recopilados

Usa 365 Wiki con tu IA

Copia el prompt de abajo, pégalo en la IA que ya usas y haz tu pregunta.

Descargar el Skill completo

Pruébalo primero con el prompt. Si usas 365 Wiki a menudo, instala el Skill completo de 365Wiki y no tendrás que volver a pegarlo. Si no tienes una IA habitual, también sirven las versiones web de Gemini o Microsoft Copilot.

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:

  1. 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.
  2. 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.
  3. 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

IDEVersión mínima compatiblePaquete de extensión
Visual Studio Code1.85.0 o posteriorVS Code Marketplace: Extensión "Amazon Q"
JetBrains IDEs (IntelliJ IDEA, PyCharm, etc.)2024.3 o posteriorJetBrains Marketplace: Complemento "Amazon Q"
Visual Studio (Solo Windows)Visual Studio 2022 v17.7 o posteriorVisual Studio Marketplace: "AWS Toolkit for Visual Studio 2022"
Eclipse2024-06 (4.32) o posteriorEclipse 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:

[!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ónAtajo en macOSAtajo en Windows / Linux
Aceptar recomendación completaTabTab
Aceptar únicamente la siguiente palabraCmd + Flecha derechaCtrl + Flecha derecha
Pasar a la siguiente sugerencia alternativaFlecha derecha (o Option + ])Flecha derecha (o Alt + ])
Volver a la sugerencia anteriorFlecha izquierda (o Option + [)Flecha izquierda (o Alt + [)
Rechazar o descartar sugerenciaEsc o continuar escribiendoEsc o continuar escribiendo
Forzar sugerencia manualmenteOption + CAlt + 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:

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:

Cómo ejecutar un escaneo de seguridad

Se ofrecen dos modalidades de escaneo:

  1. Auto-Scan continuo: Se puede habilitar en los ajustes del IDE para inspeccionar automáticamente los archivos modificados cada vez que se guardan.
  2. 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:

  1. Explicación técnica: Describe cómo el parámetro externo no sanitizado alcanza el punto de ejecución en la base de datos.
  2. Clasificación CWE: Asocia la incidencia con el identificador formal del catálogo MITRE CWE.
  3. 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.
  4. 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 origenVersión de destino admitidaHerramienta de compilación
Java 8Java 17, Java 21Apache Maven (v3.8 o superior)
Java 11Java 17, Java 21Apache Maven (v3.8 o superior)
Java 17Java 17 (actualización de librerías), Java 21Apache Maven (v3.8 o superior)
Java 21Java 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:

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:

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:


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ámetroNivel gratuito (AWS Builder ID)Nivel Pro ($19 / usuario / mes)
Gestión de identidadAWS Builder ID personal (Sin cuenta AWS)AWS IAM Identity Center (SSO corporativo: Okta, Azure AD)
Autocompletado en líneaIncluido (Ilimitado)Incluido (Ilimitado)
Chat técnico en IDEIncluido (Ilimitado)Incluido (Ilimitado)
Escaneo de seguridadIncluido (Escaneos estándar de proyecto)Incluido (Reglas avanzadas empresariales y auto-scan)
Tareas de agentes (/dev)50 solicitudes mensuales por usuario400 solicitudes mensuales por usuario (Fondo compartido en la cuenta)
Transformación de código1.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ónNo ampliable (Límite estricto)$0.003 por cada línea adicional transformada
Privacidad de datosEl contenido puede usarse para mejoras (Desactivable)El contenido corporativo nunca se utiliza para entrenar modelos
Indemnización por PINo incluidaIncluida (Protección legal total frente a infracciones de PI)
Panel de administraciónNo disponibleConsola 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:


Referencias