ESPAÇO PUBLICITÁRIO DISPONÍVEL · FALE CONOSCO

Guia Prático do Amazon Q Developer no IDE: Geração de Código em Tempo Real, Varredura de Segurança e Modernização de Código Legado

365Finds Editorial
11.430 artigos Wiki catalogados

Use o 365 Wiki com sua IA

Copie o prompt abaixo, cole na IA que você já usa e faça sua pergunta.

Baixar o Skill completo

Experimente primeiro com o prompt. Se você usa o 365 Wiki com frequência, instale o Skill completo do 365Wiki para não precisar colá-lo novamente. Se não usa uma IA específica, as versões web do Gemini ou Microsoft Copilot também servem.

No desenvolvimento de software moderno, equipes de engenharia lidam constantemente com três grandes fontes de atrito: a escrita exaustiva de código boilerplate, a identificação tardia de vulnerabilidades de segurança nas etapas finais de homologação e a manutenção onerosa de bases de código legadas presas a versões antigas de tempo de execução. O Amazon Q Developer, assistente baseado em inteligência artificial generativa sobre o Amazon Bedrock, integra-se diretamente aos principais Ambientes de Desenvolvimento Integrado (IDEs) para apoiar os desenvolvedores em todo o ciclo de vida da aplicação.

Por meio de extensões oficiais para Visual Studio Code, IDEs da JetBrains (incluindo IntelliJ IDEA e PyCharm) e Visual Studio 2022, o Amazon Q Developer disponibiliza três capacidades operacionais centrais:

  1. Geração de código em linha em tempo real e assistência conversacional contextual: prediz sintaxes de forma dinâmica, implementa funções completas a partir de comentários em linguagem natural e executa tarefas multifuncionais entre vários arquivos via /dev.
  2. Varredura automatizada de segurança estática: alimentada pela biblioteca de detectores do Amazon CodeGuru, identifica vulnerabilidades (injeção SQL, credenciais expostas, XSS) diretamente no painel "Problems" da IDE, oferecendo patches de remediação com um clique.
  3. Transformação automatizada de código legado (Code Transformation): um agente autônomo executa a atualização de versões do Java (como migrações de Java 8 ou 11 para Java 17 ou 21) ou moderniza aplicações .NET, realizando compilações locais e testes unitários para garantir a estabilidade do sistema.

Este guia detalha como instalar e configurar o assistente, operar suas ferramentas em fluxos de trabalho reais e avaliar os critérios de governança entre o nível gratuito e o plano empresarial Pro.


1. Pré-requisitos e Configuração de Autenticação na IDE

O Amazon Q Developer opera nos principais ecossistemas de desenvolvimento. Antes de iniciar, garanta que seu ambiente satisfaça os requisitos mínimos de compatibilidade e conclua a autenticação.

Ambientes de IDE Compatíveis

IDEVersão Mínima HomologadaMecanismo de Instalação
Visual Studio Code1.85.0 ou superiorVS Code Marketplace: Extensão "Amazon Q"
JetBrains IDEs (IntelliJ IDEA, PyCharm, etc.)2024.3 ou superiorJetBrains Marketplace: Plugin "Amazon Q"
Visual Studio (Apenas Windows)Visual Studio 2022 v17.7 ou superiorMarketplace: "AWS Toolkit for Visual Studio 2022"
Eclipse2024-06 (4.32) ou superiorEclipse Marketplace: Plugin "Amazon Q"

Modalidades de Autenticação: Nível Gratuito (Free Tier) vs. Nível Pro

Após instalar a extensão, clique no ícone do Amazon Q na barra de atividades para autenticar o acesso por uma das vias disponíveis:

[!NOTE] Aviso sobre o Ciclo de Vida do Suporte: A AWS comunicou oficialmente o encerramento do suporte aos plugins tradicionais do Amazon Q Developer para IDEs em 30 de abril de 2027. A AWS recomenda acompanhar as atualizações do roadmap e avaliar alternativas evolutivas, como o Kiro, para recursos de agentes avançados, Model Context Protocol (MCP) e chat interativo.


2. Geração de Código em Tempo Real e Assistência Contextual

O Amazon Q Developer opera no editor por meio de duas interfaces complementares: sugestões preditivas em linha e diálogos estruturados com comandos de barra.

Sugestões de Código em Linha (Inline Suggestions)

