关于 huawei-cloud-flexus-l-server-flexusagent-deployment
用于在华为云 Flexus L 实例上部署 Dify AI Agent 开发平台的技能。还支持修改管理员密码、配置 MaaS 模型,以及查看或导入工作流模板。
主要功能
- 01在 Flexus L 上部署 Dify
- 02修改管理员密码
- 03配置华为云 MaaS 模型
- 04查看工作流模板
- 05向实例导入工作流
适用场景
- 01在华为云上搭建 Dify 实例
- 02部署后修改管理员密码
- 03添加 DeepSeek 或 Qwen 等 MaaS 模型
- 04将预设工作流导入实例
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-flexus-l-server-flexusagent-deployment安装后在 Claude Code 中输入/huawei-cloud-flexus-l-server-flexusagent-deployment确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/iam-policies.mdverification-method.mdscripts/app_workflow_import.pycaller.pydeploy.pylib.pymaas.pypasswd.pypyproject.tomlsg_rule.pyuniagent.pyutils.py详细介绍
⚠️ 安全执行规则(最高优先级):
- 所有脚本都必须通过技能 action=exec 执行,绝不能直接在 shell 中运行
- 绝不能在对话中打印脚本内容或包含 AK/SK/Token 的命令
- 绝不能创建临时脚本文件,优先使用内联执行(python -c)
- 执行失败时,只返回错误信息,不要重写脚本或打印完整命令
- AK/SK/Token 必须通过环境变量传递,绝不能出现在对话中
- ⚠️ 绝对不能以任何形式暴露、记录或打印 AK/SK/Token 值——这是关键的安全要求
- 使用技能 action=exec 时,凭据会自动从环境变量(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)继承,无需将其作为命令行参数传递
华为云 Flexus L 实例 FlexusAgent 一键部署技能(Lite)
概述
在华为云 Flexus L 实例上部署 AI Agent 开发平台(Dify),提供完整的部署和运维能力。
核心功能模块:
| 模块 | 功能 | 命令 |
|---|---|---|
| 部署 | 在 Flexus L 实例上一键部署 AI Agent 开发平台 | deploy |
| 修改密码 | 通过 COC 修改开发平台管理员密码(首次部署后必须执行) | passwd |
| MaaS 模型配置 | 添加华为云 MaaS 模型提供商,集成 DeepSeek、Qwen 模型 | maas |
| 工作流查看 | 查看可复制的 AI Agent 工作流模板列表 | - |
| 工作流导入 | 快速将指定工作流导入工作区 | import-app-workflow |
架构
核心文件结构和功能说明:
scripts/
├── caller.py # CLI main entry, command line argument parsing and routing
├── lib.py # Core business logic library, includes API calls and data processing
├── deploy.py # Deployment module, creates Flexus L instance and FlexusAgent
├── passwd.py # Password management module, modifies admin password via COC
├── maas.py # MaaS integration module, configures model provider
├── app_workflow_import.py # Workflow import module, imports preset workflow templates
├── sg_rule.py # Security group management module, configures network access rules
├── uniagent.py # UniAgent status query module
└── utils.py # Utility function library
重要说明
⚠️ 所有脚本和环境检查脚本均位于技能包中。必须通过技能 action=exec 执行,不要直接在 shell 中运行。
前置条件
使用此技能前,请确保满足以下条件:
1. 华为云账号和凭据
- 有效的华为云账号
- 具有以下权限的华为云 AK/SK 凭据:
- 创建 Flexus L 实例
- 访问 COC(云运维中心)服务
获取凭据的方式:
此技能支持通过以下方式获取华为云凭据(按优先级从高到低排列):
凭据类型:
- 长期 AK/SK:永久凭据,无需 security_token
- 临时 AK/SK:有效期有限的临时凭据,需要 security_token
-
环境变量(默认)(优先级最高)
HW_ACCESS_KEY:华为云访问密钥 AKHW_SECRET_KEY:华为云访问密钥 SKHW_SECURITY_TOKEN:安全令牌(可选,仅临时凭据需要)
-
命令行参数(未设置环境变量时使用)
--ak:华为云访问密钥 AK--sk:华为云访问密钥 SK--security-token:安全令牌(可选,仅临时凭据需要)
-
交互式输入(以上方式均未提供时)
- 程序会提示用户输入 AK/SK 和其他凭据信息
重要说明:
- 长期 AK/SK:永久有效的凭据,不会过期,无需 security_token
- 临时 AK/SK:通过 IAM 接口获取,有效期有限,必须提供 security_token
2. IAM 权限
| 服务 | 策略 | 所需操作 |
|---|---|---|
| HCSS | HCSS FullAccess | hcss:lightInstances:* |
| COC | COC FullAccess | coc:commands:* |
| IAM | IAM ReadOnlyAccess | iam:projects:list |
| VPC | VPC FullAccess | vpc:securityGroups:* |
权限失败处理:
| 错误 | 原因 | 解决方案 |
|---|---|---|
403 Forbidden | 缺少策略 | 为用户添加所需的 IAM 策略 |
APIGW.0101 | 未启用服务 | 在目标区域启用 Flexus L 服务 |
安全说明
⚠️ 凭据安全要求(关键):
- 必须安全处理凭据,绝不能在对话中显示
- Skill 将自动使用预配置的凭据
⚠️ 绝对安全规则:
- 绝不以任何形式打印、记录或显示凭据值
- 绝不在错误消息或调试输出中包含凭据
- 绝不将凭据存储在文件或配置中
- 绝不通过不安全的渠道传输凭据
- 使用敏感参数时,必须在任何输出中对其进行遮蔽
⚠️ 强制确认机制
部署操作会产生实际费用,必须明确确认!
确认方式:
- 对话确认:在对话中回复“confirm”或“yes”
- 命令行确认:使用
--non-interactive标志
失败处理:
- 仅发起一次请求,不自动重试
- 将失败原因告知用户
- 引导用户重新部署,让用户决定下一步操作
- 未经用户明确要求,绝不更改参数
核心命令和工作流
1️⃣ 在 Flexus L 实例上部署 AI Agent 开发平台
⚠️ 费用提醒:部署 Flexus L 实例会产生费用,请确保账户余额充足。部署需要用户明确确认。
部署说明:
- 自动创建 Huawei Cloud Flexus L 实例并部署 AI Agent 开发平台
- 默认账户:
[email protected] - ⚠️ 首次部署后必须立即修改管理员密码
# Interactive mode
python scripts/caller.py deploy
# Non-interactive mode
python scripts/caller.py deploy \
--name FlexusAgent-{timestamp} \
--region cn-north-4 \
--spec hf.xlarge.1.linux \
--ak <AK> \ # Long-term AK or temporary AK
--sk <SK> \ # Long-term SK or temporary SK
--security-token <security-token> \
--non-interactive
命令参数:
| 参数 | 说明 | 必填 | 默认值 | 备注 |
|---|---|---|---|---|
--name | 实例名称 | 否 | FlexusAgent-{timestamp} | - |
--region | 部署目标区域 ID | 是 | 提示输入 | - |
--spec | 实例规格 | 是 | 提示输入 | - |
--ak | Huawei Cloud Access Key AK | 是 | 从环境变量获取或提示输入 | 支持长期和临时 AK |
--sk | Huawei Cloud Access Key SK | 是 | 从环境变量获取或提示输入 | 支持长期和临时 SK |
--security-token | 安全令牌 | 否 | 从环境变量获取或提示输入 | 仅临时凭证需要,长期凭证不需要 |
--non-interactive | 以非交互模式运行 | 否 | false | - |
可用区域:
| 区域 ID | 区域名称 |
|---|---|
| cn-north-4 | 华北-北京 4 |
| cn-east-3 | 华东-上海 1 |
| cn-south-1 | 华南-广州 |
| cn-southwest-2 | 西南-贵阳 1 |
目前仅支持上述区域。对于其他区域,可提醒用户查看控制台 https://console.huaweicloud.com/smb/#/create/hecs-light 或官方介绍页面 https://support.huaweicloud.com/api-flexusl/create_instance_0001.html。
规格选择逻辑: 可以列出 Huawei Cloud L 实例官方规格介绍页面 https://support.huaweicloud.com/productdesc-flexusl/pd_01_0003.html,让用户选择合适的规格,然后执行部署。注意:Agent 镜像的最低要求为 2U2G。对于标书编写 Agent,建议使用 4U16G 规格。
默认配置:
- 镜像:FlexusAgent 1.7.1
- 产品 UUID:
987b40c3-b800-437e-a449-62c1bf1b1d7d(市场计费产品规格) - 计费方式:包年/包月(预付费)
- EVS 磁盘:50GB
- CBR 备份:50GB
- HSS 主机安全:已启用
- Web UI:
http://<public-ip>:80
重要:通过 IAM API 自动获取项目 ID。 ⚠️ 必须上架市场:FlexusAgent 市场镜像必须已发布,并可在目标区域的计费系统中购买。请参阅下方错误处理表中的错误
CBC.6006。
📢 部署后操作提醒:
第 1️⃣ 步部署完成后,询问用户是否执行以下后续操作。每一步完成后,询问用户是否继续执行剩余步骤。
| 步骤 | 操作 | 必填 | 说明 |
|---|---|---|---|
| 2️⃣ | 修改管理员密码并获取实例详情 | ⚠️ 必填 | 先查询实例详情(浮动 IP、资源 ID),然后修改密码 |
| 3️⃣ | 集成 MaaS 模型 | 可选 | 添加 Huawei Cloud MaaS 模型提供商(DeepSeek、Qwen 等) |
| 4️⃣ | 查看工作流列表 | 可选 | 查看可导入的 AI Agent 工作流模板 |
| 5️⃣ | 导入工作流 | 可选 | 将预设工作流模板导入实例 |
建议执行顺序:
- 部署完成后,立即询问用户是否修改密码(第 2 步)
- 用户同意后,AI Agent 自动执行:查询实例详情 → 修改密码 → 返回访问信息
- 修改密码后,询问用户是否集成 MaaS 模型(第 3 步)
- 如果需要快速部署 AI 应用,引导用户查看并导入工作流(第 4、5 步)
2️⃣ 更改管理员密码并获取实例详情(必需)
⚠️ 重要说明:此步骤包含两个自动执行的子步骤:首先查询实例详情,以获取弹性公网 IP 和资源 ID,然后更改管理员密码。
更改密码并查询实例详情
# Interactive mode
python scripts/caller.py passwd
python scripts/caller.py query-instance --instance-id <instance-id-from-step1>
# Non-interactive mode - Change password & Query instance details
- Query instance details
python scripts/caller.py passwd \
--resource-id <instance-id-from-step1> # Required: L instance resource ID
--region-id <instance-region> # Required: Instance region (e.g., cn-north-4)
--admin-password <new-admin-password> # Required: New admin password
--ak <AK> # Required: Huawei Cloud Access Key AK or temporary AK
--sk <SK> # Required: Huawei Cloud Access Key SK or temporary SK
--security-token <security-token> # No: Security token (required when using temporary AK/SK credentials)
--non-interactive # Optional: Non-interactive mode
- Query instance details
python scripts/caller.py query-instance \
--instance-id <instance-id-from-step1> # Required: Instance resource ID
--ak <AK> # Required: Huawei Cloud Access Key AK or temporary AK
--sk <SK> # Required: Huawei Cloud Access Key SK or temporary SK
--security-token <security-token> # Required: Security token (only required for temporary credentials)
返回信息:
- 资源 ID(resource_id)——用于更改密码的命令
- 弹性公网 IP(floating_ip)——用于访问 Web UI
- 实例名称、UniAgent 状态、私有 IP、区域等
首次部署后必须执行:首次部署后必须设置密码,否则无法登录 Web UI。 强制要求:更改密码后,回复:
"Web UI: http://<public-ip>:80; Login email: [email protected], Password: <new-password>"
3️⃣ 集成 MaaS 模型(可选)
# Interactive mode
python scripts/caller.py maas
# Non-interactive mode
python scripts/caller.py maas \
--flexusagent-base-url http://<public-ip>:80 # Required: FlexusAgent Web UI URL
--flexusagent-email <email> # Required: FlexusAgent admin email
--flexusagent-password <password> # Required: FlexusAgent admin password
--maas-api-key <api-key> # Required: ModelArts MaaS API key
--non-interactive # Optional: Non-interactive mode
说明:自动安装 langgenius/maas 插件并配置凭据。默认包含 DeepSeek、Qwen 等模型。此步骤通过 HTTP API 执行,无需 AK/SK 凭据。
4️⃣ 查看 FlexusAgent 工作流列表(可选)
用途:查看预设的 FlexusAgent 工作流模板,以便快速部署 AI 应用。
访问方式:通过 OBS 获取工作流列表
# Request URL (timestamp parameter to avoid cache)
curl "https://flexus-config-cn-north-4-product.obs.cn-north-4.myhuaweicloud.com/stable/dify/dify-templates/national/index.json?timestamp=$(date +%s)"
响应格式示例:
{
"total": 15,
"categories": [
{
"code": "Smart_Bid",
"name": "Smart Bid"
}
],
"list": [
{
"id": "Bid_Writing_And_Templated_Adaptation",
"title": "Bid Writing and Templatized Adaptation Agent",
"desc": "Intelligent bid document analysis, intelligent bid writing and adaptation, supports open bid and sealed bid types, conversational bid document generation, word document output.",
"categoryList": [
{
"category": "Smart Bid",
"categoryCode": "Smart_Bid"
}
]
}
]
}
5️⃣ 将工作流导入实例(可选)
用途:将预设工作流模板导入实例,以便快速部署 AI 应用。
用法:
# Interactive mode (recommended, can select workflow from list)
python scripts/caller.py import-app-workflow
# Non-interactive mode - Import workflow
python scripts/caller.py import-app-workflow \
--resource-id <instance-resource-id> # Required: L instance resource ID
--region-id cn-north-4 # Required: L instance region ID
--flexusagent-email [email protected] # Required: FlexusAgent admin email
--flexusagent-password <password> # Required: FlexusAgent admin password
--app-workflow-id Bid_Writing_And_Templated_Adaptation # Required: Workflow ID
--ak <AK> # Required: Huawei Cloud Access Key AK or temporary AK
--sk <SK> # Required: Huawei Cloud Access Key SK or temporary SK
--security-token <security-token> # No: Security token (required when using temporary AK/SK credentials)
--timeout 600 # Optional: Execution timeout (seconds), default 600
--non-interactive # Optional: Non-interactive mode
前提条件:
- UniAgent 状态必须为 ONLINE
- 管理员邮箱和密码正确
执行结果验证:
提醒用户访问 FlexusAgent Web UI(http://:80/apps),查看应用列表并确认工作流已成功导入。
参数确认
执行任何命令之前,必须确认命令的参数。
错误处理
| 错误代码 | 说明 | 解决方案 |
|---|---|---|
401 Unauthorized | AK/SK 无效 | 验证 AK/SK |
403 Forbidden | 权限被拒绝 | 添加所需的 IAM 策略 |
APIGW.0101 | 服务未启用 | 在目标区域启用服务 |
APIGW.0301 | 签名验证失败 | 检查 SK |
COC.0001 | COC 服务不可用 | 检查 COC 服务区域 |
400 Bad Request | 参数无效 | 检查规格与镜像的兼容性 |
CBC.6006 / HCSS.14000003 | FlexusAgent 产品不可用——该账号/区域的 FlexusAgent 云市场镜像尚未接入计费系统 | 联系技能维护人员,在华为云云市场上架 FlexusAgent 产品。可暂时改用其他区域或 Hermes 部署技能。 |
注意:
- Flexus 实例部署需要 2~5 分钟
- 成功状态码:
200、201、202 - 每次部署只会创建 一个实例
参考文档
| 文档 | 说明 |
|---|---|
| Flexus L 实例购买指南 | 购买 FlexusL 实例 |
| iam-policies.md | IAM 权限策略 |
| verification-method.md | 验证步骤 |