关于 huawei-cloud-ecs-sqlbot-deploy
该技能通过华为云 X 实例部署 SQLBot,面向需要在云端搭建智能查询应用的用户。流程涵盖凭据验证、实例配置确认、安全组设置及通过 COC 执行部署。
主要功能
- 01验证华为云凭据
- 02创建 Ubuntu 22.04 实例
- 03配置安全组与 EIP
- 04通过 COC 部署 SQLBot
- 05部署前要求用户确认配置
适用场景
- 01在华为云新建服务器并部署 SQLBot
- 02检查凭据并确认实例配置后再创建资源
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-ecs-sqlbot-deploy安装后在 Claude Code 中输入/huawei-cloud-ecs-sqlbot-deploy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/acceptance-criteria.mdcli-installation-guide.mdiam-policies.mdverification-method.mdscripts/coc_deploy.pyconfig.pydeploy_sqlbot.pyhuawei_cloud_ecs.pypyproject.tomlquery_regions.pyutils.py详细介绍
🚀 购买华为云 X 实例服务器,部署 SQLBot
⛔⛔⛔ 关键:必须严格按顺序执行 ⛔⛔⛔
必须严格按照以下顺序执行这些步骤。不得跳过任何步骤。
┌─────────────────────────────────────────────────────────────────┐
│ STEP 1: Auto-check environment variables for credentials │
│ ↓ │
│ STEP 2: Get Region (if env credentials found) OR │
│ Get Credentials (AK/SK/Region) from user │
│ ↓ │
│ STEP 3: Validate credentials + Show available flavors │
│ ↓ │
│ STEP 4: ⛔ SHOW CONFIG + GET USER CONFIRMATION ⛔ │
│ ⛔ WAIT FOR USER TO REPLY "default" OR "custom" ⛔ │
│ ⛔ IF "custom": SECOND CONFIRMATION REQUIRED ⛔ │
│ ⛔ DO NOT PROCEED UNTIL USER CONFIRMS ⛔ │
│ ↓ │
│ STEP 5: Create server (ONLY AFTER user confirmation) │
│ ↓ │
│ STEP 6: Deploy SQLBot │
│ ↓ │
│ STEP 7: Return results │
└─────────────────────────────────────────────────────────────────┘
⚠️ 如果跳过步骤 4(用户确认),则任务失败。 ⚠️ 如果用户选择“custom”,必须再次获得确认。
执行前检查清单
创建任何资源之前,请确认以下所有事项:
| # | 检查项 | 状态 |
|---|---|---|
| 1 | 凭据可用(环境变量或用户提供) | ☐ 完成 |
| 2 | 凭据验证成功 | ☐ 完成 |
| 3 | 用户已提供区域 | ☐ 完成 |
| 4 | 用户已确认配置(default/custom) | ☐ 必须 |
| 5 | 用户明确表示选择“default”或“custom” | ☐ 必须 |
⛔ 如果第 4 项和第 5 项未勾选,请停止并向用户确认。
概述
此技能用于购买华为云 X 实例服务器,并部署 SQLBot 智能查询应用。
服务器规格:x86 架构、Ubuntu 22.04 服务器 64 位,默认配置为 4 核 8GB 内存(x1.4u.8g)
主要功能:
- AK/SK 身份验证(支持临时凭据)
- 创建 X 实例 + Ubuntu 22.04
- 自动配置安全组(端口 8000 仅允许内网访问)
- 通过 COC 云运维中心部署
- 一键完成:创建服务器 → 配置安全组 → 部署 SQLBot
前提条件
账户要求:拥有有效的华为云账户且余额充足,并具备创建 X 实例、安全组、绑定 EIP 和访问 COC 的权限
凭据要求:
| 凭据类型 | 必需参数 | 安全性 | 说明 |
|---|---|---|---|
| 临时(推荐) | AK + SK + Security Token | 高 | 自动过期,更安全 |
| 永久 | AK + SK | 中 | 不会过期,请妥善保管 |
分步执行指南
━━━ 步骤 1:自动检查凭据(环境变量) ━━━
用户触发此技能时,首先自动从环境变量中获取凭据,无需询问用户:
# Check credentials (prefer temporary credentials)
export HW_ACCESS_KEY
export HW_SECRET_KEY
export HW_SECURITY_TOKEN
判断逻辑:
| 凭据状态 | 下一步 |
|---|---|
| ✅ HW_ACCESS_KEY + HW_SECRET_KEY + HW_SECURITY_TOKEN 存在 | 继续步骤 2(仅询问区域,使用临时 AK/SK 身份验证) |
| ✅ HW_ACCESS_KEY + HW_SECRET_KEY 存在(无 Token) | 继续步骤 2(仅询问区域,使用永久 AK/SK 身份验证) |
| ❌ 未找到环境变量 | 提示用户配置凭据(优先使用环境变量),然后继续步骤 2 |
| ❌ 身份验证失败 | 提示用户检查或重新配置凭据,然后继续步骤 2 |
⚠️ 安全建议:
- 优先使用临时凭据:安全级别更高,凭据会自动过期
- 通过环境变量配置:应通过环境变量配置凭据(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)
- 保护敏感信息:AK/SK 属于敏感信息,切勿在对话中输入或泄露
━━━ 步骤 2:获取区域或凭据 ━━━
情况 A:检测到环境凭据
OK! I will help you deploy SQLBot on Huawei Cloud X instance.
📋 Process Overview:
1. ✅ Environment credentials detected → User only needs to provide region
2. ⛔ Confirm configuration with you ⛔
3. Create server
4. Deploy SQLBot
⏱️ Estimated time: 10-15 minutes
Please provide:
- **Region**: Optional, default cn-north-4 (Beijing 4)
⚠️ If not provided, will use default region: cn-north-4
情况 B:未检测到环境凭据
❌ Environment credentials not detected
Please configure Huawei Cloud credentials (see "How to Get AK/SK" section).
📋 Process Overview:
1. ❌ Environment credentials not detected → User needs to provide credentials + region
2. ⛔ Confirm configuration with you ⛔
3. Create server
4. Deploy SQLBot
⏱️ Estimated time: 10-15 minutes
Please provide:
- **Access Key (AK)**: Required
- **Secret Key (SK)**: Required
- **Security Token**: Required for temporary credentials, not needed for permanent
- **Region**: Optional, default cn-north-4 (Beijing 4)
**注意:**我们优先从环境变量中获取凭据,绝不会要求用户直接输入 AK/SK。不过,如果用户主动通过其他方式提供凭据(例如,在对话中输入或通过配置文件提供),我们仍支持解析。
请附上区域表格和 AK/SK 说明(见下文)。
然后等待用户提供信息。
━━━ 步骤 3:验证凭据 ━━━
收到区域/凭据后:
- 验证凭据身份验证
- 向用户显示配置
显示以下说明:
💡 Note: Server flavor availability varies by region.
🔗 For details, see: https://www.huaweicloud.com/pricing/calculator.html#/hecs
验证成功后,继续步骤 4:用户确认。
━━━ 步骤 4:用户确认(⛔ 必须执行) ━━━
⛔ 此步骤必须执行,不可跳过。⛔
显示配置并请求确认(参见“参数确认”部分):
⚠️ 注意:必须显示服务名称,让用户知道将使用什么名称。
⛔ 停止并等待用户回复“default”或“custom”。
⛔ 在用户确认之前,不要继续执行步骤 5。
⛔ 在用户确认之前,不要创建任何资源。
如果用户回复“custom”:
- 询问用户想自定义哪些项目
- 根据用户输入更新配置
- ⛔ 必须进行第二次确认 ⛔——显示更新后的配置并再次请求用户确认(参见“参数确认”部分)
- 等待用户回复“confirm”或“modify”
- 只有在第二次确认后,才能继续执行步骤 5
**如果用户回复“default”:**继续执行步骤 5。
━━━ 步骤 5:创建服务 ━━━
只有在用户确认配置后,才能执行此步骤。
通知用户:“⏳ 正在创建服务……”
- 创建安全组 sg-sqlbot-YYYYMMDDHHMM
- 使用已确认的配置创建 X 实例
- 绑定 EIP
- 等待服务就绪
通知用户:“✅ 服务已创建!”
━━━ 步骤 6:部署 SQLBot ━━━
通知用户:“⏳ 正在通过 COC 部署 SQLBot……”
- 在云运维中心(COC)中创建安装脚本
- 通过 COC 在目标实例上执行脚本
- 等待部署完成并验证结果
通知用户:“✅ 已通过 COC 部署 SQLBot!”
━━━ 步骤 7:返回结果 ━━━
必须提供以下全部内容:
🎉 SQLBot Deployment Complete!
📋 Server Information:
- Name: x-SQLBot-YYYYMMDDHHMM
- Public IP: X.X.X.X
- Private IP: 192.168.X.X
🔐 Access Information:
- Server Password: Test@123456 ⚠️ Change immediately!
- SQLBot URL: http://X.X.X.X:8000 (Note: Please allow your accessing machine IP to access port 8000 in the security group before accessing)
- SQLBot Username: admin
- SQLBot Password: SQLBot@123456
🔗 Huawei Cloud Console: https://console.huaweicloud.com/console/?region={region}#/ecs/manager/vmList
⚠️ Security Reminders:
1. Change server password immediately after login
2. Change SQLBot admin password after login
3. Release server when done to save costs
支持的区域(19 个区域)
| 区域名称 | 区域代码 |
|---|---|
| 中国北部 - 北京 4 | cn-north-4 |
| 中国东部 - 上海 1 | cn-east-3 |
| 中国南部 - 广州 | cn-south-1 |
| 中国西南 - 贵阳 1 | cn-southwest-2 |
| 中国东部 2 | cn-east-4 |
| 中国东部 - 青岛 | cn-east-5 |
| 中国北部 - 乌兰察布 1 | cn-north-9 |
| 中国 - 香港 | ap-southeast-1 |
| 亚太 - 曼谷 | ap-southeast-2 |
| 亚太 - 新加坡 | ap-southeast-3 |
| 亚太 - 雅加达 | ap-southeast-4 |
| 亚太 - 马尼拉 | ap-southeast-5 |
| 非洲 - 开罗 | af-north-1 |
| 非洲 - 约翰内斯堡 | af-south-1 |
| 拉丁美洲 - 墨西哥城 2 | la-north-2 |
| 拉丁美洲 - 圣地亚哥 | la-south-2 |
| 拉丁美洲 - 圣保罗 1 | sa-brazil-1 |
| 中东 - 利雅得 | me-east-1 |
| 土耳其 - 伊斯坦布尔 | tr-west-1 |
如何获取 AK/SK
方法 1:临时凭证(推荐 🔒)
优点:
- ✅ 自动过期,安全性更高
- ✅ 适用于临时部署任务
- ✅ 即使泄露,影响也有限
步骤:
- 登录华为云 API Explorer:https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/debug?api=CreateTemporaryAccessKeyByToken&version=v3
- 点击“仅显示必填字段”→ 在请求体中填写“Token”
- 点击“调试”以获取凭证
- 复制 AK、SK 和 Security Token
⚠️ 注意:临时凭证有有效期(默认 15 分钟至 1 小时),请及时使用。
方法 2:永久凭证
优点:
- ✅ 长期有效,无需频繁刷新
- ✅ 适用于自动化脚本和 CI/CD
步骤:
- 登录华为云控制台:https://console.huaweicloud.com/
- 点击头像(右上角)→ 我的凭证
- 在左侧菜单中选择“访问密钥”
- 点击“创建访问密钥”
- 下载 CSV 文件(包含 AK 和 SK)
⚠️ 注意:永久凭证永不过期,请妥善保管!不要将 CSV 文件上传到代码仓库。
凭证类型对比
| 类型 | 参数 | 安全性 | 有效期 | 使用场景 |
|---|---|---|---|---|
| 临时 | AK + SK + Security Token | 高 | 自动过期 | 临时部署、一次性任务 |
| 永久 | AK + SK | 中 | 永不过期 | 自动化脚本、CI/CD |
安全建议:部署任务优先使用临时凭证。
默认配置
| 项目 | 默认值 |
|---|---|
| 服务名称 | x-SQLBot-YYYYMMDDHHMM |
| 规格 | x1.4u.8g (4U8G, x86_64) |
| 镜像 | Ubuntu 22.04 Server 64-bit |
| 系统盘 | 80GB 高 IO |
| 计费模式 | 按需计费 |
| 安全组 | sg-sqlbot-YYYYMMDDHHMM(新创建) |
| EIP 带宽 | 300M |
| EIP 计费 | 按流量计费 |
| 服务密码 | Test@123456 |
| SQLBot 用户名 | admin |
| SQLBot 密码 | SQLBot@123456 |
| 开放端口 | 8000(仅限内网) |
费用参考
默认配置(4U8G,按需计费):
- 服务:约 0.47 CNY/小时
- 流量:约 0.8 CNY/GB
价格计算器:https://www.huaweicloud.com/pricing/calculator.html#/hecs
核心命令
| 命令/选项 | 功能 | 说明 |
|---|---|---|
(no option) | 部署 | 购买 X 实例并部署 SQLBot 智能查询应用 |
--list-regions / -l | 显示可用区域 | 显示所有支持的区域和 X 实例类型 |
--test | 测试连接 | 验证 AK/SK 凭据 |
常用参数: --ak、--sk、--region、--flavor、--charging-mode
默认值:请参阅“默认配置”部分
参数确认
⛔ 必须:部署前必须获得用户确认。未经确认,不得创建任何资源。
确认流程
- 显示配置:列出服务名称、区域、规格、镜像、系统盘、计费模式、EIP 等。
- 等待用户回复:用户必须明确回复
"default"(使用默认配置)或"custom"(自定义配置)。 - 再次确认(如需):如果用户选择
"custom",请显示更新后的配置并再次请求确认。
需要确认的参数
可自定义参数:服务名称、区域、规格、镜像、系统盘、计费模式、EIP 带宽(默认值请参阅“默认配置”部分)
确认模板
📋 Server Configuration:
| Item | Value |
|------|-------|
| Server Name | x-SQLBot-YYYYMMDDHHMM (auto-generated) |
| Region | {user-provided region} |
| Flavor | x1.4u.8g (4 cores 8GB) |
| Image | Ubuntu 22.04 Server 64-bit |
| System Disk | 80GB |
| Billing Mode | On-demand (pay-as-you-go) |
| EIP | 300M bandwidth, pay-by-traffic |
💰 Price Calculator: https://www.huaweicloud.com/pricing/calculator.html#/hecs
⛔ Please confirm: Use "default" configuration or "custom" configuration?
自定义配置的二次确认
如果用户选择 "custom",请显示更新后的配置并请求二次确认:
📋 Updated Server Configuration:
| Item | Value |
|------|-------|
| Server Name | {custom name} |
| Region | {custom region} |
| Flavor | {custom flavor} |
| Image | {custom image} |
| System Disk | {custom size}GB |
| Billing Mode | {custom mode} |
| EIP | {custom bandwidth}M bandwidth, pay-by-traffic |
⛔ Please confirm: Is the above configuration correct? Reply "confirm" to proceed or "modify" to change.
脚本用法
选项 1:使用命令行参数
python3 scripts/deploy_sqlbot.py \
--ak YOUR_AK \
--sk YOUR_SK \
--security-token YOUR_SECURITY_TOKEN \
--region cn-north-4 \
--notify-user-id <feishu_user_id>
选项 2:使用环境变量(推荐用于临时凭据)
export HW_ACCESS_KEY="your-temp-ak"
export HW_SECRET_KEY="your-temp-sk"
export HW_SECURITY_TOKEN="your-security-token"
python3 scripts/deploy_sqlbot.py --region cn-north-4 --notify-user-id <feishu_user_id>
参数:
--ak:访问密钥(也可通过 HW_ACCESS_KEY 环境变量设置)--sk:秘密密钥(也可通过 HW_SECRET_KEY 环境变量设置)--security-token:临时凭据的安全令牌(也可通过 HW_SECURITY_TOKEN 环境变量设置)--region:区域代码(默认值:cn-north-4,北京 4)--flavor:服务规格(默认值:x1.4u.8g)--volume-size:系统盘大小(默认值:80GB)--bandwidth:EIP 带宽(默认值:300M)--charging-mode:postPaid(按需计费)或 prePaid(包月)
⚠️ 需要避免的常见错误
| 错误 | 正确做法 |
|---|---|
| 未经用户确认便创建服务 | 始终先获得确认 |
| 假定用户想使用默认配置 | 明确询问:“default”还是“custom”? |
| 跳过确认步骤 | 此步骤为必须项,不可跳过 |
| 显示配置后直接继续 | 等待用户回复后再继续 |