如何从 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 你的实例名称

当我在隐身浏览器中打开 AuthorizedUrl 时,它起作用了。为什么它不适用于 VS Code?VS Code 要求输入密码。我尝试了多种方法,但都没有帮助:

  1. 密码为空,因为 SageMaker 的 jupyter_notebook_config.py 中密码为空
  2. 令牌作为密码 [1]
  3. 我设置了密码“jupyter notebook password”,并重启了 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. 复制您的工作室实验室网址并将其粘贴到新标签页中。网址如下所示https://xxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab/
  4. 更换实验室代理/8080。URL 变为https://xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/proxy/8080/
  5. 等待几分钟(大约 3 分钟)即可加载。在您的 StudioLab 中运行 Boom VS Code。

这是我对 stackexchange 的第一个贡献,如果有帮助的话请点赞。

相关内容