Aller au contenu

Code AmazonWhisperer Feuille de chaleur

Copier toutes les commandes Générer PDF

Aperçu général

Amazon CodeWhisperer est le service d'achèvement de code à moteur AI d'AWS qui fournit des suggestions de code intelligentes en temps réel. Il analyse votre code et vos commentaires pour générer des recommandations contextuelles pertinentes, soutenir plusieurs langages de programmation et s'intégrer aux IDE populaires.

C'est pas vrai. Note: CodeWhisperer a été rebaptisé Amazon Q Developer. Cette triche couvre l'interface et les commandes de CodeWhisperer.

Installation et configuration

Extension du code VS

# Install AWS Toolkit extension (includes CodeWhisperer)
code --install-extension AmazonWebServices.aws-toolkit-vscode

# Or install standalone CodeWhisperer extension
code --install-extension AmazonWebServices.codewhisperer-for-command-line-companion

IDE JetBrains

# Install AWS Toolkit plugin
# File > Settings > Plugins > Marketplace
# Search "AWS Toolkit" and install
```_

### Intégration de la ligne de commande
```bash
# Install CodeWhisperer CLI
npm install -g @amzn/codewhisperer-cli

# Or using pip
pip install codewhisperer-cli
```_

## Authentification

### ID du constructeur AWS (gratuit)
```bash
# Sign up for AWS Builder ID
# Free tier with usage limits
# No AWS account required

# Authentication in IDE:
# 1. Click "Start" in CodeWhisperer panel
# 2. Choose "Use for free with AWS Builder ID"
# 3. Complete browser authentication

Titres de compétence

# Configure AWS credentials
aws configure
# Enter Access Key ID
# Enter Secret Access Key
# Enter Default region
# Enter Default output format

# Or use environment variables
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-east-1

Intégration du SSO AWS

# Configure SSO profile
aws configure sso
# Enter SSO start URL
# Enter SSO region
# Complete browser authentication

# Use SSO profile
aws sso login --profile your-profile

Caractéristiques essentielles

Achèvement du code

# Automatic suggestions while typing
# Press Tab to accept suggestion
# Press Esc to dismiss suggestion
# Use arrow keys to navigate multiple suggestions

# Trigger manual suggestions
# Ctrl+Space (VS Code)
# Alt+C (JetBrains)

Génération de commentaires à codes

# Type descriptive comment
# Function to calculate compound interest
def calculate_compound_interest(principal, rate, time, compound_frequency):
    # CodeWhisperer generates the implementation
    amount = principal * (1 + rate/compound_frequency) ** (compound_frequency * time)
    return amount - principal

Génération de codes multilignes

// Generate entire functions from comments
// Create Express.js REST API endpoint for user management
app.post('/api/users', async (req, res) => {
    try {
        const { name, email, password } = req.body;
        const hashedPassword = await bcrypt.hash(password, 10);
        const user = new User({ name, email, password: hashedPassword });
        await user.save();
        res.status(201).json({ message: 'User created successfully', userId: user._id });
    } catch (error) {
        res.status(400).json({ error: error.message });
    }
});

Appui linguistique

Langues soutenues

# Fully supported languages:
- Python
- Java
- JavaScript
- TypeScript
- C#
- Go
- Rust
- PHP
- Ruby
- Kotlin
- C++
- Shell scripting (Bash)
- SQL
- Scala
- R
- Swift

Intégration du cadre

# Popular frameworks supported:
- React/Next.js
- Angular
- Vue.js
- Spring Boot
- Django/Flask
- Express.js
- .NET Core
- Laravel
- Rails

Intégration IDE

Commandes de code VS

# Command Palette commands:
"AWS: CodeWhisperer - Start"
"AWS: CodeWhisperer - Pause"
"AWS: CodeWhisperer - Resume"
"AWS: CodeWhisperer - Show Security Scan"
"AWS: CodeWhisperer - Open Settings"

# Keyboard shortcuts:
Alt+C           # Trigger suggestion
Tab             # Accept suggestion
Esc             # Dismiss suggestion
Ctrl+Right      # Accept word

Commandes JetBrains

# Tools menu:
Tools > AWS > CodeWhisperer > Start
Tools > AWS > CodeWhisperer > Pause
Tools > AWS > CodeWhisperer > Settings

# Context menu:
Right-click > AWS CodeWhisperer > Accept Suggestion
Right-click > AWS CodeWhisperer > Reject Suggestion

Paramètres de configuration

// VS Code settings.json
{
    "aws.codeWhisperer.shareCodeWhispererContentWithAWS": false,
    "aws.codeWhisperer.includeSuggestionsWithCodeReferences": true,
    "aws.codeWhisperer.automaticTrigger": true,
    "aws.codeWhisperer.maxSuggestions": 5
}

Analyse de sécurité

Détection de vulnérabilité

# Automatic security scanning
# Detects common vulnerabilities:
# - SQL injection
# - Cross-site scripting (XSS)
# - Hardcoded credentials
# - Insecure cryptographic practices
# - Path traversal vulnerabilities

Scannage manuel de sécurité

# VS Code:
# 1. Open Command Palette (Ctrl+Shift+P)
# 2. Type "CodeWhisperer Security Scan"
# 3. Select files to scan
# 4. Review results in Problems panel

# JetBrains:
# 1. Tools > AWS > CodeWhisperer > Security Scan
# 2. Select scope (file/project)
# 3. Review results in inspection panel

