AWS CodeCommit 不再提供給新客戶使用。AWS CodeCommit 的現有客戶可以繼續正常使用該服務。進一步了解
- 開發人員工具›
- AWS CodeCommit›
- 常見問答集
AWS CodeCommit 常見問答集
一般問題
什麼是 AWS CodeCommit?
AWS CodeCommit 是一種安全、高度可擴展的受管原始程式碼控制服務,可讓團隊輕鬆透過程式碼進行協作。AWS CodeCommit 讓您無須操作自己的原始程式碼控制系統,也不用擔心基礎設施的擴展能力。您可以使用 AWS CodeCommit 存放從程式碼到二進位程式碼之間的任何項目,而且還能與現有的 Git 工具完美搭配。
什麼是 Git?
Git 是一種開放原始碼分散式版本控制系統。若要使用 AWS CodeCommit 儲存庫,您要使用 Git 命令列界面 (CLI) 或任何可用的 Git 用戶端。如需進一步了解 Git,請參閱 Git 文件。如需進一步了解如何搭配使用 AWS CodeCommit 和 Git,請參閱 Getting Started with AWS CodeCommit。
哪些人應該使用 AWS CodeCommit?
AWS CodeCommit 是專為需要安全、可靠和可擴展的原始程式碼控制系統來存放和進行程式碼版本控制的軟體開發人員而設計。此外,AWS CodeCommit 還適用於需要容易使用、具有版本控制功能的全受管資料存放區的任何人。例如,IT 管理員可以使用 AWS CodeCommit 存放其指令碼和設定。Web 設計人員可以使用 AWS CodeCommit 存放 HTML 頁面和影像。
AWS CodeCommit 與其他 Git 原始程式碼控制系統有什麼不同?
AWS CodeCommit 提供多種其他 Git 原始程式碼控制系統沒有提供的功能:
- 全受管 – AWS CodeCommit 讓您無須託管、維護、備份和擴展自己的原始程式碼控制伺服器。
- 安全 – AWS CodeCommit 會自動加密傳輸中和靜態的檔案。AWS CodeCommit 已經與 AWS Identity and Access Management (IAM) 整合,讓您能夠指派使用者特定許可給儲存庫。
- 高可用性 – AWS CodeCommit 建置在擴展性高、冗餘且耐用的 AWS 服務上,例如 Amazon S3 和 Amazon DynamoDB。
- 可擴展性 – AWS CodeCommit 可讓您儲存任意數量的檔案,儲存庫沒有大小限制。
- 更快速的開發生命週期 – AWS CodeCommit 讓儲存庫更接近 AWS 雲端中的建置、分段和生產環境。這能讓您增加開發生命週期的速度和頻率。
AWS CodeCommit 與版本控制的 S3 儲存貯體的差異為何?
AWS CodeCommit 專為協作軟體開發而設計。它管理多個檔案間的批次變更、提供平行分支及包含版本差異。相較之下,Amazon S3 版本控制支援恢復個別檔案的舊版本,但是不支援追蹤跨多個檔案的批次變更或協作軟體開發所需的其他功能。
使用 AWS CodeCommit
如何建立儲存庫?
您可以從 AWS 管理主控台或使用 AWS Command Line Interface (AWS CLI)、AWS SDK 或 AWS CodeCommit API 建立儲存庫。
如何在儲存庫中更新檔案?
您可以直接從 CodeCommit 主控台編輯檔案或使用 Git 處理儲存庫。例如 Git 命令,您可以使用 git clone 命令產生 AWS CodeCommit 儲存庫的本機副本。在本機檔案進行變更,當您準備好儲存變更時,使用 git commit 命令。最後,使用 git push 命令將變更上傳至 AWS CodeCommit 儲存庫。如需逐步說明,請參閱 Getting Started with AWS CodeCommit。
如何將現有儲存庫匯入 AWS CodeCommit?
您可以使用 Git 將任何現有的 Git 儲存庫匯入 AWS CodeCommit。對於 Subversion 和 Perforce 等其他儲存庫,您可以使用 Git 匯入工具先將它遷移至 Git 儲存庫。如需匯入 Git 儲存庫的逐步說明,請參閱 Migrate an Existing Repository to AWS CodeCommit。 如需匯入本機或未進行版本控制內容的逐步說明,請參閱 Git 移轉文件。
AWS CodeCommit 目前支援哪些 Git 操作?
AWS CodeCommit 目前支援 clone、pull、push 和 fetch 命令。
AWS CodeCommit 是否支援 Git 子模組?
是。AWS CodeCommit 可用於包含子模組的 Git 儲存庫。
使用 AWS CodeCommit 時有哪些服務限制?
有關服務限制的資訊,請參閱 Limits。
我可以在 CodeCommit 存放的單一檔案大小上限為何?
儲存庫中的單一檔案大小不能超過 2 GB。
如何備份儲存庫?
如果您執行完整的 git clone 並獲得儲存庫的本機副本,您可以使用該副本恢復資料。如果您需要其他備份,有很多方法可以做。其中一個方法就是在您的備份伺服器上安裝 Git,並執行排程的任務定期使用 git clone 命令製作儲存庫的快照。如果您只想複製遞增值,可以使用 git pull 代替 git clone。請注意,根據您設定備份伺服器和輪詢頻率的方法,使用這些操作可能需要支付額外的使用者和/或請求費用。
如何恢復已刪除的 AWS CodeCommit 儲存庫?
刪除 AWS CodeCommit 儲存庫是無法復原的破壞性單向操作。若要恢復已刪除的儲存庫,您將需要再次建立儲存庫,然後使用備份或完整複製產生的本機副本上傳資料。建議您使用 IAM 政策和 MFA 防護限制可刪除儲存庫的使用者。如需詳細資訊,請參閱常見問答集中安全性區段的「是否可使用 AWS Identity and Access Management (IAM) 管理 AWS CodeCommit 的存取權限?」問題。
如何在 AWS CodeCommit 管理程式碼審查?
CodeCommit 支援程式碼檢閱且可讓您對程式碼分支的權限。如需程式碼檢閱或分支層級權限方面的說明,請參閱我們的文件。
如何將持續整合系統與 AWS CodeCommit 整合在一起?
持續整合 (CI) 系統可以設定為使用 Git 從 AWS CodeCommit 提取程式碼。如需使用 CI 系統搭配 AWS CodeCommit 的範例,請參閱我們部落格文章上有關 AWS CodeCommit 與 Jenkins 整合的內容。
如何使用 AWS CodeCommit 建立 Webhook?
您可以在 Amazon SNS 主控台,建立有 HTTP 端點的 SNS 主題和 Webhook 的預期 URL。然後您可以從 AWS CodeCommit 主控台,將該 SNS 主題設定到使用觸發程序的儲存庫事件。此外,使用 AWS Chatbot 的客戶可以設定要傳送至 Slack 頻道或 Amazon Chime 聊天室的通知。如需詳細資訊,請參閱此處。
是否可取得個人帳戶執行 AWS CodeCommit Git 操作和發出 API 呼叫的歷史記錄,以便安全分析和操作故障排除?
是。您可以在 AWS CloudTrail 主控台中檢閱最新的 CodeCommit 事件,包括 Git 作業和 API 叫用。如需時間的持續記錄,您可以在 Amazon S3 儲存貯體中建立追蹤和記錄事件。如需詳細資訊,請參閱 Logging AWS CodeCommit API Calls with AWS CloudTrail。
安全性
是否可使用 AWS Identity and Access Management (IAM) 管理 AWS CodeCommit 的存取權限?
是。AWS CodeCommit 支援資源級許可。對於每個 AWS CodeCommit 儲存庫,您可以指定使用者可執行的動作。您還能在 CodeCommit 動作指定 AWS Multi-Factor Authentication (MFA)。這可讓您增加更多一層的保護,以避免發生刪除儲存庫等破壞性的動作。除了 AWS CodeCommit API,您還能指定 git pull 和 git push 作為控制 Git 用戶端存取的動作。例如,您可以允許使用者在儲存庫存取 git pull 但不能存取 git push,以建立該儲存庫的唯讀使用者。如果有關搭配使用 IAM 與 AWS CodeCommit 的詳細資訊,請參閱 AWS CodeCommit 的驗證和存取控制。如需使用 MFA 驗證 API 存取的詳細資訊,請參閱 Configuring MFA-Protected API Access。
AWS CodeCommit 支援哪些通訊協定?
您可以使用 HTTPS 或 SSH 通訊協定或兩者與 AWS CodeCommit 進行通訊。若要使用 HTTPS,首先要安裝 AWS CLI。AWS CLI 會安裝一個可由 AWS 登入資料設定的 Git 登入資料協助程式。它會自動使用 Signature Version 4 簽章規格將所有 HTTPS 請求簽署至 AWS CodeCommit。若要使用 SSH,使用者要建立自己的公有私有金鑰對,然後將其公有金鑰新增至 IAM 使用者。私有金鑰會加密與 AWS CodeCommit 的通訊。如需設定 HTTPS 和 SSH 存取的逐步說明,請參閱 Setting up AWS CodeCommit 頁面。
若要存取 AWS CodeCommit,應開啟防火牆的哪個連接埠?
您必須在連接埠 22 (SSH) 或連接埠 443 (HTTPS) 上開啟到 AWS CodeCommit 服務終端節點的對外存取。
如何加密 AWS CodeCommit 中的儲存庫?
儲存庫會在靜態時自動加密。客戶不需要採取任何動作。AWS CodeCommit 使用 AWS Key Management Service (KMS) 加密儲存庫。當您建立第一個儲存庫時,會在您的 AWS 帳戶下建立一個 AWS 受管的 CodeCommit 金鑰。如需詳細資訊,請參閱 Encryption for AWS CodeCommit Repositories。
是否可以啟用儲存庫的跨帳户存取權?
是。您可以在 AWS 帳戶建立 IAM 角色,將儲存庫存取權委派給其他 AWS 帳戶中的 IAM 使用者。之後,IAM 使用者可以將 AWS CLI 設定為使用 AWS Security Token Service (STS),並在執行命令時擔任此角色。如需詳細資訊,請參閱 AWS CLI 文件中的 Assuming a Role。
區域
AWS CodeCommit 支援哪些區域?
請參閱區域產品和服務,了解 CodeCommit 在不同區域的詳細供應情形。
計費
AWS CodeCommit 的費用是多少?
AWS CodeCommit 的收費是每月每個作用中使用者收取 1 USD 的費用。對於每個作用中使用者,您的帳戶可在該月獲得每月 10 GB 的儲存和 2,000 個 Git 請求的額外限額。儲存和 Git 請求的未使用限額不能延續到之後的月份。如果您需要為使用者準備更多儲存或 Git 請求,額外的用量將以每月每 GB 0.06 USD 和每 Git 請求 0.001 USD 計費。使用者可以根據需要存放任何數量的 Git 儲存庫。您的用量會針對所有區域按月計算,且自動套用到帳單。有關其他詳細資訊,請參閱定價頁面。
AWS CodeCommit 作用中使用者的定義為何?
作用中使用者是指透過 Git 請求或使用 AWS 管理主控台,在該月存取 AWS CodeCommit 儲存庫的任何唯一 AWS 身分 (IAM 使用者/角色、聯合身分使用者或根帳戶)。使用唯一 AWS 身分存取 CodeCommit 的伺服器視為一個作用中使用者。
哪些 Git 請求列入每月限額?
Git 請求包含用於傳輸儲存庫物件的任何推送和提取。如果因為本地和遠端分支處於最新狀態而未傳輸物件時,則該請求不列入 Git 請求允許數量的計算內。