一般問題

問:什麼是 Amazon CodeGuru?

Amazon CodeGuru 是採用機器學習技術的開發人員工具,能針對增進程式碼的品質提供智慧型建議,並且找出應用程式之中最昂貴的程式碼行。

問:Amazon CodeGuru 可以用來做什麼?

Amazon CodeGuru 有兩個元件:Amazon CodeGuru Reviewer 和 Amazon CodeGuru Profiler。Amazon CodeGuru Reviewer 使用機器學習來識別應用程式開發過程中的關鍵問題和難以發現的錯誤,以提高程式碼品質。Amazon CodeGuru Profiler 可最佳化生產環境中執行的應用程式效能,並識別最昂貴的程式碼行,從而顯著降低營運成本。

問:如何開始使用 Amazon CodeGuru?

Amazon CodeGuru 現在已正式上市。您可以在 Amazon CodeGuru 主控台中立即開始使用。

若要開始使用 Amazon CodeGuru Reviewer,請登入 Amazon CodeGuru Reviewer 主控台,您可以在其中關聯 GitHub、GitHub Enterprise、Bitbucket 或 AWS CodeCommit 上的現有程式碼儲存庫。一次設定之後,Amazon CodeGuru Reviewer 即可開始分析程式碼,並直接在提取請求或程式碼儲存庫內提供程式碼改進建議。

您也可以在幾分鐘內開始對應用程式進行效能分析。若要開始使用 Amazon CodeGuru Profiler,請登入 Amazon CodeGuru Profiler 主控台,您可在此設定應用程式的分析群組。在命令列上使用分析代理程式啟動您的應用程式,或按照下列步驟使用描述的自訂方法之一。您可以讓 Amazon CodeGuru Profiler 持續執行,以便其可以主動擷取即時應用程式中的效能問題。

問︰Amazon CodeGuru 可在哪些 AWS 區域使用?

若要查看支援的 AWS 區域,請瀏覽所有 AWS 全球基礎架構的 AWS 區域表。如需詳細資訊,請參閱 AWS 一般參考中的區域和端點

Amazon CodeGuru Reviewer

問:什麼是 Amazon CodeGuru Reviewer?

Amazon CodeGuru Reviewer 是一種自動化程式碼審查服務,該服務可識別嚴重缺陷,以及與採用 Java 程式碼的程式碼最佳實務的偏差。它可掃描提取請求中的程式碼行,並根據從大型開放原始碼專案,以及 Amazon 程式碼庫中學習到的標準提供智慧建議。Amazon CodeGuru Reviewer 與廣泛使用的開放原始碼控制系統 (包括 GitHub、GitHub Enterprise、Bitbucket 和 AWS CodeCommit) 上的現有程式碼審查工作流程無縫整合,並提供切實可行的建議以提高程式碼品質。

問:支援哪些程式設計語言和開放原始碼儲存庫?

Amazon CodeGuru Reviewer 目前支援儲存在 GitHub、GitHub Enterprise、Bitbucket 和 AWS CodeCommit 儲存庫中的 Java 程式碼。

問:Amazon CodeGuru Reviewer 偵測到什麼類型的問題?

Amazon CodeGuru Reviewer 可檢查並行問題、潛在的競爭條件、未經處理或惡意的輸入、對敏感資料 (如登入資料) 的不當處理、資源洩漏,還會偵測並行代碼中的競爭條件和鎖死。它還建議 AWS 和 Java 最佳實務,並偵測可合併的複製程式碼,以提高程式碼的可維護性。
問:如何開始使用 Amazon CodeGuru Reviewer?

造訪 Amazon CodeGuru 主控台,將 Amazon CodeGuru Reviewer 建議直接整合至您的程式碼提取請求中。您可以透過造訪 CodeGuru 主控台,並按照關聯 AWS CodeCommit、GitHub、GitHub enterprise 和 BitBucket 儲存庫的步驟開始操作,以開始接收 Amazon CodeGuru Reviewer 的建議。啟用後,Amazon CodeGuru Reviewer 即會自動提供智慧建議,作為連線儲存庫產生的提取請求的註解。

問:Amazon CodeGuru Reviewer 是否可以存取我的程式碼?

Amazon CodeGuru Reviewer 需要唯讀存取您的程式碼,以便產生建議。我們將您的信任、您內容的隱私和安全性放在第一優先,而且實作適當的控制 (包括傳輸加密),以避免未授權人員存取或公開您的內容,同時確保對內容的使用絕對遵守我們對您所做的承諾。如需詳細資訊,請參閱 資料隱私權常見問答集

問:Amazon CodeGuru Reviewer 是否會保留我的程式碼副本?

否。Amazon CodeGuru Reviewer 不會儲存您的源程式碼。

問:Amazon CodeGuru Reviewer 如何接受訓練以提供智慧建議?

Amazon CodeGuru Reviewer 使用規則採擷和受監督的機器學習模型進行訓練,這些模型採用邏輯迴歸和神經網路的組合。

