访问错误和 Amazon CodeCommit 问题排查 - Amazon CodeCommit
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

访问错误和 Amazon CodeCommit 问题排查

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

访问错误:从 Windows 连接到 CodeCommit 存储库时,系统提示输入用户名和密码

问题:尝试使用 Git 与 CodeCommit 存储库通信时,出现一个对话框,提示您输入您的用户名和密码。

可能的修复措施:这可能是 Windows 内置的凭证管理系统造成的。根据您的配置,执行以下操作之一:

访问错误:连接到 CodeCommit 存储库时,公有密钥被拒绝

问题:尝试使用 SSH 端点与 CodeCommit 存储库通信时,出现一条错误消息,其中包含 Error: public key denied 字样。

可能的修复措施:导致出现此错误的最常见原因是您尚未完成 SSH 连接设置。请配置公有和私有 SSH 密钥对,然后将公有密钥与您的 IAM 用户相关联。有关配置 SSH 的更多信息,请参阅适用于 Linux、macOS 或 Unix 上的 SSH 连接适用于 Windows 上的 SSH 连接

访问错误:连接到 CodeCommit 存储库时,出现“速率超出限制”或“429”消息

问题:尝试与 CodeCommit 存储库通信时,出现一条消息,指示“速率超出限制”或显示错误代码“429”。通信速度显著减慢或失败。

原因:对 CodeCommit 的所有调用(无论是来自应用程序、Amazon CLI、Git 客户端还是 Amazon Web Services Management Console)都受每秒最大请求数和活动请求总数的约束。您不得超过任何 Amazon Web Services 区域的 Amazon Web Services 账户的最大允许请求速率。如果请求超过最大速率,您将收到一个错误,并且系统会对您的 Amazon Web Services 账户的进一步调用执行临时节流操作。在节流期间,您与 CodeCommit 的连接会变慢,甚至可能会失败。

可能的修复措施:采取措施以减少与 CodeCommit 的连接数或对 CodeCommit 的调用数或者分散请求。可考虑采用的一些方法:

  • 在请求中实现抖动,尤其是在定期轮询请求中

    如果您有一个定期轮询 CodeCommit 的应用程序,并且该应用程序在多个 Amazon EC2 实例上运行,请引入抖动(随机延迟时长),以使不同的 Amazon EC2 实例不会在同一时间轮询。我们建议使用 0 到 59 秒的随机数值,以便在 1 分钟的时间范围内均匀分布轮询机制。

  • 使用基于事件的架构而不是轮询

    使用基于事件的架构而不是轮询,以便仅在事件发生时进行调用。考虑将 CloudWatch Events 通知用于 Amazon CodeCommit 事件以触发工作流。

  • 实现 API 和自动 Git 操作的错误重试和指数回退

    错误重试和指数回退可帮助限制调用速率。每个 Amazon 开发工具包均实施自动重试逻辑和指数回退算法。对于自动 Git 推送和 Git 拉取,您可能需要实施自己的重试逻辑。有关更多信息,请参阅 Amazon 中的错误重试和指数回退

  • 在 Amazon Support Center 请求提高 CodeCommit 服务限额

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