Conforme você digita código ou descreve intenções em comentários, o Amazon Q analisa o arquivo aberto, a posição do cursor, as bibliotecas importadas e os arquivos vizinhos para exibir trechos de código em texto cinza translúcido.

Principais Atalhos de Teclado

AçãoAtalho no macOSAtalho no Windows / Linux
Aceitar sugestão completaTabTab
Aceitar apenas a próxima palavraCmd + Seta para a direitaCtrl + Seta para a direita
Avançar para a próxima sugestãoSeta para a direita (ou Option + ])Seta para a direita (ou Alt + ])
Voltar para a sugestão anteriorSeta para a esquerda (ou Option + [)Seta para a esquerda (ou Alt + [)
Rejeitar ou descartar sugestãoEsc ou continuar digitandoEsc ou continuar digitando
Invocar sugestão manualmenteOption + CAlt + C

Exemplo Prático de Geração de Código

Ao implementar uma função assíncrona em Python com anotações de tipo e docstring descritivo, o assistente sintetiza todo o tratamento de requisição com retentativas e backoff exponencial:

import aiohttp
import asyncio
from typing import Dict, Any, Optional

# Orientando o Amazon Q Developer via 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.
    """
    # Pressione Tab para aceitar o bloco gerado pelo 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

Painel de Chat e Edição em Linha no Editor

Para tarefas com maior complexidade de escopo, os engenheiros podem usar a interface de diálogo:

Rastreamento de Referência de Código Aberto (Reference Tracker)

Quando o código sugerido coincide substancialmente com repositórios públicos utilizados no treinamento, o mecanismo Reference Tracker emite um alerta na IDE. A notificação detalha a URL do repositório de origem e a licença correspondente (como MIT, Apache 2.0 ou GPL). Em ambientes Pro, os administradores podem configurar travas para bloquear automaticamente qualquer sugestão que coincida com código aberto.


3. Varredura Automatizada de Vulnerabilidades e Correção com Um Clique

Tradicionalmente, os testes de segurança estática (SAST) ocorrem nos pipelines finais de integração contínua, exigindo retrabalho tardio. O Amazon Q Developer antecipa essa validação para o momento da codificação no IDE.

Cobertura e Mecanismo de Detecção

O motor de varredura combina inteligência generativa com a Biblioteca de Detectores do Amazon CodeGuru, identificando riscos como:

Como Executar uma Varredura de Segurança

Estão disponíveis duas formas de execução:

  1. Auto-Scan Contínuo: Habilitado nas configurações da extensão, realiza varreduras em segundo plano sempre que um arquivo é salvo.
  2. Varredura Sob Demanda de Projeto / Arquivo:
    • Abra o workspace no VS Code ou JetBrains.
    • Clique no ícone do Amazon Q na barra de status inferior ou acesse o painel de chat.
    • Selecione Run Security Scan (ou solicite no chat Execute uma varredura de segurança neste projeto).
    • O projeto é empacotado (limite usual de até 100 MB, ignorando pastas de testes e binários de terceiros) e processado em segundo plano.

Análise de Alertas e Aplicação do Patch

Os apontamentos são listados na aba nativa Problems do IDE, classificados pela severidade do padrão CVSS: Critical, High, Medium, Low ou Info.

[Problems - Workspace]
└── src/api/user_controller.py
    └── [High] Linha 42: CWE-89 - Concatenação de string expõe consulta a injeção de SQL

Ao clicar no apontamento, o painel do Amazon Q apresenta os detalhes:

  1. Explicação da Causa Raiz: Demonstra como entradas não tratadas chegam à camada de execução do banco.
  2. Identificador CWE: Informa o código oficial da falha pelo catálogo MITRE CWE.
  3. Patch de Correção Sugerido (Suggested Remediation): Exibe a substituição de concatenações por queries parametrizadas ou mapeamentos ORM.
  4. Aplicação com Um Clique: Clique em Apply Fix ou Insert at cursor para atualizar o arquivo e salvar novamente para validar a solução.

4. Modernização de Código Legado: Migração de Versões do Java

A transição entre versões estruturais de linguagens (como migrar de Java 8 ou 11 para Java 17 ou 21) envolve semanas de trabalho manual exaustivo. O Agente do Amazon Q Developer para Transformação de Código (Agent for Code Transformation) assume de forma autônoma a atualização de dependências, refatoração de APIs descontinuadas e validação por testes locais.

Matriz de Suporte a Versões e Compiladores

Versão de OrigemVersões de Destino SuportadasFerramenta de Build
Java 8Java 17, Java 21Apache Maven (v3.8 ou superior)
Java 11Java 17, Java 21Apache Maven (v3.8 ou superior)
Java 17Java 17 (renovação de dependências), Java 21Apache Maven (v3.8 ou superior)
Java 21Java 21 (manutenção de pacotes)Apache Maven (v3.8 ou superior)
.NET Framework (Windows).NET 8 (Modernização multiplataforma para Linux)MSBuild / Visual Studio

Pré-requisitos para Transformação de Código Java

Antes de submeter o código à modernização, certifique-se de que o ambiente local atenda aos seguintes critérios:

Ciclo Operacional da Transformação de Código

O fluxo de modernização segue um ciclo completo de checagem e refatoração:

flowchart TD
    A["1. Iniciar Trabalho (/transform)"] --> B["2. Validação e Pré-Build Local no Maven"]
    B --> C["3. Upload Criptografado para Ambiente Seguro"]
    C --> D["4. Análise de AST e Refatoração por IA"]
    D --> E["5. Compilação no JDK Destino e Execução de Testes"]
    E --> F["6. Download do Patch para .aws/transform"]
    F --> G["7. Revisão Lado a Lado do Diff e Merge"]

Passo 1: Disparo do Trabalho na IDE

No VS Code ou IntelliJ IDEA, acione o chat do Amazon Q e execute:

/transform

Também é possível acessar a ferramenta pelo painel Amazon Q: Code Transformation. Escolha o módulo desejado e defina o JDK de destino (Java 17 ou Java 21).

Passo 2: Pré-Build e Extração de Contexto

O assistente dispara o Maven localmente para validar a integridade estrutural e compor a árvore de sintaxe abstrata (AST). Caso a compilação local falhe no JDK original, o processo é abortado imediatamente com os logs de erro.

Passo 3: Refatoração Automatizada em Ambiente Isolado

Superada a validação, os arquivos são transmitidos de forma segura e criptografada para um ambiente isolado na nuvem da AWS, onde o agente executa:

Passo 4: Compilação de Teste e Execução da Suíte

O agente compila o código no JDK de destino e executa os testes unitários preexistentes. Havendo inconsistências de compilação resultantes de alterações em assinaturas de métodos, o agente realiza ciclos autônomos de ajuste até alcançar a compilação limpa e o sucesso dos testes.

Passo 5: Revisão e Mesclagem no Editor

Ao concluir, o relatório consolidado e o arquivo de patch são baixados para a pasta local .aws/transform:


5. Comparativo Arquitetural: Nível Gratuito vs. Nível Pro

Ao estruturar a adoção da ferramenta pela equipe, considere as diferenças operacionais e orçamentárias:

Dimensão TécnicaNível Gratuito (AWS Builder ID)Nível Pro (US$ 19 / Usuário / Mês)
Identidade e AcessoAWS Builder ID pessoal (Sem conta AWS)AWS IAM Identity Center (SSO empresarial: Okta, Azure AD)
Sugestões em LinhaIncluso (Ilimitado)Incluso (Ilimitado)
Chat Técnico na IDEIncluso (Ilimitado)Incluso (Ilimitado)
Varredura de SegurançaIncluso (Varreduras padrão de projeto)Incluso (Regras corporativas avançadas e auto-scan)
Tarefas de Agentes (/dev)50 solicitações por usuário/mês400 solicitações por usuário/mês (Compartilhadas na conta)
Transformação de Código1.000 linhas de código/mês (Avaliação)4.000 linhas de código por usuário/mês (Compartilhadas na conta)
Excedente de TransformaçãoNão expansível (Limite rígido)US$ 0,003 por linha de código adicional modernizada
Privacidade dos DadosDados podem ser usados para melhorias (Opt-out possível)Dados do cliente nunca são usados para treinar modelos base
Indenização por PINão inclusaInclusa (Proteção jurídica contra violação de PI para código gerado)
Governança AdministrativaNão disponívelConsole central da AWS, relatórios de uso e filtros de licenças

6. Boas Práticas e Recomendações de Engenharia

Para extrair o máximo valor do Amazon Q Developer sem acumular débitos técnicos, adote as seguintes práticas operacionais:


Referências