如何排查关于将 Git 存储库连接到 Amazon SageMaker 笔记本电脑实例的问题?
我正在尝试将一个 Git 存储库添加到 Amazon SageMaker 笔记本电脑实例,但遇到了下面的一个或多个错误:
“fatal: unable to access <Git repository URL>: the requested URL returned error: 403”(致命:无法访问 <Git repository URL>:请求的 URL 返回错误:403) “fatal: unable to access <Git repository URL>: failed to connect to …: port 443: connection timed out”(致命:无法访问 <Git repository URL>:无法连接到 ...:端口 443:连接超时) “fatal: unable to access <Git repository URL> could not resolve the host: ….”(致命:无法访问 <Git repository URL> 无法解析主机:..) “fatal: could not read Username for <Git repository URL>: terminal prompts disabled”(致命:无法读取 <Git repository URL> 的用户名:终端提示已禁用) “fatal: could not read Password for <Git repository URL>: terminal prompts disabled”(致命:无法读取 <Git repository URL> 的密码:终端提示已禁用) “fatal: authentication failed for <Git repository URL>”(致命:<Git repository URL> 身份验证失败) “No space left on device while cloning Git repo.请尝试使用更大的卷”
解决方法
如需向您的 SageMaker 笔记本电脑实例添加新的 Git 存储库,请参阅向您的 Amazon SageMaker 账户添加 Git 存储库。您尝试添加未托管在 AWS CodeCommit 上的 Git 存储库时,可能会收到以下错误。
与连接相关的错误
如果存在连接问题,您可能会遇到下列错误中的一种:
- “fatal: unable to access <Git repository URL>: the requested URL returned error: 403”(致命:无法访问 <Git repository URL>:请求的 URL 返回错误:403)
- “fatal: unable to access <Git repository URL>: failed to connect to …: port 443: connection timed out”(致命:无法访问 <Git repository URL>:无法连接到 ...:端口 443:连接超时)
- “fatal: unable to access <Git repository URL> could not resolve the host: ….”(致命:无法访问 <Git repository URL> 无法解析主机:..)
要解决这些错误,请执行以下操作:
- 验证笔记本电脑实例的连接。
- 验证 Git 存储库 URL 的准确性。
验证笔记本电脑实例的连接
确保笔记本电脑实例已成功连接到 Git 存储库。此存储库可能位于本地 Git 存储库服务器上,也可能位于 GitHub、Bitbucket 或 GitLab 等公有云服务器上。
检查您的笔记本电脑实例正在使用的网络配置。笔记本电脑实例的 网络配置 可能为下列中的一种:
- 该实例未附加到 Amazon Virtual Private Cloud (VPC)。
- 您的 Amazon VPC 可直接访问互联网
- 您的 VPC 无法直接访问互联网。
如果您使用的是 VPC,请确保正确配置了子网、安全组、网络访问控制列表(ACL)、NAT 网关、互联网网关和路由表。
验证 Git 存储库 URL 的准确性
确保您要添加的 Git 存储库 URL 为以下格式:
- GitHub URL:https://github.com/<workspace>/<repository.git>
- Bitbucket URL:https://bitbucket.org/<workspace>/<repository.git>
- GitLab URL:https://gitlab.com/<workspace>/<repository.git>
请务必更换以下内容:
- 带有 Git 工作空间名称的工作空间
- repository.git,其代码存储库名称的扩展名为 *.git。
例如,如果您使用 Bitbucket 作为 Git 存储库,其中您的工作空间名称是 myworkspace,而您的 Git 存储库名称是 myrepository.git,那么您必须使用以下 Git 存储库 URL:https://bitbucket.org/myworkspace/myrepository.git
与身份验证相关的错误
如果存在身份验证问题,您可能会遇到下列错误中的一种:
- “fatal: could not read Username for <Git repository URL>: terminal prompts disabled”(致命:无法读取 <Git repository URL> 的用户名:终端提示已禁用)
- “fatal: could not read Password for <Git repository URL>: terminal prompts disabled”(致命:无法读取 <Git repository URL> 的密码:终端提示已禁用)
- “fatal: authentication failed for <Git repository URL>”(致命:<Git repository URL> 身份验证失败)
要解决这些错误,请执行以下操作:
- 核查身份验证详情。
- 验证 AWS Identity and Access Management (IAM) 用户或角色是否拥有访问 AWS Secrets Manager 所需的权限。
验证身份验证详情是否准确
确保 Secrets Manager 中的用户名和密码准确无误。
- GitHub:如果您启用了双重身份验证,则必须使用 个人访问令牌 而不是密码。令牌生成后,您必须使用此新令牌更新 Secrets Manager 中的密码。
- Bitbucket:Bitbucket 不支持使用账户密码进行 Git 身份验证。建议使用 个人设置 来创建应用程序密码。创建应用程序密码后,必须在 Secrets Manager 中更新密码。
- GitLab:如果您启用了双重身份验证,则必须使用 个人访问令牌 而不是密码。令牌生成后,您必须使用此新令牌更新 Secrets Manager 中的密码。
验证笔记本电脑实例的 IAM 角色是否拥有所需的权限
验证笔记本电脑实例的 IAM 角色在其 IAM policy 中是否附加了 secretsmanager:GetSecretValue 权限。如果 IAM 角色没有所需的权限,则可以向 IAM 角色添加以下策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "example-secret-ARN" ] }, { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } ] }
注意: example-secret-ARN 是 Secrets Manager 中的 ARN,其拥有用于 Git 存储库身份验证的密钥(用户名和密码)。
与存储相关的错误
如果存在与存储相关的问题,则可能会遇到以下错误:
No space left on device while cloning Git repo.Please try using a larger volume(克隆 Git 存储库时设备上没有剩余空间。请尝试使用更大的卷)
要解决此错误,请验证笔记本电脑实例是否有足够的存储空间。确保笔记本电脑实例卷中可用空间的大小大于您用来克隆的 Git 存储库的大小。如果磁盘空间不足,请为 VolumeSizeInGB 指定一个更大的值。更多相关信息,请参阅 Customize your notebook volume size, up to 16 TB, with Amazon SageMaker(使用 Amazon SageMaker 自定义您的笔记本电脑实例卷大小,最大可达 16 TB)。
相关信息
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 个月前