一、概述
1. 案例介绍
华为开发者空间是华为云为全球开发者打造的专属云上成长空间,空间深度整合了昇腾AI、鸿蒙、鲲鹏等华为根技术。2025HDC大会上,华为开发者空间迎来全面升级,新增AI原生应用引擎、AI Notebook、云开发环境、FunctionGraph云函数、Astro低代码等核心能力,并在算力、模型、平台、应用层实现全方位优化,助力开发者高效完成从编码到调测的全流程,打造智能AI应用开发新体验。
华为开发者空间 - 云开发环境提供“云IDE解决方案”,为开发者构建一个以开发者体验为核心、开放集成的云端开发平台生态。支持主流IDE、提供多样化入口、开放API/SDK,并与开发者深度合作持续优化,致力于让云端开发环境成为广大开发者的首选、高校愉悦的工作方式。华为开发者空间 - 云开发环境对 Jupyter Notebook提供了深度集成,这对于数据科学、机器学习、教学演示和交互式编程场景的用户至关重要。
本案例将在华为开发者空间 - 云开发环境部署Jupyter Notebook,实现本地开发与云端编译的无缝衔接。通过SSH隧道连接,开发者可在本地远程编写代码,利用云端高性能资源运行和调试,解决了本地环境配置复杂、算力不足等问题。该方案提升了开发效率,降低了硬件成本。
2. 适用对象
- 企业
- 个人开发者
- 高校学生
3. 案例时间
本案例总时长预计90分钟。
4. 案例流程

说明:
- 登录华为开发者空间,进入开发平台创建云开发环境;
- 创建A隧道,远程连接云开发环境;
- 创建B隧道,安装部署Jupyter Notebook服务;
- 远程访问Jupyter Notebook。
5. 资源总览
本案例预计花费0元。
| 资源名称 | 规格 | 单价(元) | 时长(分钟) |
|---|---|---|---|
| 华为开发者空间 - 云开发环境 | 鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE | 免费 | 90 |
二、创建云开发环境
1. 配置云开发环境
华为开发者空间-云开发环境平台为开发者提供专属云端开发主机,集成主流IDE工具,支持多端访问和API/SDK调用,打造开箱即用的开发环境。
登录华为开发者空间 - 云开发环境平台,在页面左侧菜单栏选择开发平台 - 计算,点击云开发环境,进入开发环境界面。

在开发环境列表下方点击新建开发环境按钮,页面右侧弹出新建开发环境配置界面。在新建开发环境配置界面依次配置环境名称为JupyterNb,开放端口为8081,默认账号为pioneer,并且根据自己情况设置密码。

注:默认账号、密码为后续远程连接需要用到的虚拟机账号密码,注意保存。
参数说明:
| 参数项 | 参数说明 | 样例 |
|---|---|---|
| 环境名称 | 必填,可包含数字、字母、下划线,长度不超过15个字符,不能以数字开头。 | JupyterNb |
| CPU架构 | 系统默认提供ARM, 2vCPUs, 4GB, Euler,不支持修改。 | / |
| 开放端口(可选) | 非必填,默认22端口,可代理的端口范围 8080-8089。 | 8081 |
| 默认账号 | 必填,4~16个英文小写字母,不可使用系统保留的用户名root、agent。 | pioneer |
| 密码 | 必填,8~32个字符,至少包含以下字符中的3种:大写字母、小写字母、数字和特殊字符,特殊字符仅支持~ ! @ # $ % ^ * - _ = + ?等。 | / |
配置完成后,点击新建开发环境配置界面右下角的确认按钮,完成开发环境的创建。创建完成后,在开发环境列表中将新增我们刚才创建的开发环境。

2. 云开发环境 - 开机
在开发环境列表,JupyterNb开发环境的操作栏点击更多,选择开机。开发环境自动进入开机中状态(耗时1~3分钟,此状态无需任何操作),完成开机后状态栏自动变更为运行中。

开机后的状态如下。

3. 云开发环境 - 关机
在开发环境列表,JupyterNb开发环境的操作栏点击更多,选择关机。开发环境自动进入关机中状态(耗时1~3分钟,此状态无需任何操作),完成关机后状态栏自动变更为已就绪。

4. 云开发环境 - 延时
在开发环境列表,JupyterNb开发环境的操作栏点击更多,选择延时,在弹出的对话框中点击确定,完成延时。

