mcpField
H
huawei-cloud-modelarts-notebook-management

huawei-cloud-modelarts-notebook-management

github.com/huaweicloud云与 DevOps59126 次安装2 天前更新
代码仓库

关于 huawei-cloud-modelarts-notebook-management

通过 hcloud 命令行管理 Huawei Cloud ModelArts Notebook 实例,面向云服务运维人员。覆盖实例生命周期及镜像、标签、租期和动态存储等管理操作。

主要功能

  1. 01Notebook 实例增删改查与启停
  2. 02镜像注册、同步与管理
  3. 03标签与租期管理
  4. 04查询规格、集群和功能
  5. 05动态存储挂载与卸载

适用场景

  1. 01查看 Notebook 状态并维护实例
  2. 02管理自定义镜像与标签
  3. 03续订租期或调整动态存储

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-modelarts-notebook-management

安装后在 Claude Code 中输入/huawei-cloud-modelarts-notebook-management确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
acceptance-criteria.md
api-paths.md
cli-command-examples.md
cli-installation-guide.md
dataflow-diagram.md
iam-policies.md
known-issues.md
pricing-inquiry.md
verification-method.md
scripts/
query-pricing.sh

详细介绍

Huawei Cloud ModelArts Notebook 管理

通过 hcloud CLI 全生命周期管理 ModelArts Notebook 实例 — 涵盖 7 个功能域中的 31 个 API 接口。


概述

此 skill 可通过 hcloud CLI 管理 Huawei Cloud ModelArts Notebook 实例。它涵盖 Notebook 的完整生命周期,包括实例增删改查、启动/停止、租期续订、标签管理、镜像管理、规格/集群查询、功能查询和动态存储管理。

架构
User Request → Agent → hcloud ModelArts <Operation> --cli-region={region} [--params] → Huawei Cloud ModelArts API
适用场景
  • 日常运维:列出 Notebook、检查状态、查看详情、查询规格
  • 实例生命周期:创建、启动、停止、更新、删除 Notebook 实例
  • 镜像管理:将运行中的实例保存为镜像、注册/列出/删除/同步自定义镜像
  • 存储管理:动态为 Notebook 实例挂载/卸载存储
  • 租期管理:查询和续订 Notebook 租期
  • 标签管理:创建、删除、查询 Notebook 标签
范围

本 skill 仅支持 ModelArts Notebook 实例管理(31 个 API),涵盖上述 7 个功能域。

不支持以下 ModelArts 能力,相关请求请使用对应 skill:

  • 推理服务(在线服务、批量服务)— 使用推理服务管理 skill
  • DevServer(开发环境)— 使用 DevServer 管理 skill
  • 模型管理(导入/导出/发布模型)— 使用模型管理 skill
  • 训练作业(创建/管理训练任务)— 使用训练作业管理 skill
  • 自动搜索、超参调优 — 使用自动搜索 skill

前提条件

  1. 已安装并完成认证的 hcloud CLI — 参考:https://support.huaweicloud.com/qs-hcli/hcli_02_003.html
  2. 已通过 hcloud 配置 Huawei Cloud AK/SK(请参阅下文的安全与凭证检查)
  3. 目标区域已启用 ModelArts 服务
  4. IAM 权限 — 请参阅 references/iam-policies.md
安全与凭证检查

⚠️ 严重:本节定义了 Agent 的安全边界。请严格遵守。

🔒 安全规则(必须遵守)
  • 🚫 绝不读取、回显或打印 AK/SK 值(例如,cat ~/.hcloud/config.json、echo $HW_ACCESS_KEY 均禁止)
  • 🚫 绝不读取或 cat 凭证文件,例如 ~/.hcloud/config.json 或任何可能包含密钥的文件
  • 🚫 绝不要求用户在对话或命令行中直接输入 AK/SK
  • 🚫 绝不执行 hcloud configure set --cli-access-key=... --cli-secret-key=... — 凭证配置是用户的责任,应在 Agent 会话之外完成
  • 🚫 绝不在每次 API 调用时传入 --cli-access-key/--cli-secret-key — 在整个请求期间,这些值都会暴露在进程列表(ps aux)中
  • ✅ 始终使用 hcloud configure list 检查凭证状态(仅检查是否存在,不查看值)
  • ✅ 如果不存在有效配置文件,停止并指导用户在本会话之外配置凭证
  • ✅ 建议使用权限最小化的 IAM 用户,而不是主账号
