

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 对访问错误进行故障排除，以及 AWS CodeCommit
<a name="troubleshooting-ae"></a>

以下信息可帮助您排查在连接 AWS CodeCommit 存储库时遇到的访问错误。

**Topics**
+ [访问错误：当我从 Windows 连接到 CodeCommit 存储库时，系统会提示我输入用户名和密码](#troubleshooting-ae1w)
+ [访问错误：连接到 CodeCommit 存储库时公钥被拒绝](#troubleshooting-ae2)
+ [访问错误：连接到存储库时出现 “超出速率” 或 “429” 消息 CodeCommit](#troubleshooting-ae3)

## 访问错误：当我从 Windows 连接到 CodeCommit 存储库时，系统会提示我输入用户名和密码
<a name="troubleshooting-ae1w"></a>

**问题：**当你尝试使用 Git 与 CodeCommit 仓库通信时，你会看到一个对话框，提示你输入用户名和密码。

**可能的修复措施：**这可能是 Windows 内置的凭证管理系统造成的。根据您的配置，执行以下操作之一：
+ 如果使用 Git 凭证进行 HTTPS 连接，则您的 Git 凭证尚未存储在系统中。请提供 Git 凭证并继续。应该不会再提示您。有关更多信息，请参阅 [适用于使用 Git 凭证的 HTTPS 用户](setting-up-gc.md)。
+ 如果您将 HTTPS 与的凭据助手一起使用 AWS CodeCommit，则它与 Windows 凭据管理系统不兼容。选择**取消**。

  这也可能表明您在安装 Windows 版 Git 时安装了 Git Credential Manager。Git 凭据管理器与 CodeCommit 包含在中的凭证助手不兼容。 AWS CLI考虑卸载 Git Credential Manager。您还可以安装和配置 **git-remote-codecommit** 作为使用 CodeCommit 的凭证辅助程序的替代方法。

  有关更多信息，请参阅 [使用的 HTTPS 连接 AWS CodeCommit 的设置步骤 git-remote-codecommit](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)。

## 访问错误：连接到存储库时出现 “超出速率” 或 “429” 消息 CodeCommit
<a name="troubleshooting-ae3"></a>

**问题：**当您尝试与 CodeCommit 存储库进行通信时，出现一条消息，指示“Rate Exceeded (数量超出限制)”或显示错误代码“429”。通信速度显著减慢或失败。

**原因：**对的所有调用 CodeCommit，无论是来自应用程序、 AWS CLI、Git 客户端还是来自的 AWS 管理控制台，都受每秒最大请求数和活动请求总数的约束。在任何情况下，您都不能超过亚马逊 Web Services 账户允许的最大请求速率 AWS 区域。如果请求超过最大速率，您将收到一个错误，并且系统会对您的 Amazon Web Services 账户的进一步调用执行临时节流操作。在限制期间，您与 CodeCommit 的连接会变慢，并且可能失败。

**可能的修复方法：**采取措施减少连接或呼叫的数量， CodeCommit 或者分散请求的数量。可考虑采用的一些方法：
+ **在请求中实现抖动，尤其是在定期轮询请求中**

  如果您有一个 CodeCommit 定期轮询的应用程序，并且该应用程序在多个 Amazon EC2 实例上运行，请引入抖动（随机延迟），这样不同的 Amazon EC2 实例就不会在同一秒钟进行轮询。我们建议使用 0 到 59 秒的随机数值，以便在 1 分钟的时间范围内均匀分布轮询机制。
+ **使用基于事件的架构而不是轮询**

  使用基于事件的架构而不是轮询，以便仅在事件发生时进行调用。[考虑使用 CloudWatch 事件通知来AWS CodeCommit 触发您的工作流程。](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#codecommit_event_type)
+ **为 APIs 自动 Git 操作实施错误重试和指数级退缩**

  错误重试和指数回退可帮助限制调用速率。每个 AWS 开发工具包均实施自动重试逻辑和指数回退算法。对于自动 Git 推送和 Git 拉取，您可能需要实施自己的重试逻辑。有关更多信息，请参阅中的[错误重试和指数退缩](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)。 AWS
+ **在 Supp CodeCommit ort Center 申请增加服务配额 AWS **

  要接收提高服务限制，您必须确认您已遵循此处提供的建议，包括实施错误重试或指数回退方法。在申请中，您还必须提供受限制问题 AWS 区域影响的 Amazon Web Services 账户和时间范围。

