![如何从 VS Code 连接 SageMaker 笔记本?](https://linux22.com/image/1606728/%E5%A6%82%E4%BD%95%E4%BB%8E%20VS%20Code%20%E8%BF%9E%E6%8E%A5%20SageMaker%20%E7%AC%94%E8%AE%B0%E6%9C%AC%EF%BC%9F.png)
我正在使用 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 要求输入密码。我尝试了多种方法,但都没有帮助:
- 密码为空,因为 SageMaker 的 jupyter_notebook_config.py 中密码为空
- 令牌作为密码 [1]
- 我设置了密码“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,以下步骤对我有用。
(studiolab) studio-lab-user@default:~$ conda install -y -c conda-forge code-server
(studiolab) studio-lab-user@default:~$ code-server --auth none
- 复制您的工作室实验室网址并将其粘贴到新标签页中。网址如下所示https://xxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab/
- 更换实验室和代理/8080。URL 变为https://xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/proxy/8080/
- 等待几分钟(大约 3 分钟)即可加载。在您的 StudioLab 中运行 Boom VS Code。
这是我对 stackexchange 的第一个贡献,如果有帮助的话请点赞。