什麼是 AWS CodeCommit? - AWS CodeCommit

什麼是 AWS CodeCommit?

AWS CodeCommit 是由 Amazon Web Services 代管的版本控制服務,可讓您私下在雲端存放和管理資產 (例如,文件、原始程式碼和二進位檔案)。如需 CodeCommit 定價的相關資訊,請參閱​定價

注意

CodeCommit 適用於許多合規計劃。如需 AWS 和合規性工作的詳細資訊,請參閱合規計劃的 AWS 服務範圍

此為 HIPAA 合格服務。如需更多 1996 AWS 美國健康保險流通與責任法案 (HIPAA) 與使用 AWS 服務以處理、儲存和傳輸受保護健康資訊 (PHI) 的詳細資訊,請參閱 HIPAA 概觀

如需此服務和 ISO 27001 (指定安全管理最佳實務的安全性管理標準) 的詳細資訊,請參閱 ISO 27001 概觀

如需有關此服務和支付卡產業資料安全標準 (PCI DSS) 的詳細資訊,請參閱 PCI DSS 概觀

如需此服務的詳細資訊,以及具體說明可保護敏感資訊密碼模組之安全請求的聯邦資訊處理標準 (FIPS) 第 140-2 號公報美國政府標準,請參閱聯邦資訊處理標準 (FIPS) 140-2 概觀Git 連接端點

CodeCommit 簡介​

CodeCommit 是安全、可充分擴展、受管的原始程式碼控制服務,可託管私有的 Git 儲存庫。CodeCommit 可讓您不需要管理自己的原始程式碼控制系統,也不用擔心是否要擴展其基礎設施。從程式碼到二進位檔,CodeCommit 都可以儲存。它支援 Git 的標準功能,可以完美搭配以 Git 為基礎的現有工具一起運作。

CodeCommit 可讓您:

  • 享受 AWS 託管的全受管服務。CodeCommit 提供很高的服務可用性和耐用性,您不需要浪費精力來管理自己的硬體和軟體。無需佈建和擴充硬體,也無需安裝、設定和更新伺服器軟體。

  • 安全地存放程式碼。靜態和傳輸中的 CodeCommit 儲存庫都會加密。

  • 協作處理程式碼。CodeCommit 儲存庫支援提取請求,可讓使用者檢閱彼此的程式碼變更並做註解,之後再合併到分支;也支援通知,可自動將提取請求的相關電子郵件傳送給使用者;還有更多支援。

  • 輕鬆擴展版本控制專案。CodeCommit 儲存庫可以擴展以滿足您的開發需求。此服務可處理具有大量檔案或分支、大型檔案及冗長修訂歷史記錄的儲存庫。

  • 隨時存放任何資料。CodeCommit 不限制儲存庫大小或您可存放的檔案類型。

  • 與其他 AWS 和第三方服務整合。CodeCommit 可保持儲存庫靠近您在 AWS 雲端中的其他生產資源,這有助於增加開發生命週期的速度和頻率。它與 IAM 整合,而且可以與其他 AWS 服務一起使用,還能與其他儲存庫同時運作。如需詳細資訊,請參閱 與 AWS CodeCommit 的產品和服務整合

  • 輕鬆從其他遠端儲存庫遷移檔案。您可以從以 Git 為基礎的任何儲存庫遷移至 CodeCommit。

  • 使用您已知道的 Git 工具。CodeCommit 支援 Git 命令,以及其自己的 AWS CLI 命令和 APIs。

CodeCommit、Git,並會根據您的需求來選擇正確的 AWS 服務

做為 Git 型服務,CodeCommit 非常適合大部分版本控制的需求。沒有檔案大小、檔案類型和儲存庫大小方面的任意限制。不過,Git 存在固有的侷限性,可能對某些操作種類的效能造成負面影響,特別是在經過一段時間之後。有其他 AWS 服務更適合該任務時,避免將其用於這種使用案例,可以避免 CodeCommit 儲存庫的潛在效能下降。您也可以針對複雜儲存庫來最佳化 Git 的效能。以下提供一些使用案例,在其中 Git 以及 CodeCommit 可能不是最適合您的解決方案,或者您可能需要採取其他步驟來最佳化 Git。

使用 案例 描述 可考慮的其他服務
經常變更的大型檔案 Git 使用 Delta 編碼來存放檔案版本之間的差異。例如,如果您變更文件中的幾個字詞,Git 只會存放這些變更過的字詞。如果您有超過 5 MB 的檔案或物件且具有許多變更,Git 可能需要重建大型的 Delta 差異鏈。當這些檔案隨著時間增長,這樣會消耗本機電腦和 CodeCommit 中越來越多的運算資源。 若要對大型檔案進行版本控制,請考慮使用 Amazon Simple Storage Service (Amazon S3)。如需詳細資訊,請參閱 https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html 中的 Amazon Simple Storage Service 開發人員指南使用版本控制
資料庫 Git 儲存庫會隨著時間增長。由於版本控制會追蹤所有變更,任何變更都會增加儲存庫的大小的。換言之,當您遞交資料,即使您刪除遞交中的資料,資料仍會新增到儲存庫。隨著時間需要處理和傳輸的資料越來越多,Git 就會變慢。這對資料庫的使用案例尤其不利。Git 並非專為資料庫而設計。 若要建立和使用不受大小影響而具有一致效能的資料庫,請考慮使用 Amazon DynamoDB。如需詳細資訊,請參閱 Amazon DynamoDB 入門指南
稽核線索 一般而言,稽核線索會保留很長一段時間,並由系統程序以非常頻繁的頻率連續產生。Git 的設計目的是為了安全地存放開發人員群組在開發週期產生的原始程式碼。不斷存放以編寫程式方式產生之系統變更的快速變化儲存庫,在一段時間後效能會下降。 若要存放稽核線索,請考慮使用 Amazon Simple Storage Service (Amazon S3)。

