如何疑難排解將 Git 儲存庫連線至 Amazon SageMaker 筆記本執行個體的相關問題?

2 分的閱讀內容
0

我在嘗試將 Git 儲存庫新增至 Amazon SageMaker 筆記本執行個體,但發生以下一或多個錯誤:「嚴重錯誤:無法存取 <Git repository URL>:您請求取得的網址傳回錯誤: 403」「嚴重錯誤:無法存取 <Git repository  URL>:無法連線至…:連接埠 443:連線逾時」「嚴重錯誤:無法存取 <Git repository URL> 無法解析主機:…」「嚴重錯誤:無法讀取以下項目的使用者名稱 <Git repository URL>:終端提示已停用」「嚴重錯誤:無法讀取以下項目的密碼 <Git repository URL>:終端提示已停用」「嚴重錯誤:<Git repository URL> 驗證失敗」「複製 Git 儲存庫時,裝置上沒有剩餘空間。請嘗試使用更大的磁碟區」

解決方法

若要將新的 Git 儲存庫新增至 SageMaker 筆記本執行個體,請參閱將 Git 儲存庫新增至您的 Amazon SageMaker 帳戶。如果您要嘗試新增未託管於 AWS CodeCommit 的 Git 儲存庫,可能會發生以下錯誤。

連線相關錯誤

如果發生連線問題,畫面上可能會顯示下列任一錯誤訊息:

  • 「嚴重錯誤:無法存取 <Git repository URL>:您請求取得的網址傳回錯誤: 403」
  • 「嚴重錯誤:無法存取 <Git repository URL>:無法連線至…:連接埠 443:連線逾時」
  • 「嚴重錯誤:無法存取 <Git repository URL> 無法解析主機:…」

若要解決這些錯誤,請執行以下動作:

  • 確認筆記本執行個體的連線狀況。
  • 確認 Git 儲存庫網址是否正確。

確認筆記本執行個體的連線狀況

確認筆記本執行個體已成功連線至 Git 儲存庫。此儲存庫可能位於內部部署的 Git 儲存庫伺服器或公有雲端伺服器上,例如 GitHub、Bitbucket 或 GitLab。

查看筆記本執行個體所使用的網路組態。筆記本執行個體的網路組態可能是以下其中一種:

  • 執行個體未連接至 Amazon Virtual Private Cloud (VPC)。
  • Amazon VPC 可直接存取網際網路。
  • VPC 無法直接存取網際網路。

如果您使用 VPC,請確認子網路、安全群組、網路存取控制清單 (ACL)、NAT 閘道、網際網路閘道和路由表均已正確設定。

確認 Git 儲存庫網址是否正確

確認您要新增的 Git 儲存庫網址格式如下:

  • GitHub 網址:https://github.com/<workspace>/<repository.git>
  • Bitbucket 網址:https://bitbucket.org/<workspace>/<repository.git>
  • GitLab 網址:https://gitlab.com/<workspace>/<repository.git>

請務必依照以下指示更改網址:

  • workspace 改成 Git 工作區名稱
  • repository.git 改成附檔名為 *.git 的程式碼儲存庫名稱

例如,如果您使用 Bitbucket 作為 Git 儲存庫,您的工作區名稱即為 myworkspace,Git 儲存庫為 myrepository.git,因此您必須使用以下 Git 儲存庫網址:https://bitbucket.org/myworkspace/myrepository.git。

驗證相關錯誤

如果發生驗證問題,畫面上可能會顯示下列任一錯誤訊息:

  • 「嚴重錯誤:無法讀取以下項目的使用者名稱 <Git repository URL>:終端提示已停用」
  • 「嚴重錯誤:無法讀取以下項目的密碼 <Git repository URL>:終端提示已停用」
  • 「嚴重錯誤: <Git repository URL>驗證失敗」

若要解決這些錯誤,請執行以下動作:

  • 確認驗證作業的詳細資訊。
  • 確認 AWS Identity and Access Management (IAM) 使用者或角色具有存取 AWS Secrets Manager 所需的許可。

確認驗證作業的詳細資訊正確無誤

確認 Secrets Manager 的使用者名稱和密碼正確無誤。

  • GitHub: 如果您已啟用雙重要素驗證,您必須使用個人存取字符而非密碼。產生此字符後,您必須使用這個新的字符更新 Secret Manager 的密碼。
  • Bitbucket: Bitbucket 不支援 Git 驗證的帳戶密碼,最佳實務是使用您的個人設定建立應用程式密碼。建立應用程式密碼後,您必須更新 Secrets Manager 的密碼。
  • GitLab: 如果您已啟用雙重要素驗證,您必須使用個人存取字符而非密碼。產生此字符後,您必須使用這個新的字符更新 Secret Manager 的密碼。

確認筆記本執行個體的 IAM 角色具有所需的許可

確認筆記本執行個體所使用的 IAM 角色在其 IAM 政策中附加了 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 儲存庫驗證作業的密碼 (使用者名稱和密碼)。

儲存體相關錯誤

如果發生與儲存體相關的問題,畫面上可能會顯示下列錯誤訊息:

複製 Git 儲存庫時,裝置上沒有剩餘空間。請嘗試使用更大的磁碟區

若要解決此錯誤,請確認筆記本執行個體具有足夠的儲存空間。確認筆記本執行個體磁碟區中的可用空間,大於您即將複製的 Git 儲存庫大小。如果磁碟空間不足,請為 VolumeSizeInGB 指定較大的值。如需詳細資訊,請參閱以 Amazon SageMaker 自訂最多 16 TB 的筆記本磁碟區


相關資訊

將 Git 儲存庫與 SageMaker 筆記本執行個體建立關聯

搭配使用 AWS CodeCommit 與介面 VPC 端點

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