注: - 延时后时长默认恢复为15小时。 - 云开发环境时长与云主机时长累加,不可超过180小时,否则系统将提示“延时失败,实例剩余时长不足”。 - 当剩余时长小于等于60分钟时,方可申请延时。

5. 云开发环境 - 删除
在开发环境列表,JupyterNb开发环境的操作栏点击更多,选择删除。开发环境自动进入删除中状态(耗时1~3分钟,此状态无需任何操作),完成删除后开发环境列表自动清空。

注:若云开发环境处于开机状态中,则无法进行删除操作,需要先进行关机操作。

三、PC端环境配置
1. 安装CLI工具包
1.1 下载CLI工具包
在开发环境列表,JupyterNb开发环境的操作栏点击远程连接,在弹出的远程连接对话框中选择Windows X64,系统将自动将hdspace.exe下载到本地。

注:hdspace.exe是一款专为开发者设计的可执行文件程序,开发者可以通过该程序完成对开发者空间云开发环境的管理,并且该工具建立与云开发环境的隧道,进而实现对云开发环境的操作。
1.2 配置环境变量
PC端开始菜单选择并打开设置,在设置搜索框中搜索环境变量,选择编辑系统环境变量,打开系统属性对话框。

在系统属性对话框中点击环境变量,在弹出的环境变量 - 系统变量中双击Path,弹出编辑环境变量对话框。点击编辑环境变量对话框右侧的新建按钮,将hdspace.exe的绝对路径复制下方列表中。依次点击编辑环境变量、环境变量和系统属性对话框下方的确定按钮,完成系统环境变量的配置。

注:编辑环境变量时,其值为hdspace.exe文件所在文件夹的绝对路径,路径中不包含hdspace.exe,示例:D:\software\hdspace
1.3 测试安装
在开始菜单搜索并打开cmd或者Windows PowerShell,在命令提示符或者Windows PowerShell输入hdspace,即可查看安装结果。
hdspace

显示hdspace CLI Version 1.0.0版本信息即为安装成功。
2. 配置AK/SK签名认证
2.1 获取AK/SK
登录华为云,在顶部菜单栏点击控制台,进入华为云控制台页面。

在华为云控制台页面,将鼠标悬浮于账号信息(注意,不要点击),在弹出的菜单中选择我的凭证,进入我的凭证页面。

在我的凭证页面,点击左侧菜单栏的访问密钥,在右侧访问密钥界面点击新增访问密钥,弹出新增访问密钥的信息配置对话框。

填写描述信息,并勾选“我已悉知,为账号创建访问密钥会带来的风险”,点击下方的继续创建按钮,完成访问密钥的创建。

访问密钥创建成功后,会弹出创建成功对话框,点击下方的立即下载,打开记录密钥信息的credentials.csv文件。

文件中Access Key Id即为AK,Secret Access Key即为SK。
- AK是Access Key(访问密钥)的缩写, 用于标识用户身份的唯一ID, 通常公开传输;
- SK是Secret Key(秘密密钥)的缩写,用于生成请求签名的保密密钥,仅用户和服务端持有。其核心功能是通过对称加密机制验证请求发送者的合法性,防止未授权访问。
本案例中配置AK/SK,等同于在CLI中进行身份信息认证,从而实现对云开发环境的进行操作。
2.2 配置AK/SK
在命令提示符或者Windows PowerShell输入hdspace config。依次在控制台输入上一步获取到的AK/SK。显示Config AK/SK success即为配置成功。

注意:SK输入后,在控制台不会回显,并且需要再次输入确认,粘贴时需要注意。
3. 命令行管理云开发环境
华为开发者空间 - 云开发环境平台不仅支持页面端控制开发环境的管理,同时还支持CLI实现开发环境的创建、查询、开关机等操作。
3.1 创建云开发环境
云开发环境的创建命令为hdspace devenv create,我们可以先在命令提示符或者Windows PowerShell中通过增加--help命令查询当前的云开发环境列表。
hdspace devenv create --help
在输出的日志信息Parameter中可知
--name必填,字符串,开发环境名称,可以包含字母、数字(不是第一个)和下划线,最多15个字符。--account可选,字符串,帐户,4-16个小写字母,不能使用root和agent,如果未指定,默认为developer。--ports可选,字符串,对外开放端口,用','分隔,范围:[8080,8089](更多端口即将推出),如果未指定,默认值为22。
我们通过hdspace devenv create命令来创建一个云开发环境。
hdspace devenv create --name={开发环境名称} --account={账户名称} --ports={端口号}