若要稽核 AWS 活動,視您的使用案例而定,請考慮使用 AWS CloudTrailAWS ConfigAmazon CloudWatch

備用內容 Git 的設計目的是為了對開發人員編寫的原始程式碼進行版本控制。您可以推送遞交到兩個遠端儲存庫 (包括 CodeCommit 儲存庫) 做為備份策略。不過,Git 不是專為處理電腦檔案系統、資料庫傾印或類似備份內容的備份而設計的。這樣做可能會降低系統速度,並提高複製和推送儲存庫所需的時間。 如需有關備份到 AWS 雲端的資訊,請參閱備份和還原
大量的分支或參考 當 Git 用戶端推送或提取儲存庫資料時,即使您只需要一個分支,遠端伺服器仍必須傳送所有分支和參考 (例如標籤)。如果您擁有數千個分支和參考,這可能需要一些時間來處理和傳送 (封包協議) 並造成明顯緩慢的儲存庫回應。您擁有越多分支和標籤,這個處理程序就需要越長的時間。我們建議您使用 CodeCommit,但刪除不再需要的分支和標籤。 若要分析 CodeCommit 儲存庫中的參考數量,以判斷不再需要哪些項目,您可以使用下列其中一個命令:
  • Linux, macOS, or Unix 或 Windows 上的 Bash 模擬器:

    git ls-remote | wc -l
  • Powershell:

    git ls-remote | Measure-Object -line

CodeCommit 如何運作?

以 Git 為基礎的儲存庫使用者會覺得 CodeCommit 很熟悉,但即使不熟悉也會發現轉換到 CodeCommit 相當簡單。CodeCommit 提供主控台來輕鬆建立儲存庫,還提供現有儲存庫和分支的清單。只需要幾個簡單的步驟,使用者就可以找到儲存庫的相關資訊並複製到電腦,建立本機儲存庫來進行變更,然後將變更推送到 CodeCommit 儲存庫。使用者可以在本機機器上從命令列工作,或使用以 GUI 為基礎的編輯器。

下圖顯示如何使用您的開發機器、AWS CLI 或 CodeCommit 主控台及 CodeCommit 服務,以建立和管理儲存庫:


        一般 CodeCommit 工作流程

  1. 使用 AWS CLI 或 CodeCommit 主控台來建立 CodeCommit 儲存庫。

  2. 從您的開發電腦上,使用 Git 執行 git clone,並指定 CodeCommit 儲存庫的名稱。這會建立 本機儲存庫 來連接到 CodeCommit 儲存庫。

  3. 在開發機器上使用 本機儲存庫 來修改 (新增、編輯和刪除) 檔案,然後執行 git add,將修改過的檔案暫存在本機。執行 git commit 在本機遞交檔案,然後執行 git push,將檔案傳送到 CodeCommit 儲存庫。

  4. 下載其他使用者所做的變更。執行 git pull 來同步 CodeCommit 儲存庫 中的檔案與 本機儲存庫。這可確保您使用的是最新版本的檔案。

您可以使用 AWS CLI 或 CodeCommit 主控台來追蹤和管理您的儲存庫。

與 CodeCommit 中的檔案版本控制有何不同?Amazon S3

CodeCommit 針對團隊軟體開發而最佳化。它可管理多個檔案之間的批次變更,這些變更可能與其他開發人員所做的變更同時發生。Amazon S3 版本控制支援恢復檔案的舊版本,但並不著重於軟體開發團隊所需的協作檔案追蹤功能。

如何開始使用 CodeCommit?

開始使用 CodeCommit:

  1. 遵循設定 中的步驟來準備您的開發機器。

  2. 遵循入門中一或多個教學課程的步驟。

  3. 中建立CodeCommit版本控制專案,或將版本控制專案遷移至 。CodeCommit

可以在何處進一步了解 Git?

如果您沒聽過 Git,請了解如何使用 Git。以下是一些有用的資源:

  • Pro Git,這是線上版本的 Pro Git 書籍。作者為 Scott Chacon。由 Apress 出版。

  • Git Immersion,這是自己動手做引導教學,帶您認識使用 Git 的基本知識。由 Neo Innovation, Inc. 出版。

  • Git 參考,這是線上快速參考,也可當做更深入的 Git 教學課程。由 GitHub 團隊發行。

  • Git 速查表,含 Git 命令基本語法。由 GitHub 團隊發行。

  • Git 隨身指南。作者為 Richard E. Silverman。由 O'Reilly Media, Inc. 出版。