ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Guide pratique d'Amazon Q Developer dans l'IDE : Génération de code en temps réel, analyse de sécurité et modernisation du code hérité

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Dans les pratiques modernes de développement logiciel, les équipes d'ingénierie font face à trois contraintes récurrentes : la rédaction chronophage de code répétitif (boilerplate), la découverte tardive de failles de sécurité juste avant le déploiement en production et la dette technique liée aux bases de code vieillissantes reposant sur des versions obsolètes. Amazon Q Developer, un assistant de développement propulsé par l'IA générative sur Amazon Bedrock, s'intègre directement au sein des environnements de développement intégrés (IDE) pour accompagner les développeurs tout au long du cycle de vie des applications.

Grâce aux extensions officielles pour Visual Studio Code, les IDE JetBrains (dont IntelliJ IDEA et PyCharm) et Visual Studio 2022, Amazon Q Developer fournit trois capacités d'ingénierie fondamentales :

  1. Génération de code en ligne en temps réel et assistance conversationnelle contextuelle : prédiction syntaxique fluide au fil de la frappe, implémentation de fonctions à partir de commentaires naturels et prise en charge de fonctionnalités multi-fichiers via la commande /dev.
  2. Analyse automatisée des vulnérabilités de sécurité : basée sur la bibliothèque de détecteurs Amazon CodeGuru, elle identifie les injections SQL, les identifiants codés en dur et les failles XSS directement dans l'onglet « Problems » de l'IDE, avec application de correctifs en un clic.
  3. Transformation automatisée du code hérité (Code Transformation) : un agent autonome prend en charge la montée de version de Java (par exemple de Java 8 ou 11 vers Java 17 ou 21) ou la modernisation de projets .NET, en exécutant des compilations et des tests unitaires locaux pour valider la non-régression.

Ce guide pratique détaille la configuration de l'outil dans votre IDE, l'exploitation quotidienne de ses fonctionnalités et l'évaluation des différences entre l'offre gratuite et l'offre d'entreprise Pro.


1. Prérequis et configuration de l'authentification dans l'IDE

Amazon Q Developer prend en charge les principaux environnements de développement. Avant de démarrer, assurez-vous que votre environnement respecte les versions requises et réalisez l'authentification.

Environnements d'IDE pris en charge

IDEVersion minimale prise en chargeEmplacement de l'extension
Visual Studio Code1.85.0 ou ultérieureVS Code Marketplace : Extension « Amazon Q »
JetBrains IDEs (IntelliJ IDEA, PyCharm, etc.)2024.3 ou ultérieureJetBrains Marketplace : Plugin « Amazon Q »
Visual Studio (Windows uniquement)Visual Studio 2022 v17.7 ou ultérieureMarketplace : « AWS Toolkit for Visual Studio 2022 »
Eclipse2024-06 (4.32) ou ultérieureEclipse Marketplace : Plugin « Amazon Q »

Modèles d'authentification : Offre gratuite (Free Tier) vs Offre Pro

Après avoir installé le plugin, cliquez sur l'icône Amazon Q dans la barre latérale pour vous connecter selon l'une des deux modalités :

[!NOTE] Avis relatif au cycle de vie : AWS a formellement annoncé la fin de prise en charge des plugins Amazon Q Developer pour IDE traditionnels au 30 avril 2027. AWS recommande de suivre les évolutions de la feuille de route et d'explorer les outils de nouvelle génération comme Kiro pour les flux agentiques, le Model Context Protocol (MCP) et les fonctionnalités conversationnelles avancées.


2. Génération de code en temps réel et assistance contextuelle

Amazon Q Developer propose deux modes d'interaction au sein de l'éditeur : des suggestions prédictives en ligne au cours de la frappe et un panneau de chat interactif.

Suggestions de code en ligne (Inline Suggestions)

Pendant que vous écrivez du code ou formulez des commentaires en langage naturel, Amazon Q analyse le fichier actif, la position de votre curseur, les dépendances importées et le contexte environnant pour afficher des propositions en texte gris clair.

Principaux raccourcis clavier

