本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
排查访问错误问题和Amazon CodeCommit
以下信息可帮助您排查在连接 Amazon CodeCommit 存储库时遇到的访问错误。
主题
访问错误:从 Windows 连接到 CodeCommit 存储库时,系统提示我输入用户名和密码。
问题:当您尝试使用 Git 与 CodeCommit 存储库进行通信时,出现一个对话框,提示您输入用户名和密码。
可能的修复措施:这可能是 Windows 内置的凭证管理系统。根据您的配置,执行以下操作之一:
-
如果使用 Git 凭证进行 HTTPS 连接,则您的 Git 凭证尚未存储在系统中。请提供 Git 凭证并继续。应该不会再提示您。有关更多信息,请参阅 对于使用 Git 凭据的 HTTPS 用户。
如果使用 Amazon CodeCommit 的凭证辅助程序进行 HTTPS 连接,它与 Windows 凭证管理系统不兼容。选择 Cancel (取消)。
这也可能表明您在安装 Windows 版 Git 时安装了 Git Credential Manager。Git 凭证管理器与包含的 CodeCommit 的凭证辅助程序不兼容Amazon CLI. 考虑卸载 Git Credential Manager。您也可以安装和配置git-remote-codecommit作为使用 CodeCommit 的凭证辅助程序的替代方法。
有关更多信息,请参阅使用 HTTPS 连接Amazon CodeCommit的设置步骤 git-remote-codecommit、对于 Windows 上的 HTTPS 连接,使用Amazon CLI凭证辅助程序和Windows 版 Git:Windows 版 Git 安装了 Git,但被系统拒绝访问我的存储库 (403)。
访问错误:在连接到 CodeCommit 存储库时,公有密钥被拒绝
问题:当您尝试使用 SSH 终端节点与 CodeCommit 存储库进行通信时,出现一条错误消息,其中包含字样。Error: public key denied
.
可能的修复措施:出现此错误的最常见原因是您尚未完成 SSH 连接设置。请配置 SSH 公有和私有 SSH key pair,然后将公有密钥与您的 IAM 用户相关联。有关配置 SSH 的更多信息,请参阅对于 Linux、macOS 或 Unix 上的 SSH 连接 和对于 Windows 上的 SSH 连接。
访问错误:连接到 CodeCommit 存储库时出现 “Rate (数量超出限制)” 或 “429” 消息
问题:当您尝试与 CodeCommit 存储库进行通信时,出现一条消息,此消息指示 “Rate Rate (数量超出限制)” 或显示错误代码 “429”。通信速度显著减慢或失败。
原因:所有对 CodeCommit 的调用,无论是来自应用程序,Amazon CLI、Git 客户端或Amazon Web Services Management Console的限制是每秒的最大请求数和总体活动请求。您不能超过任何 Amazon Web Services 账户的最大允许请求速率。Amazon Web Services 区域. 如果请求超过最大速率,您将收到一条错误,并且会对您的 Amazon Web Services 账户临时限制进一步的调用。在限制期间,您与 CodeCommit 的连接会变慢,并且可能失败。
可能的修复措施:请采取措施以减少对 CodeCommit 的连接或调用数或分散请求。可考虑采用的一些方法:
-
在请求中实现抖动,尤其是在定期轮询请求中
如果您有一个定期轮询 CodeCommit 的应用程序,并且该应用程序在多个 Amazon EC2 实例上运行,请引入抖动(随机延迟时长),以使不同的 Amazon EC2 实例将不会在同一时间轮询。我们建议使用 0 到 59 秒的随机数值,以便在 1 分钟的时间范围内均匀分布轮询机制。
-
使用基于事件的架构而不是轮询
使用基于事件的架构而不是轮询,以便仅在事件发生时进行调用。考虑将 CloudWatch Events 通知用于Amazon CodeCommit事件以触发工作流。
-
实现 API 和自动 Git 操作的错误重试和指数回退
错误重试和指数回退可帮助限制调用速率。每个 Amazon 开发工具包均实施自动重试逻辑和指数回退算法。对于自动 Git 推送和 Git 拉取,您可能需要实施自己的重试逻辑。有关更多信息,请参阅 。中的错误重试和指数退避Amazon.
-
CodeCommit 求在Amazon支持中心
要接收提高服务限制,您必须确认您已遵循此处提供的建议,包括实施错误重试或指数回退方法。在您的请求中,您还必须提供Amazon Web Services 区域、Amazon Web Services 账户以及受限制问题影响的时间范围。