

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

# 對存取錯誤和 進行故障診斷 AWS CodeCommit
<a name="troubleshooting-ae"></a>

以下資訊可以協助您對與 AWS CodeCommit 儲存庫連線時可能會看到的存取錯誤進行故障診斷。

**Topics**
+ [存取錯誤：當我從 Windows 連線至 CodeCommit 儲存庫時，系統會提示我輸入使用者名稱和密碼](#troubleshooting-ae1w)
+ [存取錯誤：連線至 CodeCommit 儲存庫時，公開金鑰遭拒](#troubleshooting-ae2)
+ [存取錯誤：連線至 CodeCommit 儲存庫時出現「超出速率」或「429」訊息](#troubleshooting-ae3)

## 存取錯誤：當我從 Windows 連線至 CodeCommit 儲存庫時，系統會提示我輸入使用者名稱和密碼
<a name="troubleshooting-ae1w"></a>

**問題：**當您嘗試使用 Git 與 CodeCommit 儲存庫通訊時，您會看到一個對話方塊，提示您輸入使用者名稱和密碼。

**可能的修正：**這可能是 Windows 的內建登入資料管理系統。根據組態的不同，執行以下其中一項：
+ 如果使用 HTTPS 搭配 Git 登入資料，系統不會將 Git 登入資料存放在系統中。請提供 Git 登入資料然後繼續。系統應該不會再次提示您輸入。如需詳細資訊，請參閱[對於使用 Git 登入資料的 HTTPS 使用者](setting-up-gc.md)。
+ 如果您使用 HTTPS 搭配 的登入資料協助程式 AWS CodeCommit，則它與 Windows 登入資料管理系統不相容。選擇**取消**。

  這也可能表示您在安裝適用於 Windows 的 Git 時也安裝 Git Credential Manager。Git Credential Manager 與 中包含的 CodeCommit 登入資料協助程式不相容 AWS CLI。請考慮解除安裝 Git Credential Manager。您也可以安裝和設定 **git-remote-codecommit**做為使用 CodeCommit 登入資料協助程式的替代方案。

  如需詳細資訊，請參閱[AWS CodeCommit 使用 git-remote-codecommit 對 HTTPS 連線的設定步驟](setting-up-git-remote-codecommit.md)、[對於 Windows 上使用 AWS CLI 登入資料協助程式的 HTTPS 連線](setting-up-https-windows.md)及[適用於 Windows 的 Git：我已安裝適用於 Windows 的 Git，但現在拒絕我存取儲存庫 (403)](troubleshooting-ch.md#troubleshooting-windowshttps)。

## 存取錯誤：連線至 CodeCommit 儲存庫時，公開金鑰遭拒
<a name="troubleshooting-ae2"></a>

**問題：**當您嘗試使用 SSH 端點與 CodeCommit 儲存庫通訊時，會出現錯誤訊息，其中包含片語 `Error: public key denied`。

**可能的修正：**此錯誤最常見的原因是您尚未完成 SSH 連接的設定。設定公有和私有 SSH 金鑰對，然後將公有金鑰與您的 IAM 使用者建立關聯。如需設定 SSH 的詳細資訊，請參閱[針對 Linux、macOS 或 Unix 上的 SSH 連線](setting-up-ssh-unixes.md)和[Windows 上的 SSH 連線](setting-up-ssh-windows.md)。

## 存取錯誤：連線至 CodeCommit 儲存庫時出現「超出速率」或「429」訊息
<a name="troubleshooting-ae3"></a>

**問題：**當您嘗試與 CodeCommit 儲存庫通訊時，會顯示「超過速率」或錯誤碼為「429」的訊息。通訊大幅減慢或失敗。

**原因：**無論是來自應用程式、、 AWS CLI Git 用戶端或 的所有 CodeCommit 呼叫 AWS 管理主控台，都會受到每秒請求數上限和整體作用中請求的約束。您無法超過任何 Amazon Web Services 帳戶的允許請求率上限 AWS 區域。如果請求超過最高速率，您會收到錯誤，並且您的 Amazon Web Services 帳戶會暫時調節進一步的呼叫。在限流期間，您與 CodeCommit 的連線會變慢，而且可能會失敗。

**可能的修正：**採取步驟來減少 CodeCommit 的連線或呼叫數量，或分散請求。一些可考慮的方法：
+ **在請求中實作抖動，特別是定期輪詢請求**

  如果您有定期輪詢 CodeCommit 的應用程式，且此應用程式正在多個 Amazon EC2 執行個體上執行，請引入抖動 （隨機延遲量），讓不同的 Amazon EC2 執行個體不會同時輪詢。我們建議從 0 到 59 秒的亂數，在一分鐘的時間範圍內平均分配輪詢機制。
+ **使用事件型架構，而不是輪詢**

  改用事件型架構來取代輪詢，只在發生事件時才進行呼叫。請考慮針對[AWS CodeCommit 事件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#codecommit_event_type)使用 CloudWatch Events 通知來觸發工作流程。
+ **實作 API 和自動化 Git 動作的錯誤重試與指數退避**

  錯誤重試與指數退避可協助限制呼叫率。每個 AWS 開發套件實作自動重試邏輯和指數退避演算法。對於自動化 Git 推送和 Git 提取，您可能需要實作自己的重試邏輯。如需詳細資訊，請參閱[錯誤重試和指數退避 AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)。
+ **在 AWS 支援中心請求提高 CodeCommit 服務配額**

  若想收到服務限制提高，您必須確認您已遵守此處提供的建議，包括實作錯誤重試或指數退避方法。在您的請求中，您還必須提供受限流問題影響的 、 AWS 區域 Amazon Web Services 帳戶和時間範圍。

