alibabacloud-milvus-manage
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAlibaba Cloud Milvus Instance Full Lifecycle Management
阿里云Milvus实例全生命周期管理
Manage Alibaba Cloud managed Milvus instances via CLI. You are an SRE who understands Milvus—not just calling APIs, but knowing when to call them and what parameters to use.
aliyun通过 CLI管理阿里云托管的Milvus实例。你是一位懂Milvus的SRE——不仅会调用API,还要知道什么时候调用以及使用什么参数。
aliyunAuthentication
鉴权
Reuse the profile configured in CLI. Switch accounts with , view configuration with .
aliyun--profile <name>aliyun configure list复用 CLI中已配置的配置文件。可通过切换账号,通过查看配置。
aliyun--profile <name>aliyun configure listUser-Agent Configuration
User-Agent配置
This Skill calls Alibaba Cloud APIs via CLI and must set User-Agent to identify the request source.
aliyunConfiguration Methods (choose one):
-
Environment Variable Method (Recommended):bash
export ALIBABA_CLOUD_USER_AGENT="AlibabaCloud-Agent-Skills" -
Command Line Parameter Method: Addparameter to each aliyun call.
--user-agent AlibabaCloud-Agent-Skills
Recommended to use environment variable method—set once and all subsequent calls automatically apply.
本Skill通过 CLI调用阿里云API,必须设置User-Agent来标识请求来源。
aliyun配置方式(二选一):
-
环境变量方式(推荐):bash
export ALIBABA_CLOUD_USER_AGENT="AlibabaCloud-Agent-Skills" -
命令行参数方式: 为每一次aliyun调用添加参数。
--user-agent AlibabaCloud-Agent-Skills
推荐使用环境变量方式——设置一次后所有后续调用都会自动生效。
Milvus Domain Knowledge
Milvus领域知识
Instance Versions
实例版本
| Version | Use Case | Description |
|---|---|---|
| Standalone (standalone_pro) | Development & Testing | Single node deployment, 1 component, suitable for feature verification and small data scenarios |
| Cluster (HA) | Production | 5-component distributed deployment, high availability, suitable for large data and high concurrency scenarios |
Not sure which to choose? Use standalone for development/testing, cluster for production.
| 版本 | 适用场景 | 描述 |
|---|---|---|
| 单机版(standalone_pro) | 开发测试 | 单节点部署,仅1个组件,适用于功能验证和小数据场景 |
| 集群版(HA) | 生产环境 | 5组件分布式部署,高可用,适用于大数据和高并发场景 |
不确定选哪个?开发测试用单机版,生产环境用集群版。
Component Roles (Cluster Version 5 Components)
组件角色(集群版5个组件)
| Component | Responsibility | Scaling Trigger Condition |
|---|---|---|
| proxy | Request entry point, load balancing, protocol parsing | High request QPS |
| query | Vector search execution (memory-intensive), loads Segments to memory | Memory watermark > 70% or high search latency |
| data | Data write, Flush, Compaction (CPU-intensive) | CPU watermark > 90% |
| streaming | Stream message processing (WAL / message queue replacement layer) | High write throughput |
| mix_coordinator | Coordination node (RootCoord + QueryCoord + DataCoord merged) | Many metadata operations |
| 组件 | 职责 | 扩缩容触发条件 |
|---|---|---|
| proxy | 请求入口、负载均衡、协议解析 | 请求QPS过高 |
| query | 向量搜索执行(内存密集型),将Segments加载到内存 | 内存水位>70%或搜索延迟过高 |
| data | 数据写入、Flush、Compaction(CPU密集型) | CPU水位>90% |
| streaming | 流消息处理(WAL/消息队列替代层) | 写入吞吐量过高 |
| mix_coordinator | 协调节点(RootCoord + QueryCoord + DataCoord合并) | 元数据操作过多 |
CU (Compute Unit)
CU(计算单元)
CU is the compute unit for Milvus instances, 1 CU ≈ 4GB memory.
| cuType | Description | Applicable Scenario |
|---|---|---|
| General type (CPU:Memory = 1:4) | Most scenarios (default) |
| Performance type (CPU-intensive) | Index building, high-concurrency writes |
| Capacity type (large memory) | QueryNode large data search |
CU是Milvus实例的计算单位,1 CU ≈ 4GB内存。
| cuType | 描述 | 适用场景 |
|---|---|---|
| 通用型(CPU:内存 = 1:4) | 绝大多数场景(默认) |
| 性能型(CPU密集型) | 索引构建、高并发写入 |
| 容量型(大内存) | QueryNode大数据量搜索 |
Recommended Configuration
推荐配置
- Development & Testing: Standalone (standalone_pro) + PayAsYouGo, 4 CU (general), ~16GB memory
- Production: Cluster (HA) + 5 components, 36 CU minimum
- streaming(2×4CU) + data(2×4CU) + proxy(2×2CU) + mix_coordinator(2×4CU) + query(2×4CU)
- 开发测试:单机版(standalone_pro)+ 按量付费,4 CU(通用型),约16GB内存
- 生产环境:集群版(HA)+ 5组件,最低36 CU
- streaming(2×4CU) + data(2×4CU) + proxy(2×2CU) + mix_coordinator(2×4CU) + query(2×4CU)
⚠️ Component CU Specification Limits
⚠️ 组件CU规格限制
When creating cluster instances, each component has minimum CU requirements:
| Component | Minimum CU | Notes |
|---|---|---|
| streaming | 4 CU | Does not support 2 CU |
| data | 4 CU | Does not support 2 CU |
| proxy | 2 CU | Supports 2 CU |
| mix_coordinator | 4 CU | Does not support 2 CU |
| query | 4 CU | Does not support 2 CU |
Error Example: If using 2 CU configuration for streaming/data/mix_coordinator/query, you will get an error:
Error.InternalError code: 500, pricing plan price result not found
Correct Configuration: Ensure streaming, data, mix_coordinator, query use 4 CU or above.
创建集群实例时,每个组件有最低CU要求:
| 组件 | 最低CU | 备注 |
|---|---|---|
| streaming | 4 CU | 不支持2 CU |
| data | 4 CU | 不支持2 CU |
| proxy | 2 CU | 支持2 CU |
| mix_coordinator | 4 CU | 不支持2 CU |
| query | 4 CU | 不支持2 CU |
错误示例:如果为streaming/data/mix_coordinator/query配置2 CU,会收到报错:
Error.InternalError code: 500, pricing plan price result not found
正确配置:确保streaming、data、mix_coordinator、query使用4 CU及以上规格。
Payment Methods
付费方式
- PayAsYouGo: Development & testing, pay-as-you-go, release anytime
- Subscription: Production, prepaid more cost-effective (annual/monthly instances cannot be released via API, need to request refund in console)
- 按量付费(PayAsYouGo):开发测试场景,按使用量付费,可随时释放
- 包年包月(Subscription):生产场景,预付费更划算(包年包月实例无法通过API释放,需要在控制台申请退款)
Kernel Version
内核版本
Supports 2.3 / 2.4 / 2.5 / 2.6, recommended to use latest version 2.6.
支持2.3 / 2.4 / 2.5 / 2.6版本,推荐使用最新的2.6版本。
Prerequisites
前置条件
Before creating an instance, confirm the target RegionId (e.g., ) with the user, then check if network resources are ready:
cn-hangzhoubash
undefined创建实例前,先和用户确认目标RegionId(例如),然后检查网络资源是否就绪:
cn-hangzhoubash
undefinedSet User-Agent environment variable (recommended to set once at session start)
设置User-Agent环境变量(推荐在会话启动时设置一次即可)
export ALIBABA_CLOUD_USER_AGENT="AlibabaCloud-Agent-Skills"
aliyun configure list # Credentials
aliyun vpc DescribeVpcs --RegionId <RegionId> # VPC
aliyun vpc DescribeVSwitches --RegionId <RegionId> --VpcId vpc-xxx # VSwitch (record ZoneId)
aliyun ecs DescribeSecurityGroups --RegionId <RegionId> --VpcId vpc-xxx # Security Group (for reference only)
Milvus CreateInstance doesn't require security group parameters, but confirming a security group exists in the VPC helps troubleshoot network issues.
**Supported Regions**: cn-hangzhou, cn-beijing, cn-shanghai, cn-shenzhen, cn-zhangjiakou, cn-hongkong, cn-wulanchabu, ap-southeast-1, eu-central-1.export ALIBABA_CLOUD_USER_AGENT="AlibabaCloud-Agent-Skills"
aliyun configure list # 查看凭证
aliyun vpc DescribeVpcs --RegionId <RegionId> # 查看VPC
aliyun vpc DescribeVSwitches --RegionId <RegionId> --VpcId vpc-xxx # 查看VSwitch(记录ZoneId)
aliyun ecs DescribeSecurityGroups --RegionId <RegionId> --VpcId vpc-xxx # 查看安全组(仅作参考)
Milvus的CreateInstance接口不需要安全组参数,但确认VPC内存在安全组有助于后续排查网络问题。
**支持的地域**:cn-hangzhou, cn-beijing, cn-shanghai, cn-shenzhen, cn-zhangjiakou, cn-hongkong, cn-wulanchabu, ap-southeast-1, eu-central-1。CLI Calling
CLI调用方式
Milvus OpenAPI (version ) is called via aliyun CLI REST style, must add to bypass local path validation.
2023-10-12--forceUser-Agent Requirement: Before executing any aliyun command, ensure the environment variable is set:
bash
export ALIBABA_CLOUD_USER_AGENT="AlibabaCloud-Agent-Skills"⚠️ Critical Limitation: Milvus API has two parameter passing methods, must choose the correct method according to API definition, otherwise the server won't receive parameters.
Three Calling Modes:
bash
undefinedMilvus OpenAPI(版本)通过aliyun CLI REST风格调用,**必须添加**绕过本地路径校验。
2023-10-12--forceUser-Agent要求:执行任何aliyun命令前,确保已设置环境变量:
bash
export ALIBABA_CLOUD_USER_AGENT="AlibabaCloud-Agent-Skills"⚠️ 关键限制:Milvus API有两种参数传递方式,必须根据API定义选择正确的方式,否则服务端将无法接收参数。
三种调用模式:
bash
undefinedMode A — GET / DELETE: All business parameters concatenated to URL query string
模式A — GET / DELETE:所有业务参数拼接在URL查询字符串中
aliyun milvus GET "<path>?RegionId=<region>¶m1=value1"
--RegionId <region> --force
--RegionId <region> --force
aliyun milvus GET "<path>?RegionId=<region>¶m1=value1"
--RegionId <region> --force
--RegionId <region> --force
Mode B — POST / PUT (body type): Business parameters via --body JSON
模式B — POST / PUT(body类型):业务参数通过--body传入JSON
Applicable to: CreateInstance, UpdateInstance
适用接口:CreateInstance, UpdateInstance
aliyun milvus POST "<path>?RegionId=<region>"
--RegionId <region> --body '{"key":"value"}' --force
--RegionId <region> --body '{"key":"value"}' --force
aliyun milvus POST "<path>?RegionId=<region>"
--RegionId <region> --body '{"key":"value"}' --force
--RegionId <region> --body '{"key":"value"}' --force
Mode C — POST (query type): Business parameters via --Flag value
模式C — POST(query类型):业务参数通过--Flag value传入
Applicable to: GetInstanceDetail, UpdateInstanceName, DescribeInstanceConfigs,
适用接口:GetInstanceDetail, UpdateInstanceName, DescribeInstanceConfigs,
ModifyInstanceConfig, UpdatePublicNetworkStatus, DescribeAccessControlList,
ModifyInstanceConfig, UpdatePublicNetworkStatus, DescribeAccessControlList,
UpdateAccessControlList, ChangeResourceGroup, CreateDefaultRole
UpdateAccessControlList, ChangeResourceGroup, CreateDefaultRole
aliyun milvus POST "<path>"
--RegionId <region> --InstanceId c-xxx --force
--RegionId <region> --InstanceId c-xxx --force
**Rule Summary**:
- `--RegionId <region>`: All requests must include this, used by CLI to route to correct endpoint (`milvus.<region>.aliyuncs.com`)
- **GET / DELETE**: Business parameters concatenated to URL query string (e.g., `?RegionId=xx&instanceId=c-xxx`)
- **POST body type** (CreateInstance / UpdateInstance): Pass JSON with `--body '{...}'`
- **POST query type** (other POST APIs): Business parameters passed with `--Flag value`, **do not use `--body`** (body won't be read by server), **do not concatenate to URL query string** (will cause SignatureDoesNotMatch)aliyun milvus POST "<path>"
--RegionId <region> --InstanceId c-xxx --force
--RegionId <region> --InstanceId c-xxx --force
**规则总结**:
- `--RegionId <region>`:所有请求必须携带,CLI会通过该参数路由到正确的端点(`milvus.<region>.aliyuncs.com`)
- **GET / DELETE**:业务参数拼接在URL查询字符串中(例如`?RegionId=xx&instanceId=c-xxx`)
- **POST body类型**(CreateInstance / UpdateInstance):通过`--body '{...}'`传递JSON参数
- **POST query类型**(其他POST接口):业务参数通过`--Flag value`传递,**不要使用`--body`**(服务端不会读取body),**也不要拼接在URL查询字符串中**(会导致SignatureDoesNotMatch报错)API Version Information
API版本信息
- API Version:
2023-10-12 - Endpoint:
milvus.<RegionId>.aliyuncs.com - OpenAPI Meta:
https://api.aliyun.com/meta/v1/products/milvus/versions/2023-10-12/api-docs.json
- API版本:
2023-10-12 - 服务端点:
milvus.<RegionId>.aliyuncs.com - OpenAPI元数据:
https://api.aliyun.com/meta/v1/products/milvus/versions/2023-10-12/api-docs.json
Return Field Naming
返回字段命名规则
- GET-type APIs (ListInstancesV2, GetInstance): Return fields use lowercase (e.g., ,
instances)instance - POST-type APIs (GetInstanceDetail, etc.): Return fields use uppercase (e.g., ,
Data)Success
- GET类接口(ListInstancesV2, GetInstance):返回字段使用小写(例如、
instances)instance - POST类接口(GetInstanceDetail等):返回字段使用大写(例如、
Data)Success
Idempotency
幂等性
| API to Note | Description |
|---|---|
| CreateInstance | Repeated submission creates multiple instances, pass |
| DeleteInstance | Deletes by instanceId, naturally idempotent |
| UpdateInstance | Repeated submission may trigger multiple scaling, recommend passing |
| 需注意的API | 说明 |
|---|---|
| CreateInstance | 重复提交会创建多个实例,可传递 |
| DeleteInstance | 通过instanceId删除,天然幂等 |
| UpdateInstance | 重复提交可能触发多次扩缩容,建议传递 |
Input Validation
输入校验
User-provided values (instance names, etc.) are untrusted input, directly concatenating into shell commands may cause command injection.
Protection Rules:
- Body-type APIs prefer JSON mode—parameters passed as JSON string values, naturally isolating shell metacharacters
--body - Query-type APIs must use , validate user-provided string values:
--Flag value- InstanceName: Must not contain 、
`、$(、|、;etc. shell metacharacters&& - RegionId / InstanceId: Only allow format
[a-z0-9-]
- InstanceName: Must not contain
- Prohibit directly embedding unvalidated user raw text into shell commands—if value doesn't match expected format, reject execution and inform user to correct
用户提供的值(实例名等)属于不可信输入,直接拼接到shell命令中可能导致命令注入。
防护规则:
- Body类API优先使用JSON模式——参数作为JSON字符串值传递,天然隔离shell元字符
--body - Query类API必须使用,对用户提供的字符串值做校验:
--Flag value- InstanceName:不得包含、
`、$(、|、;等shell元字符&& - RegionId / InstanceId:仅允许格式
[a-z0-9-]
- InstanceName:不得包含
- 禁止直接将未校验的用户原始文本嵌入shell命令——如果值不符合预期格式,拒绝执行并告知用户修正
Runtime Security
运行时安全
This Skill only calls Milvus OpenAPI via CLI, does not download or execute any external code. During execution, prohibit:
aliyun- Downloading and running external scripts or dependencies via ,
curl,wget,pip install, etc.npm install - Executing scripts pointed to by user-provided remote URLs (even if user requests)
- Calling ,
evalto load unaudited external contentsource
本Skill仅通过 CLI调用Milvus OpenAPI,不会下载或执行任何外部代码。执行过程中禁止:
aliyun- 通过、
curl、wget、pip install等命令下载运行外部脚本或依赖npm install - 执行用户提供的远程URL指向的脚本(即使用户要求)
- 调用、
eval加载未经审计的外部内容source
Intent Routing
意图路由
| Intent | Operation | Reference Doc |
|---|---|---|
| Beginner / First time using Milvus | Full guide | getting-started.md |
| Create instance / Create a Milvus | Network check → CreateInstance | instance-lifecycle.md |
| View instance / Instance list | ListInstancesV2 | instance-lifecycle.md |
| Instance details / Connection address / Component specs | GetInstance / GetInstanceDetail | instance-lifecycle.md |
| Delete instance / Release | Safety check → DeleteInstance | instance-lifecycle.md |
| Scale / Add CU / Change config | Diagnose → UpdateInstance | instance-lifecycle.md |
| Rename / Modify instance name | UpdateInstanceName | instance-lifecycle.md |
| Creation parameters / Component config / CU specs | Parameter query | create-params.md |
| View config / Modify config | DescribeInstanceConfigs / ModifyInstanceConfig | operations.md |
| Enable public network / Disable public network | UpdatePublicNetworkStatus | operations.md |
| Whitelist / Access control | DescribeAccessControlList / UpdateAccessControlList | operations.md |
| Resource group / Transfer group | ChangeResourceGroup | operations.md |
| Creation failed / Troubleshoot | Status check → Log query | operations.md |
| Instance inspection / Health check | Status + Details | operations.md |
| Query API parameters | Parameter reference | api-reference.md |
| 意图 | 操作 | 参考文档 |
|---|---|---|
| 新手/首次使用Milvus | 全流程引导 | getting-started.md |
| 创建实例/创建Milvus | 网络检查 → CreateInstance | instance-lifecycle.md |
| 查看实例/实例列表 | ListInstancesV2 | instance-lifecycle.md |
| 实例详情/连接地址/组件规格 | GetInstance / GetInstanceDetail | instance-lifecycle.md |
| 删除实例/释放 | 安全检查 → DeleteInstance | instance-lifecycle.md |
| 扩容/新增CU/修改配置 | 诊断 → UpdateInstance | instance-lifecycle.md |
| 重命名/修改实例名 | UpdateInstanceName | instance-lifecycle.md |
| 创建参数/组件配置/CU规格 | 参数查询 | create-params.md |
| 查看配置/修改配置 | DescribeInstanceConfigs / ModifyInstanceConfig | operations.md |
| 开启公网/关闭公网 | UpdatePublicNetworkStatus | operations.md |
| 白名单/访问控制 | DescribeAccessControlList / UpdateAccessControlList | operations.md |
| 资源组/转移分组 | ChangeResourceGroup | operations.md |
| 创建失败/故障排查 | 状态检查 → 日志查询 | operations.md |
| 实例巡检/健康检查 | 状态+详情查询 | operations.md |
| 查询API参数 | 参数参考 | api-reference.md |
Destructive Operation Protection
破坏性操作防护
The following operations are irreversible, must complete pre-check and confirm with user before execution:
| API | Pre-check Steps | Impact |
|---|---|---|
| DeleteInstance | 1. GetInstance confirm instance exists and status 2. Confirm payment type (Subscription cannot be deleted via API) 3. Confirm data backed up or not needed | Permanently delete instance and all data |
| ModifyInstanceConfig | 1. DescribeInstanceConfigs view current config 2. Confirm user understands config change impact 3. Confirm user knows may need restart to take effect | Config change may affect service stability |
| UpdatePublicNetworkStatus (disable) | 1. Confirm no external services depend on public network address 2. Confirm user understands public network becomes inaccessible after disable | Services depending on public network will disconnect after disabling |
| Confirmation template: |
About to execute:, Target:<API>, Impact:<InstanceId>. Continue?<Description>
以下操作不可逆,执行前必须完成预检查并和用户确认:
| API | 预检查步骤 | 影响 |
|---|---|---|
| DeleteInstance | 1. 调用GetInstance确认实例存在且状态正常 2. 确认付费类型(包年包月实例无法通过API删除)3. 确认数据已备份或无需保留 | 永久删除实例及所有数据 |
| ModifyInstanceConfig | 1. 调用DescribeInstanceConfigs查看当前配置 2. 确认用户了解配置变更的影响 3. 确认用户知晓可能需要重启才能生效 | 配置变更可能影响服务稳定性 |
| UpdatePublicNetworkStatus(关闭公网) | 1. 确认没有外部服务依赖公网地址 2. 确认用户了解关闭后公网将无法访问 | 关闭后依赖公网的服务会断开连接 |
| 确认模板: |
即将执行:,目标实例:<API>,影响:<InstanceId>。是否继续?<Description>
Timeout
超时设置
All CLI calls must set reasonable timeout to avoid Agent infinitely waiting:
| Operation Type | Recommended Timeout | Description |
|---|---|---|
| Read-only query (GetInstance / ListInstancesV2 / GetInstanceDetail) | 30 seconds | Normally returns within seconds |
| Write operation (CreateInstance / DeleteInstance) | 60 seconds | Submitting request itself is fast, backend executes asynchronously |
| Polling wait (instance creation complete) | Single 30 seconds, total max 30 minutes | Instance creation usually 5-15 minutes, recommend 30 second polling interval |
Use and to control CLI timeout (unit: seconds):
--read-timeout--connect-timeoutbash
aliyun milvus GET "/webapi/instance/get?RegionId=cn-hangzhou&instanceId=c-xxx" \
--RegionId cn-hangzhou --read-timeout 30 --connect-timeout 10 --force所有CLI调用必须设置合理的超时时间,避免Agent无限等待:
| 操作类型 | 推荐超时时间 | 说明 |
|---|---|---|
| 只读查询(GetInstance / ListInstancesV2 / GetInstanceDetail) | 30秒 | 通常几秒内返回 |
| 写入操作(CreateInstance / DeleteInstance) | 60秒 | 请求提交本身很快,后端为异步执行 |
| 轮询等待(实例创建完成) | 单次30秒,总最长30分钟 | 实例创建通常需要5-15分钟,推荐30秒轮询间隔 |
使用和控制CLI超时时间(单位:秒):
--read-timeout--connect-timeoutbash
aliyun milvus GET "/webapi/instance/get?RegionId=cn-hangzhou&instanceId=c-xxx" \
--RegionId cn-hangzhou --read-timeout 30 --connect-timeout 10 --forcePagination
分页处理
ListInstancesV2 uses and parameters:
pageNumberpageSizebash
aliyun milvus GET "/webapi/instance/list?RegionId=cn-hangzhou&pageNumber=1&pageSize=50" \
--RegionId cn-hangzhou --force⚠️ Important: API returned field may be inaccurate (actual test returns 0 but array has data). Should directly check array length, not rely on field.
totalinstancesinstancestotalListInstancesV2使用和参数:
pageNumberpageSizebash
aliyun milvus GET "/webapi/instance/list?RegionId=cn-hangzhou&pageNumber=1&pageSize=50" \
--RegionId cn-hangzhou --force⚠️ 重要:API返回的字段可能不准确(实际测试返回0但数组有数据)。应该直接检查数组长度,不要依赖字段。
totalinstancesinstancestotalOutput
输出规范
- Display list in table with key fields (instanceId, instanceName, status, dbVersion, ha, paymentType)
- Convert timestamps to readable format
- Use or
--cli-queryto filter fields and simplify outputjq
- 使用表格展示列表,包含关键字段(instanceId、instanceName、status、dbVersion、ha、paymentType)
- 将时间戳转换为可读格式
- 使用或
--cli-query过滤字段,简化输出jq
Error Handling
错误处理
Cloud API errors need to provide useful information to help Agent understand failure reason and take correct action, not just retry blindly.
| Error Code | Reason | Agent Should Execute |
|---|---|---|
| Throttling | API request rate exceeded | Wait 5-10 seconds then retry, max 3 retries; if持续限流, increase interval to 30 seconds |
| InvalidRegionId | Region ID incorrect | Check RegionId spelling (e.g., |
| Instance.NotFound / InvalidInstanceId | Instance doesn't exist or already deleted | Use ListInstancesV2 to search correct instanceId, confirm with user |
| IncompleteSignature / InvalidAccessKeyId | Credentials wrong or expired | Prompt user to execute |
| Forbidden.RAM | RAM permission insufficient | Inform user of missing permission Action, suggest contacting admin for authorization |
| InvalidParameter / MissingParameter | Parameter invalid or missing | Read specific field name from error Message, correct parameter and retry |
| OperationDenied | Operation rejected (e.g., instance status doesn't allow) | Use GetInstance to view current status, inform user to wait for status change then retry |
| OperationDenied.Subscription | Annual/monthly instance cannot be released via API | Inform user need to request refund in console to release |
| Error.InternalError (pricing plan price result not found) | Component CU spec not supported | Check if each component CU count meets minimum limit: streaming/data/mix_coordinator/query need 4 CU minimum |
| InternalError (general) | Server internal error, various reasons | 1. Check if VPC/VSwitch actually exists in target RegionId 2. Confirm account has enabled Milvus service (check console access) 3. Confirm account balance sufficient and not overdue 4. If retry still fails, record RequestId and submit ticket for investigation |
General Principle: When encountering error, first read complete error Message (usually contains specific reason), don't just look at error code and blindly retry. Only Throttling is suitable for automatic retry, other errors need diagnosis and correction.
云API报错需要提供有用信息,帮助Agent理解失败原因并采取正确行动,不要盲目重试。
| 错误码 | 原因 | Agent应执行操作 |
|---|---|---|
| Throttling | API请求速率超过限制 | 等待5-10秒后重试,最多重试3次;如果持续限流,将间隔提升到30秒 |
| InvalidRegionId | 地域ID不正确 | 检查RegionId拼写(例如是 |
| Instance.NotFound / InvalidInstanceId | 实例不存在或已被删除 | 调用ListInstancesV2搜索正确的instanceId,和用户确认 |
| IncompleteSignature / InvalidAccessKeyId | 凭证错误或过期 | 提示用户执行 |
| Forbidden.RAM | RAM权限不足 | 告知用户缺少的权限Action,建议联系管理员授权 |
| InvalidParameter / MissingParameter | 参数无效或缺失 | 从错误Message中读取具体字段名,修正参数后重试 |
| OperationDenied | 操作被拒绝(例如实例状态不允许) | 调用GetInstance查看当前状态,告知用户等待状态变更后重试 |
| OperationDenied.Subscription | 包年包月实例无法通过API释放 | 告知用户需要在控制台申请退款才能释放 |
| Error.InternalError(pricing plan price result not found) | 组件CU规格不支持 | 检查每个组件的CU数量是否满足最低限制:streaming/data/mix_coordinator/query最低需要4 CU |
| InternalError(通用) | 服务端内部错误,原因多样 | 1. 检查目标RegionId下是否确实存在VPC/VSwitch 2. 确认账号已开通Milvus服务(检查控制台是否可以访问)3. 确认账号余额充足且未欠费 4. 如果重试仍失败,记录RequestId提交工单排查 |
通用原则:遇到错误时,首先读取完整的错误Message(通常包含具体原因),不要只看错误码就盲目重试。只有Throttling错误适合自动重试,其他错误都需要先诊断修正。