如何排查关于将 Git 存储库连接到 Amazon SageMaker 笔记本电脑实例的问题?

3 分钟阅读
0

我正在尝试将一个 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)。


相关信息

将 Git 存储库与 SageMaker 笔记本电脑实例关联

将 AWS CodeCommit 和接口 VPC 端点一起使用

AWS 官方
AWS 官方已更新 1 年前