6

GCP 终于发布了托管的 Jupyter 笔记本。我希望能够通过连接到笔记本在本地与它进行交互。IE。我使用 PyCharm 通过传递其 URL 和令牌参数来连接到外部配置的 jupyter notebbok 服务器。

问题也适用于 AWS Sagemaker 笔记本。

4

4 回答 4

4

AWS 本身并不支持将 SSH 连接到 SageMaker 笔记本实例,但没有什么能真正阻止您自己设置 SSH。

唯一的问题是这些实例没有获得公共 IP 地址,这意味着您必须创建一个反向代理(例如使用 ngrok)或通过堡垒箱连接到它。

使 ngrok 解决方案起作用的步骤:

  • 下载ngrokcurl https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip > ngrok.zip
  • unzip ngrok.zip
  • 创建 ngrok 免费帐户以获取 tcp 隧道的权限
  • ./ngrok authenticate使用您的令牌运行
  • ./ngrok tcp 22 > ngrok.log &(& 将其置于后台)开头
  • 日志文件将包含 url,以便您知道连接到哪里
  • 创建~/.ssh/authorized_keys文件(在 SageMaker 上)并粘贴您的公钥(可能~/.ssh/id_rsa.pub来自您的计算机)
  • 通过调用 ssh ssh -p <port_from_ngrok_logfile> ec2-user@0.tcp.ngrok.com(或他们分配给您的任何主机,它;将在 ngrok.log 中)

如果你想自动化它,我建议使用生命周期配置脚本

另一个好技巧是将下载、解压缩、身份验证和启动 ngrok 包装到 /usr/bin 中的一些二进制文件中,这样如果它死了,你就可以从 SageMaker 控制台调用它。

完全解释如何使用生命周期脚本自动化它有点太长了,但我已经在https://biasandvariance.com/sagemaker-ssh-setup/上编写了详细指南。

于 2020-05-07T17:10:33.917 回答
3

在 AWS 上,您可以使用 AWS Glue 创建开发人员终端节点,然后从那里创建 Sagemaker 笔记本。开发人员端点使您可以访问通过 ssh 连接到您的 python 或 Scala spark REPL,它还允许您通过任何其他工具(包括 PyCharm)建立连接和访问。

对于 PyCharm 专业版,我们有更紧密的集成,允许您 SFTP 文件和远程调试。

而且,如果您需要在笔记本上安装任何依赖项,除了直接在笔记本上安装之外,您始终可以选择new>terminal并且您将直接从您的 jupyter 环境连接到该机器,您可以在其中安装任何您想要的东西。

于 2019-04-12T08:29:21.750 回答
0

你好橄榄树,

感谢您使用 Amazon SageMaker。

您是否尝试过CreatePresignedNotebookInstanceUrl使用 url 访问您的笔记本实例?

我们总是根据客户的要求重新评估我们积压的功能,因此我们感谢有关此功能的反馈。

让我们知道是否还有其他我们可以提供的帮助。

谢谢,
尼拉姆

于 2019-04-29T16:26:32.947 回答
0

GCP 的 AI Platform Notebooks 会自动创建一个永久性 URL,您可以使用该 URL 访问您的笔记本。那是你要找的吗?

于 2019-07-01T00:15:53.567 回答