ActionRaccourci macOSRaccourci Windows / Linux
Accepter la recommandation complèteTabTab
Accepter uniquement le mot suivantCmd + Flèche droiteCtrl + Flèche droite
Passer à la suggestion suivanteFlèche droite (ou Option + ])Flèche droite (ou Alt + ])
Revenir à la suggestion précédenteFlèche gauche (ou Option + [)Flèche gauche (ou Alt + [)
Rejeter ou masquer la suggestionÉchap ou continuer la saisieÉchap ou continuer la saisie
Déclencher manuellement la suggestionOption + CAlt + C

Exemple concret d'implémentation

Lors du développement d'un utilitaire HTTP asynchrone en Python, la simple spécification des types et d'une docstring descriptive permet à Amazon Q de générer l'ensemble de la logique de relance avec backoff exponentiel :

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

# Guidage d'Amazon Q Developer via la 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.
    """
    # Appuyez sur Tab pour accepter le bloc généré par 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

Panneau de chat et édition directe dans l'éditeur (Inline Chat)

Pour les refactorisations architecturales ou les tâches plus vastes, les développeurs peuvent s'appuyer sur l'interface de discussion :

Traçabilité des sources ouvertes (Reference Tracker)

Lorsque le code généré présente une forte similitude avec du code open source public, le système Reference Tracker alerte le développeur. Il fournit l'URL du dépôt d'origine ainsi que la licence applicable (MIT, Apache 2.0, GPL, etc.). Dans l'offre Pro, les administrateurs peuvent configurer des politiques d'exclusion automatique pour bloquer toute suggestion reprenant du code sous licence contraignante.


3. Analyse automatisée des vulnérabilités et correction en un clic

Les outils d'analyse statique de sécurité (SAST) interviennent traditionnellement tard dans le pipeline CI/CD. Amazon Q Developer déplace cette analyse au plus tôt, directement dans l'IDE lors de la saisie du code.

Couverture et moteur de détection

Le système associe raisonnement génératif et règles déterministes issues de la bibliothèque de détecteurs Amazon CodeGuru, ciblant notamment :

Exécution d'un scan de sécurité

Deux modes d'analyse sont disponibles :

  1. Auto-Scan continu : Une fois activé dans les réglages de l'extension, chaque enregistrement de fichier déclenche une analyse d'arrière-plan.
  2. Scan à la demande d'un projet ou d'un fichier :
    • Ouvrez votre projet dans VS Code ou JetBrains.
    • Cliquez sur l'icône Amazon Q dans la barre d'état inférieure ou accédez au panneau de chat.
    • Choisissez Run Security Scan (ou écrivez dans le chat Exécute une analyse de sécurité sur ce projet).
    • L'espace de travail (jusqu'à 100 Mo, hors répertoires de tests et dépendances binaires externes) est analysé en tâche de fond.

Évaluation des résultats et application des correctifs

Les vulnérabilités sont listées dans l'onglet Problems de l'IDE, ordonnées selon les niveaux de criticité CVSS : Critical, High, Medium, Low ou Info.

[Problems - Projet]
└── src/api/user_controller.py
    └── [High] Ligne 42 : CWE-89 - Concaténation de chaîne exposant la requête à une injection SQL

En sélectionnant l'élément, le panneau Amazon Q affiche les détails :

  1. Origine de la vulnérabilité : Description du flux par lequel des entrées non assainies atteignent l'exécuteur de requête.
  2. Identifiant CWE : Référence formelle au catalogue MITRE CWE.
  3. Correctif proposé (Suggested Remediation) : Comparatif visuel démontrant l'utilisation de requêtes préparées paramétrées ou d'un mapping ORM.
  4. Application immédiate : Cliquez sur Apply Fix ou Insert at cursor pour intégrer la correction dans votre code, puis enregistrez pour constater la disparition de l'avertissement.

4. Modernisation du code hérité : Montée de version Java et flux automatisé

La migration de bases de code importantes entre versions majeures (par exemple de Java 8 ou 11 vers Java 17 ou 21) exige un investissement considérable. L'Agent Amazon Q Developer pour la transformation de code (Agent for Code Transformation) prend en charge l'adaptation des dépendances, la réécriture d'API dépréciées et la validation locale par tests unitaires.

Chemins de migration pris en charge

Version sourceVersions cibles prises en chargeOutil de build
Java 8Java 17, Java 21Apache Maven (v3.8 ou supérieur)
Java 11Java 17, Java 21Apache Maven (v3.8 ou supérieur)
Java 17Java 17 (rafraîchissement des paquets), Java 21Apache Maven (v3.8 ou supérieur)
Java 21Java 21 (maintenance des dépendances)Apache Maven (v3.8 ou supérieur)
.NET Framework (Windows).NET 8 (Migration multiplateforme Linux)MSBuild / Visual Studio

Prérequis techniques pour la transformation de code Java

Avant d'initier une transformation, assurez-vous que les conditions locales suivantes sont respectées :

Déroulement de la transformation automatisée

Le processus suit un cycle rigoureux de validation et d'application :

flowchart TD
    A["1. Lancement du travail (/transform)"] --> B["2. Validation Maven et pré-compilation locale"]
    B --> C["3. Téléversement chiffré dans un bac à sable isolé"]
    C --> D["4. Analyse de l'AST et refactorisation par l'IA"]
    D --> E["5. Compilation sur le JDK cible et exécution des tests"]
    E --> F["6. Téléchargement du patch dans .aws/transform"]
    F --> G["7. Examen du Diff dans l'IDE et fusion"]

Étape 1 : Lancement de la tâche dans l'IDE

Dans le chat Amazon Q sous VS Code ou IntelliJ IDEA, tapez :

/transform

Vous pouvez également passer par le panneau Amazon Q: Code Transformation. Sélectionnez le module cible et le JDK souhaité (Java 17 ou Java 21).

Étape 2 : Pré-validation locale

Amazon Q exécute Maven en local pour analyser la structure du projet et extraire l'arbre syntaxique abstrait (AST). Si le projet présente déjà des erreurs de compilation, le processus s'interrompt immédiatement avec les journaux d'erreurs.

Étape 3 : Traitement sécurisé et refactorisation

Le code est ensuite transmis sous chiffrement à un environnement sécurisé AWS, au sein duquel l'agent procède aux modifications :

Étape 4 : Compilation cible et vérification par les tests

L'agent compile l'application sur le JDK cible et lance les tests unitaires existants. Si des ruptures de signature provoquent des échecs, l'agent effectue des ajustements itératifs jusqu'à obtenir une compilation réussie et le succès des tests.

Étape 5 : Examen du Diff et validation finale

Une fois l'opération terminée, le rapport de synthèse et le fichier de patch sont mis à disposition dans le dossier .aws/transform du projet :


5. Comparatif d'architecture : Offre gratuite vs Offre Pro

Pour préparer l'adoption au sein d'une organisation, les responsables techniques doivent considérer les éléments suivants :

CritèreOffre gratuite (AWS Builder ID)Offre Pro (19 $ / utilisateur / mois)
Gestion des identitésAWS Builder ID individuel (Sans compte AWS)AWS IAM Identity Center (SSO entreprise : Okta, Azure AD)
Suggestions en ligneInclus (Illimité)Inclus (Illimité)
Chat technique dans l'IDEInclus (Illimité)Inclus (Illimité)
Analyse de sécuritéInclus (Scans de projet standards)Inclus (Règles d'entreprise avancées et auto-scan)
Tâches d'agents (/dev)50 requêtes par utilisateur et par mois400 requêtes par utilisateur et par mois (Mutualisées)
Transformation de code1 000 lignes par mois (Plafond d'essai)4 000 lignes par utilisateur et par mois (Mutualisées)
Dépassement transformationNon extensible (Arrêt au plafond)0,003 $ par ligne de code supplémentaire transformée
Confidentialité des donnéesDonnées utilisables pour le service (Opt-out)Données client jamais utilisées pour entraîner les modèles
Indemnisation PINon incluseIncluse (Protection totale contre les recours en contrefaçon)
Gouvernance et reportingAucune console centraleConsole AWS dédiée, tableaux de bord et filtres de licences

6. Bonnes pratiques d'ingénierie et recommandations de mise en œuvre

Pour tirer le meilleur parti d'Amazon Q Developer tout en maîtrisant la dette technique, veillez à suivre ces recommandations :


Références