Résultats de l'analyse de sécurité

# High severity issues:
# - Critical security vulnerabilities
# - Immediate attention required
# - Detailed remediation steps provided

# Medium/Low severity:
# - Potential security concerns
# - Best practice recommendations
# - Code quality improvements

Utilisation de la ligne de commande

Installation CLI

# Install via npm
npm install -g @amzn/codewhisperer-cli

# Install via pip
pip install codewhisperer-cli

# Verify installation
codewhisperer --version

CLI Authentification

# Authenticate with AWS Builder ID
codewhisperer auth login

# Use AWS credentials
codewhisperer auth login --profile your-aws-profile

# Check authentication status
codewhisperer auth status

Production de code via CLI

# Generate code from prompt
codewhisperer generate --prompt "Python function to sort dictionary by values"

# Generate with context file
codewhisperer generate --prompt "Add error handling" --context main.py

# Interactive mode
codewhisperer interactive

Meilleures pratiques

Mise à jour efficace

# Good: Specific and descriptive comments
# Function to validate email format using regex and return boolean
def validate_email(email):
    # CodeWhisperer generates accurate implementation

# Bad: Vague comments
# Email function
def email_func():
    # Less accurate suggestions

Révision du code

# Always review generated code:
# 1. Check for logical correctness
# 2. Verify security implications
# 3. Ensure code style consistency
# 4. Test functionality thoroughly
# 5. Validate error handling

Considérations en matière de sécurité

# Review security scan results regularly
# Don't ignore vulnerability warnings
# Validate all input parameters
# Use secure coding practices
# Keep dependencies updated

Limites d'utilisation et prix

Niveau libre (ID du constructeur AWS)

# Monthly limits:
# - Code suggestions: Unlimited
# - Security scans: 50 per month
# - Supported languages: All
# - IDE integrations: All

Niveau professionnel

# Features (when available):
# - Higher usage limits
# - Priority support
# - Advanced security features
# - Team management
# - Usage analytics

Dépannage

Questions communes

# CodeWhisperer not working:
# 1. Check internet connection
# 2. Verify authentication status
# 3. Restart IDE
# 4. Update AWS Toolkit extension

# No suggestions appearing:
# 1. Check if CodeWhisperer is enabled
# 2. Verify file type is supported
# 3. Check automatic trigger settings
# 4. Try manual trigger (Alt+C)

Problèmes de performance

# Slow suggestions:
# 1. Close unnecessary files
# 2. Reduce project size
# 3. Check network connectivity
# 4. Update to latest extension version

# High CPU usage:
# 1. Adjust suggestion frequency
# 2. Disable automatic triggers
# 3. Use manual triggers only
# 4. Configure suggestion limits

Renseignements sur les débogueurs

# VS Code debug info:
# 1. View > Output
# 2. Select "AWS Toolkit" from dropdown
# 3. Check for error messages

# JetBrains debug info:
# 1. Help > Show Log in Explorer
# 2. Look for AWS-related log files
# 3. Check for error patterns

Exemples de codes

Traitement des données Python

# Function to process CSV file and calculate statistics
import pandas as pd
import numpy as np

def process_sales_data(file_path):
    df = pd.read_csv(file_path)

    # Calculate key metrics
    total_sales = df['amount'].sum()
    avg_sale = df['amount'].mean()
    top_products = df.groupby('product')['amount'].sum().sort_values(ascending=False).head(5)

    return {
        'total_sales': total_sales,
        'average_sale': avg_sale,
        'top_products': top_products.to_dict()
    }

Intégration d'API JavaScript

// Function to fetch user data with error handling and retry logic
async function fetchUserData(userId, maxRetries = 3) {
    for (let attempt = 1; attempt <= maxRetries; attempt++) {
        try {
            const response = await fetch(`/api/users/${userId}`);

            if (!response.ok) {
                throw new Error(`HTTP error! status: ${response.status}`);
            }

            const userData = await response.json();
            return userData;

        } catch (error) {
            console.error(`Attempt ${attempt} failed:`, error.message);

            if (attempt === maxRetries) {
                throw new Error(`Failed to fetch user data after ${maxRetries} attempts`);
            }

            // Wait before retry
            await new Promise(resolve => setTimeout(resolve, 1000 * attempt));
        }
    }
}

Contrôleur de démarrage de ressort Java

// REST controller for product management with validation
@RestController
@RequestMapping("/api/products")
@Validated
public class ProductController {

    @Autowired
    private ProductService productService;

    @PostMapping
    public ResponseEntity<Product> createProduct(@Valid @RequestBody ProductDTO productDTO) {
        try {
            Product product = productService.createProduct(productDTO);
            return ResponseEntity.status(HttpStatus.CREATED).body(product);
        } catch (ValidationException e) {
            return ResponseEntity.badRequest().build();
        } catch (Exception e) {
            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
        }
    }
}

Migration vers Amazon Q

Guide de transition

# CodeWhisperer is now Amazon Q Developer
# Migration steps:
# 1. Update to latest AWS Toolkit
# 2. Existing settings are preserved
# 3. Authentication remains the same
# 4. Enhanced features available in Amazon Q

Nouvelles fonctionnalités en Amazon Q

# Additional capabilities:
# - Chat interface for code questions
# - Application modernization
# - Code explanations
# - Unit test generation
# - Enhanced security scanning

Ressources

Documentation

Communauté

Formation