✅ Agent 凭证检查(唯一可接受的检查方式)
# Step 1: Check credential status — presence only, not values
hcloud configure list
  • ✅ 预期结果:显示具有 mode: AKSK 的有效配置文件

  • ❌ 如果结果为空/无效 → 按照以下 3 个步骤指导用户:

    逐步指导(可复制给用户):

    "未找到有效凭证。请在终端中按照以下 3 个步骤操作:"

    ① 获取 AK/SK 登录 Huawei Cloud 控制台 → IAM → 访问密钥。如果还没有访问密钥,请点击“创建访问密钥”并妥善保存。

    ② 在终端中运行以下命令(一次性设置):

    hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>
    

    (将 <YOUR_AK> 和 <YOUR_SK> 替换为步骤 ① 中获取的值)

    ③ 完成后请告诉我“已配置”,我会验证配置是否生效。

    注意:configure set 命令会将凭证存储在 ~/.hcloud/config.json 中。此后,所有 hcloud 命令都会自动使用这些凭证,无需再次传入 AK/SK。

    Agent:请勿自行执行任何 configure set 命令。

🔧 用户责任(用于文档说明,不用于 Agent 执行)

用户在 Agent 会话之外(在自己的终端中)配置凭据:

# One-time setup — run this in your terminal, NOT in the agent chat
HISTCONTROL=ignorespace
 hcloud configure set --cli-access-key=<YOUR_AK> --cli-secret-key=<YOUR_SK>

⚠️ 注意:hcloud CLI 不会读取 HW_ACCESS_KEY/HW_SECRET_KEY 环境变量(这些变量仅供 Python SDK 使用)。hcloud configure set 是唯一受支持的凭据配置方法。


工作流

步骤 1:确定操作

根据用户的请求,确定其需要执行的笔记本操作:

用户意图操作类别
创建/列出/查看/更新/删除/启动/停止笔记本实例管理
查询/续期租约租约管理
创建/删除/查询标签标签管理
保存/注册/列出/删除/同步镜像镜像管理
查询规格/集群/功能规格与集群
挂载/卸载/列出存储动态存储
步骤 2:执行 CLI 命令
hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]

{region} 必须替换为实际区域,例如 cn-north-4。不要硬编码区域。

步骤 2.5:查阅已知问题(仅写入操作)

执行任何写入操作之前,请阅读 references/known-issues.md,并检查目标 API 的已知问题、参数修正和所需的解决方法。

需要应用的常见解决方法:

API问题解决方法
CreateNotebook (EVS)CLI 拒绝 --volume.category=EVS使用带有 {"body":{...}} 包装对象的 --cli-jsonInput,并显式指定 --project_id
CreateNotebook参数名 flavor_id 错误使用 --flavor
CreateNotebook参数名 volume.size 错误使用 --volume.capacity
CreateNotebookownership=PRIVATE 无效使用 MANAGED 或 DEDICATED
AttachDynamicStorageSTOPPED 实例被拒绝确保实例处于 RUNNING 状态
AttachDynamicStoragemount_path 格式错误必须以 /data/ 开头并以 / 结尾
RegisterImagearch 大小写不匹配使用大写的 X86_64/AARCH64
RenewLeasetype 大小写不匹配使用小写的 timing/idle

对所有写入操作,此步骤都是强制要求。跳过此步骤可能导致 CLI 参数错误或已记录过的 API 故障。

步骤 3:处理写入操作

对于所有写入操作(Create/Update/Delete/Start/Stop/Attach/Detach/Register/Sync/Renew),执行前请征求用户确认。对于收费操作(CreateNotebook、StartNotebook),应先查询 BSS 定价,告知用户相关费用。有关定价查询工作流,请参阅 references/pricing-inquiry.md。

删除类操作交互指引:当用户请求删除标签(DeleteNotebookTags)、删除镜像分组(DeleteImageGroup)等操作但未指定具体对象时,必须先查询当前对象列表(如 ShowNotebookTags / ListImageGroup),向用户展示并确认要删除哪个对象,确认后再执行。避免因上下文不明确导致误删。


KooCLI 命令格式规范

hcloud ModelArts <Operation> --cli-region={region} [--key=value ...]
特性说明示例
服务名称固定为:ModelArtsModelArts
操作名称PascalCaseListNotebooks、CreateNotebook
区域参数--cli-region={region}--cli-region=cn-north-4
简单参数--key=value--id=xxx
索引参数--key.1=value1--tags.1.key=env
project_id若省略则自动解析使用已配置的项目 ID

注意:若省略 --project_id,系统会根据身份验证凭据自动解析该参数。仅在指定特定项目时才显式添加。


核心命令

所有 7 个功能领域中的 31 个 CLI 命令示例均记录在单独的参考文件中。

📖 有关详细命令语法、参数和示例,请阅读 references/cli-command-examples.md

快速索引
#领域API关键操作
1实例管理8CreateNotebook、ListNotebooks、ListAllNotebooks、ShowNotebook、UpdateNotebook、DeleteNotebook、StartNotebook、StopNotebook
2租约管理2ShowLease、RenewLease
3标签管理3ShowNotebookTags、CreateNotebookTags、DeleteNotebookTags
4镜像管理9CreateImage、ListImage、RegisterImage、ShowImage、DeleteImage、SyncImage、ListImageGroup、DeleteImageGroup、UpdateImageGroup
5规格与集群4ListFlavors、ShowSwitchableFlavors、ListAuthoringClusters、ShowCluster
6功能查询1ListFeatures
7动态存储4ListDynamicStorages、AttachDynamicStorage、ShowDynamicStorage、DetachDynamicStorage

