Zum Inhalt

Amazon CodeWhisperer Cheat Sheet

generieren

Überblick

Amazon CodeWhisperer ist AWS AI-powered Code-Vervollständigung Service, der intelligente Codevorschläge in Echtzeit bietet. Es analysiert Ihren Code und Kommentare, um kontextuell relevante Empfehlungen zu generieren, mehrere Programmiersprachen zu unterstützen und mit populären IDEs zu integrieren.

ZEIT Note: CodeWhisperer wurde als Amazon Q Developer umbenannt. Dieses Cheatsheet umfasst die Legacy CodeWhisperer-Schnittstelle und Befehle.

Installation und Inbetriebnahme

VS Code Erweiterung

```bash

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 ```_

JetBrains IDEs

```bash

Install AWS Toolkit plugin

File > Settings > Plugins > Marketplace

Search "AWS Toolkit" and install

```_

Integration der Kommandozeilen

```bash

Install CodeWhisperer CLI

npm install -g @amzn/codewhisperer-cli

Or using pip

pip install codewhisperer-cli ```_

Authentication

AWS Builder ID (kostenlos)

```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

```_

AWS IAM Credentials

```bash

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 ```_

AWS SSO Integration

```bash

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 ```_

Kernmerkmale

Code Fertigstellung

```bash

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)

```_

Kommentar-zu-Code Generation

```python

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 ```_

Multiline Code Generation

javascript // 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 }); } });_

Sprachunterstützung

Unterstützte Sprachen

```bash

Fully supported languages:

  • Python
  • Java
  • JavaScript
  • TypeScript
  • C#
  • Go
  • Rust
  • PHP
  • Ruby
  • Kotlin
  • C++
  • Shell scripting (Bash)
  • SQL
  • Scala
  • R
  • Swift ```_

Rahmenintegration

```bash

Popular frameworks supported:

  • React/Next.js
  • Angular
  • Vue.js
  • Spring Boot
  • Django/Flask
  • Express.js
  • .NET Core
  • Laravel
  • Rails ```_

IDE Integration

VS Code Befehle

```bash

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 ```_

JetBrains Kommandos

```bash

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 ```_

Konfigurationseinstellungen

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

Sicherheits-Scanning

Schwachstellenerkennung

```bash

Automatic security scanning

Detects common vulnerabilities:

- SQL injection

- Cross-site scripting (XSS)

- Hardcoded credentials

- Insecure cryptographic practices

- Path traversal vulnerabilities

```_

Automatischer Sicherheitsscan

```bash

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

```_

Ergebnisse des Sicherheitsscans

```bash

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

```_

Verwendung der Befehlszeile

CLI Installation

```bash

Install via npm

npm install -g @amzn/codewhisperer-cli

Install via pip

pip install codewhisperer-cli

Verify installation

codewhisperer --version ```_

CLI Authentication

```bash

Authenticate with AWS Builder ID

codewhisperer auth login

Use AWS credentials

codewhisperer auth login --profile your-aws-profile

Check authentication status

codewhisperer auth status ```_

Code Generation über CLI

```bash

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 ```_

Best Practices

Effektive Vermutung

```python

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 ```_

Code Review

```bash

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

```_

Sicherheitsüberlegungen

```bash

Review security scan results regularly

Don't ignore vulnerability warnings

Validate all input parameters

Use secure coding practices

Keep dependencies updated

```_

Nutzungsbeschränkungen & Preise

Free Tier (AWS Builder ID)

```bash

Monthly limits:

- Code suggestions: Unlimited

- Security scans: 50 per month

- Supported languages: All

- IDE integrations: All

```_

Berufliche Qualifikation

```bash

Features (when available):

- Higher usage limits

- Priority support

- Advanced security features

- Team management

- Usage analytics

```_

Fehlerbehebung

Gemeinsame Themen

```bash

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)

```_

Leistungsfragen

```bash

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

```_

Debug Information

```bash

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

```_

Beispiele

Python Datenverarbeitung

```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()
}

```_

JavaScript API Integration

``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));
    }
}

} ```_

Java Spring Boot Controller

```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 auf Amazon Q

Leitfaden für den Übergang

```bash

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

```_

Neue Features in Amazon Q

```bash

Additional capabilities:

- Chat interface for code questions

- Application modernization

- Code explanations

- Unit test generation

- Enhanced security scanning

```_

Ressourcen

Dokumentation

Gemeinschaft

Ausbildung