在現代軟體工程實務中,開發團隊經常面臨三大耗時瓶頸:撰寫樣板程式碼與重複邏輯、在部署前夕才於 CI/CD 管線中被動處理資安弱點,以及受限於老舊語言版本的大型專案升級困境。Amazon Q Developer 作為建構於 Amazon Bedrock 上的生成式 AI 輔助開發工具,深度整合至 Visual Studio Code、JetBrains 系列工具(包括 IntelliJ IDEA、PyCharm)及 Visual Studio 2022 等主流整合開發環境(IDE),為軟體工程師提供貫穿軟體生命週期的實用支援。
透過官方擴充套件,Amazon Q Developer 提供了三大核心功能:
- 即時行內上下文程式碼補全與對話式開發:依據程式碼語意與自然語言註解即時推測後續語法,自動產生完整函式,並能透過
/dev跨多個檔案推進特性開發。 - 基於資安規則庫的自動化弱點掃描:依託 Amazon CodeGuru 探測器庫,在 IDE 內部精準標註 SQL 注入、寫死機密憑證、XSS 等弱點,並於「問題(Problems)」面板提供一鍵修復補丁。
- 老舊程式碼自動化轉換遷移(Code Transformation):藉由代理人(Agent)機制自動將 Java 8 或 11 升級至 Java 17 或 21,或現代化遷移 .NET 應用程式,並在本地端執行建置與單元測試以驗證相容性。
本指南詳細說明如何在主流 IDE 中安裝與配置 Amazon Q Developer,深入解析各核心功能於日常工作流程的具體操作,並評估個人免費版與企業專業版的技術取捨與合規原則。
1. 環境準備與 IDE 驗證設定
Amazon Q Developer 支援多個主流開發工具生態系。在開始進行程式碼生成或資安掃描前,應先確保本地端環境符合版本相容性並完成身分認證。
支援的 IDE 環境
| IDE 環境 | 最低支援版本 | 擴充套件安裝管道 |
|---|---|---|
| Visual Studio Code | 1.85.0 或更新版本 | VS Code Marketplace 搜尋安裝 "Amazon Q" 擴充套件 |
| JetBrains IDEs(IntelliJ IDEA、PyCharm 等) | 2024.3 或更新版本 | JetBrains Marketplace 搜尋安裝 "Amazon Q" 外掛程式 |
| Visual Studio(僅限 Windows) | 2022 v17.7 或更新版本 | 擴充套件市集搜尋安裝 "AWS Toolkit for Visual Studio 2022" |
| Eclipse | 2024-06 (4.32) 或更新版本 | Eclipse Marketplace 搜尋安裝 "Amazon Q" 外掛程式 |
身分驗證機制:免費版(Free Tier)與專業版(Pro Tier)
安裝完成後,點擊 IDE 活動列上的 Amazon Q 圖示即可啟動登入流程。系統提供兩種不同的驗證途徑:
- AWS Builder ID(個人免費版): 獨立軟體工程師無需繫結 AWS 帳戶,亦無需提供信用卡。在登入對話框中選擇 Use for free with AWS Builder ID,瀏覽器將開啟認證頁面以登入或註冊個人 AWS Builder ID。免費版提供永久無限制的行內程式碼建議、標準對話問答、基礎安全掃描,以及每月 50 次 Agent 等級的複雜任務額度。
- IAM Identity Center(企業專業版 - 每位使用者每月 19 美元): 企業工程團隊透過組織級單一登入(SSO,如整合 Okta、Microsoft Entra ID 等)集中分派權限。在 IDE 中選擇 Sign in with IAM Identity Center,輸入企業入口網址(如
https://my-company.awsapps.com/start)與對應 AWS 區域。專業版連線在 IDE 中的預設工作階段長達 90 天,免除每日重新認證的困擾,並解鎖集中管理控制台、智慧財產權侵權補償、客製化程式碼庫對應,以及按帳戶池化共享的程式碼遷移與智能代理任務額度。
[!NOTE] 生命週期維護聲明: AWS 官方已發布公告,現行各大 IDE 的 Amazon Q Developer 外掛程式將於 2027 年 4 月 30 日終止支援。AWS 建議開發者持續追蹤官方藍圖動態,並評估轉向 Kiro 等具備 Model Context Protocol (MCP) 與新一代代理架構的開發輔助工具。
2. 即時程式碼生成與上下文對話輔助
在 IDE 編輯環境中,Amazon Q Developer 透過兩種互動形式提供生成式輔助:隨輸入自動浮現的行內建議,以及側邊欄對話與行內快速編輯介面。
即時行內程式碼建議(Inline Suggestions)
當工程師編寫程式碼或鍵入自然語言註解時,Amazon Q 會綜合分析作用中檔案、游標位置、引用模組及相鄰檔案內容,在游標後方以灰色斜體虛字呈現預測程式碼。
常用快捷鍵對照表
| 操作行為 | macOS 快捷鍵 | Windows / Linux 快捷鍵 |
|---|---|---|
| 採納整段推薦程式碼 | Tab | Tab |
| 僅採納下一個單字 | Cmd + 向右方向鍵 | Ctrl + 向右方向鍵 |
| 切換至下一組建議 | 向右方向鍵(或 Option + ]) | 向右方向鍵(或 Alt + ]) |
| 切換至上一組建議 | 向左方向鍵(或 Option + [) | 向左方向鍵(或 Alt + [) |
| 拒絕 / 略過當前建議 | Esc 或直接繼續鍵入 | Esc 或直接繼續鍵入 |
| 手動強制觸發建議 | Option + C | Alt + C |
實務程式碼生成範例
在開發 Python 非同步 HTTP 公用程式時,只要定義清楚具型別標記的函式簽章與 Docstring 註解,Amazon Q 便能直接產生完整的重試邏輯:
import aiohttp
import asyncio
from typing import Dict, Any, Optional
# 藉由行內註解引導 Amazon Q Developer 生成邏輯:
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.
"""
# 按下 Tab 鍵即可直接接受 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
對話面板與行內就地對話
針對架構層級的重構或跨模組任務,可開啟 Amazon Q 專屬對話視窗:
- 擴充上下文關聯(
@workspace與選取區塊): Amazon Q 能自動讀取作用中檔案的路徑與語法。在對話中附加特定檔案或選取編輯器中的關鍵邏輯,可詢問如「分析這段演算法的時間複雜度」或「將此巢狀回呼重構為串流處理」。 - 編輯器行內對話(Inline Chat): 反白程式碼區塊後啟動行內對話,在程式碼上方浮現的提示列中輸入修改需求(例如「加入參數邊界檢查與防禦性邏輯」),AI 會直接於原始檔案中顯示比對差異,避免視窗切換中斷思考。
- 單元測試一鍵生成(
/test): 選取目標函式後輸入/test,Amazon Q 會評估邊界案例與 Mock 相依性,自動產出符合專案測試框架(如 JUnit 5、pytest 等)的測試案例。 - 跨檔案代理功能開發(
/dev): 輸入如/dev 新增以 Redis 權杖桶為基礎的 API 限流中介軟體,Amazon Q 軟體開發代理會建立實作計畫、產生全新檔案、修改路由設定,並提供完整 Git Diff 供審查。
開源來源追蹤與授權標示(Reference Tracker)
若 Amazon Q 產生的程式碼與公開開源訓練資料高度相符,內建的 Reference Tracker 會主動跳出通知,列出開源專案儲存庫 URL 與授權條款(如 MIT、Apache 2.0、GPL 等)。在企業專業版環境下,管理者可於主控台設定強制原則,阻斷與公開開源專案吻合的建議,以維護企業智慧財產權合規。
3. 自動化安全弱點掃描與一鍵修復
傳統靜態應用程式安全測試(SAST)常排定於 CI/CD 後段,導致工程師在撰寫程式碼數小時甚至數天後才需回溯修正。Amazon Q Developer 將資安防線推展至 IDE 編程階段。
掃描範圍與核心檢測引擎
安全分析結合了生成式 AI 推理與由 Amazon CodeGuru 探測器庫驅動的規則推理引擎,全面涵蓋以下高風險面向:
- OWASP Top 10 安全弱點: SQL 注入、跨網站腳本(XSS)、XML 外部實體注入(XXE)、不安全反序列化等。
- 機密憑證外洩風險: 原始碼中寫死的 AWS AccessKey、資料庫連線字串、JWT 簽署私密金鑰與憑證。
- 系統資源與權限配置缺失: 目錄遍歷路徑竄改、弱雜湊演算法(MD5/SHA1)、未妥善關閉的檔案資料流、過於寬鬆的檔案讀寫權限。
- 基礎設施即程式碼(IaC)缺失: AWS CloudFormation 範本或 AWS CDK 結構中不合規的 S3 儲存貯體或未受限的安全群組。
執行安全掃描操作流程
工程師可運用兩種模式發動掃描:
- 自動背景掃描(Auto-Scan): 於 IDE 設定中開啟後,每當儲存檔案時便自動在背景執行輕量分析。
- 手動全專案 / 檔案掃描:
- 於 VS Code 或 JetBrains 開啟待檢視的專案工作區。
- 點擊 IDE 底部狀態列的 Amazon Q 圖示,或於對話面板中點選命令。
- 選擇 Run Security Scan(或在對話面板鍵入「對此工作區進行安全掃描」)。
- 擴充套件會將專案程式碼打包(上限通常為 100 MB,自動排除測試目錄與編譯輸出),並於背景啟動深度審查。
檢視弱點詳情與套用修復方案
掃描完成後,偵測結果會彙整於 IDE 原生的 「問題(Problems)」 視窗,並以通用弱點評分系統(CVSS)標示嚴重性:Critical、High、Medium、Low、Info。
[Problems - 專案根目錄]
└── src/api/user_controller.py
└── [High] 第 42 行: CWE-89 - 偵測到拼接字串導致潛在 SQL 注入弱點
點擊特定條目即可於 Amazon Q 面板開啟診斷面板:
- 根本成因分析: 說明未受信任的外部輸入如何滲透至資料庫查詢執行層。
- CWE 標準對應: 標註對應的 MITRE CWE 弱點識別碼。
- 自動化修復補丁(Suggested Remediation): 產生改用參數化查詢或 ORM 物件映射的完整程式碼差異。
- 一鍵套用修復: 點選 Apply Fix 或 Insert at cursor,程式碼即直接置換於檔案中,存檔後即可再次驗證排除警告。
4. 舊版系統現代化:Java 跨版本遷移與自動化工作流程
在企業級系統維護中,跨越主要語言版本(如由 Java 8 遷移至 Java 17/21)向來耗時費工。Amazon Q Developer 程式碼轉換代理(Agent for Code Transformation) 能接管依賴衝突解決、過時 API 重寫與本機回歸測試的繁重任務。
支援的遷移路徑與技術環境
| 原始版本 | 目標支援版本 | 主要專案建置工具 |
|---|---|---|
| Java 8 | Java 17、Java 21 | Apache Maven(v3.8 及以上) |
| Java 11 | Java 17、Java 21 | Apache Maven(v3.8 及以上) |
| Java 17 | Java 17(依賴庫翻新)、Java 21 | Apache Maven(v3.8 及以上) |
| Java 21 | Java 21(相依套件維護更新) | Apache Maven(v3.8 及以上) |
| .NET Framework(Windows) | .NET 8(跨平台 Linux 遷移) | MSBuild / Visual Studio |
Java 程式碼轉換前置條件
在啟動轉換任務前,必須確認本地端開發環境滿足以下規範:
- 本地端 Maven 基礎建置無誤: 專案於目前語言版本下必須能成功執行
mvn clean compile。 - 已安裝對應來源 JDK: 本地端必須安裝與來源版本匹配的 JDK(例如欲轉換 Java 8 專案,本地必須具備 JDK 8 執行環境並於 IDE 內設定正確)。
- 單元測試不依賴私有內部網路: 轉換期間執行的測試案例不可連線至未模擬的內部資料庫、VPC 私有端點或外部線上服務。
- 專案編碼與外掛相容性: 原始碼檔案必須採用 UTF-8 編碼;避免在 Maven 建置流程中使用打包非 Java 程式碼的混合外掛(如使用
frontend-maven-plugin於 Maven 內執行 NodeJS 建置)。 - 雲端端點網路連線: 本機環境必須能穩定連線至 Amazon S3 端點以傳遞構件。
程式碼自動遷移標準生命週期
程式碼轉換流程包含嚴謹的本機預先驗證、雲端重構及回歸測試閉環:
flowchart TD
A["1. 發起轉換工作 (/transform)"] --> B["2. 本地端 Maven 預編譯檢查"]
B --> C["3. 加密上傳至專屬隔離環境"]
C --> D["4. AI 分析 AST 語法樹並執行批次重構"]
D --> E["5. 目標 JDK 編譯並執行現有單元測試"]
E --> F["6. 下載差異修補檔至 .aws/transform"]
F --> G["7. IDE 雙欄 Diff 審查與合併"]
步驟一:於 IDE 觸發轉換任務
在 VS Code 或 IntelliJ IDEA 的 Amazon Q 對話框中輸入指令:
/transform
或由工具選單開啟 Amazon Q: Code Transformation 視窗。在導引面板中指定欲轉換的模組,並選取目標執行環境(如 Java 17 或 Java 21)。
步驟二:本機預先建置驗證
Amazon Q 會自動叫用本機 Maven 建置程序,檢驗專案結構完整性並擷取抽象語法樹(AST)。若專案在現有 JDK 下本身無法編譯通過,任務將直接中止並呈現錯誤記錄,以防浪費運算資源。
步驟三:安全傳輸與智慧重構
通過預檢後,程式碼構件將經端到端加密上傳至專屬的隔離安全環境,由轉換代理執行階層式現代化改造:
- 相依套件升級: 自動剖析
pom.xml,更新編譯外掛,升級主流框架版本(如由 Spring Boot 2.x 升級至 Spring Boot 3.x),並將停產套件更換為目標 JDK 相容版本。 - API 與語法現代化: 批次重寫過時或已移除的 API(例如置換過時的 JAXB 匯入、將
java.util.Date替換為現代java.time物件、將舊式匿名類別或迴圈遍歷改寫為 Stream 串流寫法)。 - 安全相依性複查: 新引進的套件版本會自動比對弱點庫,避免升級過程中引進已知 CVE 漏洞。
步驟四:目標版本編譯與單元測試回歸
代理在目標 JDK 環境下進行編譯,並執行專案原有的單元測試。若因函式簽章更動而出現編譯錯誤,代理會啟動多輪自我修正迴圈,直至成功編譯且全數單元測試通過為止。
步驟五:於 IDE 中檢視變更並合併
處理完成後,系統會將差異修補檔與摘要報告下載至專案根目錄的 .aws/transform 目錄:
- 開啟 Transformation Summary 查看套件升級清單、變更檔案及測試數據。
- 透過 IDE 內建的雙欄比對檢視器逐一確認變更。
- 點選 Accept changes 將修改合併至本機工作目錄,完成升級流程。
5. 架構與版本評估:免費版與專業版差異比較
在規劃團隊導入時,架構主管需全面評估身分認證、預算成本與用量限制:
| 評估維度 | 個人免費版(AWS Builder ID) | 企業專業版(每人每月 $19) |
|---|---|---|
| 登入身分驗證 | 個人 AWS Builder ID(免綁 AWS 帳戶) | AWS IAM Identity Center(企業 SSO:Okta、Entra ID 等) |
| 即時行內程式碼建議 | 包含(無額度限制) | 包含(無額度限制) |
| IDE 對話諮詢與解釋 | 包含(無額度限制) | 包含(無額度限制) |
| 安全弱點掃描與修復 | 包含(標準專案掃描) | 包含(支援企業自訂規則與即時自動掃描) |
代理人特性開發任務(/dev) | 每人每月 50 次請求 | 每人每月 400 次請求(按組織帳戶池化共享) |
程式碼跨版本遷移(/transform) | 每月 1,000 行程式碼(體驗額度) | 每人每月 4,000 行程式碼(按組織帳戶池化共享) |
| 程式碼轉換超額費用 | 不可擴充(達到上限即止) | 超額部分每行收費 $0.003 |
| 資料隱私與模型訓練原則 | 使用者內容可能用於服務改善(可選擇關閉) | 明確承諾絕不使用客戶資料訓練底層基礎模型 |
| 智慧財產權保障(IP Indemnification) | 不提供侵權補償 | 包含完整的版權侵權免責賠償保障 |
| 集中管理控制台 | 無集中管理介面 | 提供 AWS 管理控制台、用量儀表板與授權條款過濾原則 |
6. 企業實務最佳實踐與決策要點
為確保導入過程兼顧工程生產力與系統穩定性,建議遵循以下實務方針:
- 完備的單元測試是自動化遷移的基石: 程式碼轉換代理仰賴現有測試案例確認商業邏輯完整性。在執行
/transform前,務必補強核心功能的測試覆蓋率。 - 安全修復建議須結合業務情境審查: 雖然 Amazon Q 產生的安全修復能有效解決語法與架構層面的瑕疵,工程師仍須確認修復邏輯是否影響特有的業務權限檢查或例外捕捉機制。
- 撰寫精確且具結構的行內提示: 在程式碼中撰寫註解時,應明確標示輸入輸出結構、例外邊界與實作目的。清楚具體的註解能大幅提升程式碼建議的精確度。
- 商業產品務必啟用開源授權追蹤: 開發商業專案時,務必保持 Reference Tracker 啟用狀態。若生成的程式碼涉及 GPL 等嚴格授權條款,需經由法務規章評估後再行納入。
- 提前因應 2027 年工具轉型期程: 考量 2027 年 4 月 30 日的外掛程式終止支援時程,研發主管在享受當前效率紅利的同時,應密切關注 AWS 官方新技術推展,評估後續平穩轉型至 Kiro 等新一代平台的長期路徑。
參考資料
- What is Amazon Q Developer? - Amazon Q Developer
- Using Amazon Q Developer in the IDE - Amazon Q Developer
- Installing the Amazon Q Developer extension or plugin in your IDE - Amazon Q Developer
- Chatting with Amazon Q Developer about code - Amazon Q Developer
- Reviewing code with Amazon Q Developer - Amazon Q Developer
- Starting a code review with Amazon Q Developer - Amazon Q Developer
- Addressing code issues with Amazon Q Developer - Amazon Q Developer
- Upgrading Java versions with Amazon Q Developer - Amazon Q Developer
- Transforming code in the IDE with Amazon Q Developer - Amazon Q Developer
- Tiers of service for Q Developer – Free and Pro - Amazon Q Developer
- AI for Software Development – Amazon Q Developer Pricing – AWS