执行任何命令时,务必参阅参考文件,以确认准确的参数名称、必填/可选标记和使用方式。


参数确认

参数必填说明示例
{region}是华为云区域cn-north-4、cn-east-3
{instance_id}是(大多数操作)Notebook 实例 UUIDxxx-xxx-xxx
{image_id}创建/列表镜像 UUIDxxx-xxx-xxx
{flavor_id}创建实例规格 IDmodelarts.bm.4xlarge.pro
{resource_id}标签操作用于添加标签的资源 IDxxx-xxx-xxx
{cluster_id}ShowCluster集群 IDxxx-xxx-xxx
{storage_id}存储操作存储 IDxxx-xxx-xxx
{feature}ListFeatures功能名称NOTEBOOK
{project_id}否(自动)项目 ID;省略时自动解析省略则使用默认值

SDK 回退方案

如果 CLI 操作因 CLI 缺陷而失败,请回退到 SDK:

from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmodelarts.v1.modelarts_client import ModelArtsClient
from huaweicloudsdkmodelarts.v1.region.modelarts_region import ModelArtsRegion

credentials = BasicCredentials(ak="{AK}", sk="{SK}", project_id="{project_id}")
client = ModelArtsClient.new_builder() \
    .with_credentials(credentials) \
    .with_region(ModelArtsRegion.value_of("{region}")) \
    .build()

参考文档

文档说明
references/cli-command-examples.md所有 31 个 API 的详细 CLI 命令语法和示例
references/iam-policies.md最小权限 IAM 策略
references/verification-method.md验证和测试方法
references/dataflow-diagram.mdMermaid 数据流图
references/acceptance-criteria.md验收标准清单
references/api-paths.mdSDK 源码中的 REST API 路径
references/cli-installation-guide.mdCLI 安装和身份验证指南
references/known-issues.md已知问题和解决方法
references/pricing-inquiry.md可计费操作的 BSS 价格查询指南

已知问题(摘要)

完整详情:references/known-issues.md

#问题关键要点
1CLI 未在 volume.category 枚举中包含 EVS使用带 body 封装的 --cli-jsonInput,并显式指定 --project_id
2存储类别 × 所有权矩阵EVS:MANAGED ✅,OBS/OBSFS:DEDICATED ✅,OBS/OBSFS:MANAGED ❌
3DEDICATED 所有权要求提供 pool_id先查询专用存储池,再传入顶层 pool_id
4将 OBS 用作 data_volume 会静默失败将 OBS 用作主 volume,或将 OBSFS 用作 data_volume
5存储桶类型(POSIX 与 OBJECT)无关紧要两者都支持 DEDICATED 所有权
6不支持 OBSFS:MANAGED 扩展存储对 OBSFS 使用 DEDICATED
7OBS/OBSFS 主卷需要 dew_secret_name在 DEW/CSMS 密钥中存储 AK/SK
8OBS 数据卷需要 mount_path始终指定有效路径
9镜像与规格的架构不匹配确保镜像和规格的 arch 字段一致
10--cli-jsonInput 通用解决方法必须使用 {"body":{...}} 封装,并显式传入 --project_id
11ShowLease 的时长是总时长,而非剩余时长计算:remaining = (create_at + duration) - current_time
12ListImageGroup 的响应字段因 --limit 而异不指定 limit 时使用 groups 字段;指定 limit 时使用 data 字段。两种情况都要解析
13AttachDynamicStorage 仅支持 POSIX 存储桶OBJECT 存储桶会被拒绝,并返回 ModelArts.6772;使用 obsutil stat 进行验证

注意事项

  • 所有 31 个 API 接口均可通过 hcloud ModelArts CLI 使用
  • 如果 CLI 遇到问题,可回退使用 huaweicloudsdkmodelarts v1 SDK
  • 通过 --cli-region 指定区域,不应将其硬编码
  • 如果省略 --project_id,系统会根据凭据自动解析(但使用 --cli-jsonInput 时必须显式指定)
  • 执行所有写入操作(Create/Update/Delete/Start/Stop/Attach/Detach/Register/Sync/Renew)前,必须获得用户确认
  • 计费操作(CreateNotebook、StartNotebook)需要先查询 BSS 定价,以便告知用户费用
  • API 路径已根据 SDK 源码中的 _http_info resource_path 验证,不使用推断的端点
  • 任何文件中都没有硬编码的 AK/SK——凭据由 hcloud 通过 hcloud configure list/set 管理

评论

支持 Markdown