密码设置完成后,按回车键,再次输入密码,再次按回车键,Windows PowerShell控制台输出Create dev environment success, instance ID: ********,即为完成云开发环境的创建。
注:当前华为开发者空间 - 云开发环境平台仅支持创建单台云开发环境,重复创建会提示failed to create dev environment: Dev environment already exists.

3.2 查看云开发环境
在命令提示符或者Windows PowerShell中可以通过hdspace devenv list命令查询当前的云开发环境列表。
hdspace devenv list

注:如果当前没有已经创建的云开发环境,则日志输出Dev environment not exist,please create one first。

3.3 云开发环境开机
在命令提示符或者Windows PowerShell中可以通过hdspace devenv start命令启动已创建云开发环境。
hdspace devenv start --instance-id={instanceId}

输入启动指令后,控制台输出Dev environment ******** is starting, please execute 'hdspace devenv list' to check the status of the dev environment.。通过hdspace devenv list命令查看,STATE变为Starting状态(耗时1~3分钟,此状态无需任何操作)。完成开机后,再次查看,STATE变更为Running状态。
Parameter: - instance-id:云开发环境的instance ID - remote-port:云开发环境远程端口号,可根据云开发环境创建时设置的范围进行选择(一般范围为8080-8089), 如果不进行指定则为默认的22端口。 - local-port:PC本地监听端口号(0-65535), 如果不进行指定则默认和remote-port保持一致。
3.4 云开发环境关机
在命令提示符或者Windows PowerShell中可以通过hdspace devenv close命令启动已创建云开发环境。
hdspace devenv close --instance-id={instanceId}

输入关机指令后,控制台输出Dev environment ******** is closing. Please execute 'hdspace devenv list' to check the status。通过hdspace devenv list命令查看,STATE变为Closing状态(耗时1~3分钟,此状态无需任何操作)。完成关机后,再次查看,STATE变更为Ready状态。
3.5 云开发环境删除
在命令提示符或者Windows PowerShell中可以通过hdspace devenv close命令启动已创建云开发环境。
hdspace devenv delete --instance-id={instanceId}
注:在执行删除操作前,请先确保云开发环境已处于Ready状态。

输入关机指令后,控制台输出The dev environment ******** is deleting, please execute 'hdspace devenv list' to check if the dev environment has been deleted.。通过hdspace devenv list命令查看,STATE变为Closing状态(耗时1~3分钟,此状态无需任何操作)。删除完成后再次查看,系统提示Dev environment not exist, please create one first。
3.6 创建云开发环境远程连接隧道
在命令提示符或者Windows PowerShell窗口通过hdspace devenv start-tunnel命令创建远程连接隧道。
hdspace devenv start-tunnel --instance-id={instanceId} --remote-port={remotePort} --local-port={localPort}
- instance-id:必填,String,开发环境实例id;
- remote-port:可选,字符串,开发环境端口(8080-8089),如果未指定,默认值为22;
- local-port:可选,字符串,本地监听端口(0-65535),如果未指定,则与开发环境端口相同。
四、创建云开发环境隧道部署Jupyter
1. 创建登录远程连接隧道
1.1 创建SSH远程连接隧道
hdspace devenv start-tunnel在不指定remote-port时,系统默认值为22端口。服务器22端口默认用于SSH(Secure Shell)服务,这是由互联网标准协议确定的通用设定。打开Windows PowerShell窗口1,通过如下命令创建SSH远程连接隧道。
hdspace devenv start-tunnel --instance-id={instanceId} --local-port={localPort1}

注:创建远程连接隧道前,需要先确保云开发环境处于Running状态。
控制台输出[hds-info]: Listen local port:localPort success则表示隧道到监听成功。
1.2 SSH远程登录云开发环境
新打开一个Windows PowerShell窗口2,通过ssh命令远程登陆云开发环境。根据提示输入yes,之后输入云开发环境创建时设置的密码。
ssh pioneer@127.0.0.1/localhost -p {localPort1}

控制台出现[pioneer@ecs-devstage-3640 ~]$字样信息则表示登录成功。同时Windows PowerShell窗口1中输入日志Connected to tunnel server success。

注:为避免混淆,后文中称此SSH远程连接隧道为“1234隧道”。
1.3 创建备用远程连接隧道
打开Windows PowerShell窗口3通过hdspace devenv start-tunnel命令指定remote-port的方式创建备用远程连接隧道。具体指令如下:
hdspace devenv start-tunnel --instance-id={instanceId} --remote-port={remotePort} --local-port={localPort}

