什麼是 AWS CodeCommit? - AWS CodeCommit

AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可繼續正常使用此服務。了解更多」

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

什麼是 AWS CodeCommit?

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

注意

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

此為 HIPAA 合格服務。如需 AWS、1996 美國健康保險流通與責任法案 (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服務一起使用,並與其他存儲庫 parallel 使用。如需詳細資訊,請參閱產品與服務整合 AWS CodeCommit

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

  • 使用您已經知道的 Git 工具。CodeCommit支持 Git 命令以及它自己的AWS CLI命令和 API。

CodeCommit,Git,並選擇適合您需求的AWS服務

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

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

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

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

    git ls-remote | wc -l
  • Powershell:

    git ls-remote | Measure-Object -line

CodeCommit 如何運作?

CodeCommit對於基於 GIT 的存儲庫的用戶來說很熟悉,但即使是那些不熟悉的用戶也應該找到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 主控台來追蹤和管理您的儲存庫。

與 Amazon S3 中的文件版本控制有何CodeCommit不同?

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

如何開始使用 CodeCommit?

開始使用 CodeCommit:

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

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

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

我可以在哪裡進一步了解 Git?

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

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

  • Git 沉浸式,一個try-it-yourself導遊,引導你通過使用 Git 的基礎知識。由 Neo Innovation, Inc. 出版。

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

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

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