例如,在訓練與 AWS 最佳實務之間的偏差時,Amazon CodeGuru Reviewer 使用搜尋技術和本機敏感模型,對包含 AWS API 叫用的提取請求採擷 Amazon 程式碼庫。它著眼於旨在提高程式碼品質的程式碼變更,並將其與文件資料進行交叉引用。因此建立一組新規則,在審查您的程式碼時,Reviewer 會向您推薦這些規則作為最佳實務。
在訓練資源和敏感資料洩漏期間,它將對所有使用該資源或敏感資料的程式碼路徑進行完整的程式碼分析,建立代表這些功能或敏感資料的功能集,然後將其用作邏輯迴歸模型和卷積神經網路 (CNN) 的輸入。

對於基於規則的模型和基於機器學習的模型,Amazon CodeGuru Reviewer 都將您提供的回饋用作標籤,並反覆提高程式碼偵測器的品質。

Amazon CodeGuru Profiler

問:什麼是 Amazon CodeGuru Profiler?

Amazon CodeGuru Profiler 可協助開發人員輕鬆了解其應用程式的執行階段行為,提高效能並降低基礎架構成本。Amazon CodeGuru Profiler 將分析應用程式執行時間描述檔,並提供智慧建議和視覺化,指導開發人員如何提高其程式碼中最相關部分的效能。

問:什麼是分析群組?

分析群組是您建立的邏輯分組。它代表一個應用程式的邊界。例如,在微型服務架構中,描述檔將彙集您指派給微型服務的描述檔,並為所有微型服務產生一個描述檔。

問:我已經將大量日誌記錄整合至我的程式碼中。還需要分析嗎?

日誌記錄執行時間僅適用於有限的案例集,因為日誌記錄只能監控延遲 (而不是 CPU 使用率),並且由於開發人員必須記錄應用程式中的每項功能 (而不影響應用程式效能),讓開發人員在沒有必要工具的情況下,監控生產中的應用程式並進行疑難排解,因此實作起來很耗時。這是需要分析的情況:Amazon CodeGuru Profiler 旨在收集有關該應用程式行為中發生的所有事件資料,而不管情況如何。CodeGuru Profiler 使用常見的效能低下的知識庫,來自動發現即時應用程式中影響其效能的代碼模式。開發人員隨後則可按照提供的建議修正問題。

問:Amazon CodeGuru Profiler 與傳統的 APM 和獨立的分析工具有何不同?

傳統的 APM 提供有關監控、追蹤和應用程式效能的實用資料。Amazon CodeGuru Profiler 透過提供應用程式執行階段資料視覺化,以及針對發現的效能問題的可行建議來補充這些 APM 功能。它還使用機器學習來偵測和警示您的應用程式描述檔中的異常,並指出異常的程式碼行。使用 Amazon CodeGuru Profiler,您可以輕鬆查看最有可能實現效能最佳化以及潛在節省的程式碼部分,並獲得有關如何解決這些問題的指南,而無須具有精深的效能工程背景。Amazon CodeGuru Profiler 可以分析 EC2 執行個體以及容器和無伺服器運算平台,包括 AWS Lambda。此外,一些獨立的分析工具被設計為僅在測試環境中執行,而 Amazon CodeGuru Profiler 則被設計為在生產中的生產流量負載下持續執行,且不對應用程式產生影響。在排解生產中的操作問題 (包括在裸機主機上執行時),此功能很實用。

問:可以分析哪些應用程式類型?

Amazon CodeGuru Profiler 可分析 Amazon EC2 上託管的應用程式、Amazon ECS 和 Amazon EKS 上執行的容器化應用程式,以及 AWS Fargate 和 AWS Lambda 上執行的無伺服器應用程式。

問:CodeGuru Profiler 如何影響 AWS Lambda 上託管的應用程式的效能?

Amazon CodeGuru Profiler 的代理程式使用分配給 AWS Lambda 函數的資源 (CPU、記憶體)。調整為在程序內執行緒執行時對應用程式效能的影響最小。若您的應用程式佔用 AWS Lambda 函數的大部分資源,則請評估增加的資源以使代理程式正常運作。

問:支援哪些程式設計語言?

Amazon CodeGuru Profiler 目前支援 JVM 應用程式,包括 Java、Scala、Kotlin 等。

問:Amazon CodeGuru Profiler 如何運作?

Amazon CodeGuru Profiler 由三部分組成:代理程式、分析工具服務和智慧建議。該代理程式透過命令列上的應用程式啟動,並且作為應用程式一部分的程序內執行緒來執行。它從執行代理程式的每個服務執行個體中獲取資料,然後每 10 分鐘將資料傳送至分析工具服務,然後對其進行匯總。Amazon CodeGuru Profiler 則以互動式火焰圖發佈描述檔資料,讓您可以視覺化應用程式的效能。Amazon CodeGuru Profiler 還會持續掃描分析的資料,並將其與 Amazon 和效能工程最佳實務比較,以及在發現效能問題時主動向您提醒智慧建議。此外,它還使用機器學習來持續分析應用程式執行時間資料,在偵測到應用程式描述檔異常時發出警示並指向異常程式碼行。

Product-Page_Standard-Icons_01_Product-Features_SqInk
進一步了解定價

瀏覽 Amazon CodeGuru 定價頁面。

進一步了解 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
註冊免費帳戶

立即存取 AWS 免費方案 

註冊 
Product-Page_Standard-Icons_03_Start-Building_SqInk
開始在主控台進行建置

開始在 AWS 管理主控台使用 Amazon CodeGuru 進行建置。

登入