控制台输出[hds-info]: Listen local port:localPort success则表示隧道到监听成功。
注:为避免混淆,后文中称此SSH远程连接隧道为“1233隧道”。
1.4 创建并远程访问http服务
在Windows PowerShell窗口2通过如下命令启动一个python http.server,用于测试云开发环境部署服务远程访问是否畅通。
python3 -m http.server {remotePort}

出现如上图所示内容则表示python http.server已经成功启动。同时,Windows PowerShell窗口3中输入日志Connected to tunnel server success。
注:通过ssh pioneer@127.0.0.1/localhost的方式连接云开发环境会出现不稳定自动退出的情况,建议使用Xshell等专业工具进行连接访问。

在PC本地浏览器地址栏输入http://127.0.0.1/localhost:1233,可以访问到之前发布的python http.server服务。

释放8082端口,在Windows PowerShell窗口2点击Ctrl+C,结束python http.server服务。
2. 部署Jupyter Notebook
2.1 安装 Python 环境
Jupyter Notebook运行需要依赖python环境,在安装前需要先确认云开发环境是否已安装python开发环境。
python --version
pip --version

注:如果环境中未安装,可以通过如下指令进行安装部署。
sudo yum update -y
sudo yum install python3-devel python3-pip -y


2.2 创建虚拟环境
为了避免依赖冲突问题,我们需要创建一个虚拟环境,
python3 -m venv ~/jupyter_venv # 创建虚拟环境
source ~/jupyter_venv/bin/activate # 激活环境

2.3 安装Jupyter Notebook
- 安装Jupyter Notebook
pip install --upgrade pip
pip install notebook
注:若指令执行过程中出现Read timed out错误,可以切换国内源,其具体指令如下:
pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple


- 生成配置文件
我们可以通过如下指令生成Jupyter Notebook配置文件:
jupyter notebook --generate-config

- 进入 Python 生成密码
进入python环境,获取密码生成的Argon2密钥。
python # 进入python
from jupyter_server.auth import passwd
passwd() # 输入密码后会生成加密字符串(复制备用)
exit() # 退出python

- 修改配置文件
编辑jupyter配置文件 ~/.jupyter/jupyter_notebook_config.py
vim ~/.jupyter/jupyter_notebook_config.py #命令
配置项:
c.NotebookApp.ip = '0.0.0.0' # 允许所有IP访问
c.NotebookApp.port = 8082 # 指定端口(按需修改,这里与创建云开发环境时设置的{remotePort}一致)
c.NotebookApp.open_browser = False # 关闭自动打开浏览器
c.NotebookApp.password = 'argon2:...' # 粘贴生成的加密密码,上一步进入Python设置密码最后生成的密钥。
c.NotebookApp.allow_root = False # 禁止 root 运行(安全)
c.NotebookApp.notebook_dir = '' # 设置工作目录,默认是~/.jupyter/jupyter_notebook_config.py

- 防火墙放行端口
sudo systemctl restart firewalld # 重启防火墙
sudo firewall-cmd --permanent --add-port=8082/tcp # 开放端口
sudo firewall-cmd --reload

2.4 启动 Jupyter Notebook
通过如下指令启动Jupyter Notebook服务。
jupyter notebook # 临时启动
nohup jupyter notebook > ~/jupyter.log 2>&1 & # 后台持久化运行

从日志中我们发现Jupyter Notebook已经映射到PC本地的8082端口。
注:在启动Jupyter Notebook前,请先确保步骤“1.3 创建备用远程连接隧道”中创建的备用远程连接隧道畅通。
接下来通过http://localhost:1233/tree访问服务。在PC本地浏览器地址栏输入该地址,回车(按提示输入密码后)浏览器跳转。

3. 释放资源
在Windows PowerShell窗口1和Windows PowerShell窗口3分别执行Ctrl + C,关闭隧道。
在Windows PowerShell窗口2中通过hdspace devenv close和hdspace devenv delete命令释放云开发环境资源。
hdspace devenv close --instance-id={instanceId}

hdspace devenv delete --instance-id={instanceId}

至此,基于华为开发者空间-云开发环境部署Jupyter Notebook案例结束。
4. 反馈改进建议
如您在案例实操过程中遇到问题或有改进建议,可以到论坛帖评论区反馈即可,我们会及时响应处理,谢谢!
6万+

被折叠的 条评论
为什么被折叠?



