如何從 VS Code 連線 SageMaker 筆電?

如何從 VS Code 連線 SageMaker 筆電?

我正在使用 SageMaker 來測試 ML 方法。我想將我的 SageMaker 腳本重構為更多可用於生產的程式碼。因此,我想像以前一樣使用 VS Code 重構程式碼並在 SageMaker 實例上執行程式碼。 VS Code Python 允許您定義:

Python:指定 Jupyter 伺服器 URI

SageMaker 透過運行為您提供 AuthorizedUrl

aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name your-instance-name

當我在隱身瀏覽器中開啟 AuthorizedUrl 時,它就可以運作。為什麼它不能與 VS Code 一起使用? VS Code 詢問密碼。我嘗試了多種方法但沒有幫助:

  1. 空密碼,因為 SageMaker 的 jupyter_notebook_config.py 中的密碼為空
  2. 令牌作為密碼 [1]
  3. 我設定了密碼「jupyter筆記本密碼」並重新啟動了jupyter「sudo initctl restart jupyter-server --no-wait」。新密碼似乎有效。我向 VS Code 提供了新建立的密碼,結果同樣很差。

VS Code 給我這個錯誤:

無法連接到遠端 Jupyter 筆記本。檢查 Jupyter 伺服器 URI 設定是否指定了有效的運作伺服器...錯誤:無法連線到受密碼保護的伺服器。檢查密碼是否正確。

那麼如何在 SageMaker 上的 VS Code 中運行程式碼呢?也許有比我正在嘗試的更好的方法?

謝謝

[1]https://jupyter-notebook.readthedocs.io/en/stable/security.html

答案1

據我了解,您希望在 VS Code 中連接來自 Sagemaker Studio Lab 的 jupyter-lab/notebooks。我還想在我的專案中使用 VS Code,並且以下步驟對我有用。

  1. (studiolab) studio-lab-user@default:~$ conda install -y -c conda-forge code-server
  2. (studiolab) studio-lab-user@default:~$ code-server --auth none
  3. 複製您的工作室實驗室 URL 並將其貼上到新分頁中。網址看起來像這樣https://xxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab/
  4. 更換實驗室代理/8080。網址變成https://xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/proxy/8080/
  5. 給它幾分鐘(大約 3 分鐘)來加載。 StudioLab 中的 Boom VS Code。

這是我對 stackexchange 的第一個貢獻,如果有幫助的話請按讚。

相關內容