Amazon CodeWhisperer Cheat Sheet¶
Ü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¶
- [CodeWhisperer Benutzerhandbuch](URL_0
- [AWS Toolkit for VS Code](URL_1_
- AWS Toolkit für JetBrains
Gemeinschaft¶
- AWS Developer Forums
- (URL_4_)
- Stack Overflow