MaxCompute Quota 管理

使用阿里云 CLI 和 SDK 管理 MaxCompute(ODPS)Quota 资源。本 Skill 涵盖按量付费 quota 创建、quota 查询和 quota 列表操作。

限制与注意事项

功能CLI 支持SDK 支持说明
创建按量付费 Quota✅ 支持✅ 支持完全支持
创建订阅 Quota❌ 不支持❌ 不支持暂不可用
查询 Quota(get-quota)✅ 支持✅ 支持⚠️ 已弃用 - 改用 query-quota
查询 Quota(query-quota)✅ 支持✅ 支持推荐的 get-quota 替代
列出 Quota✅ 支持✅ 支持完全支持(按量付费和订阅均支持)
删除 Quota❌ 无 API❌ 无 APIAPI 不可用 - 必须使用控制台
修改 Quota❌ 不在范围❌ 不在范围本解决方案未覆盖
重要
- 创建订阅 Quota 在本 Skill 中暂不支持。订阅 quota 创建请使用 阿里云控制台
- 删除 Quota 操作不能通过 CLI 或 SDK 完成。必须使用 阿里云控制台 删除 quota。
- query-quota 优先 - get-quota 已弃用,但如返回成功仍可接受
- ⚠️ 关键:检查 quota 是否存在时,始终使用 list-quotas,绝不使用 get-quota
- 🚨 强制:create-quota 之前,必须先调用 list-quotas - 绝不跳过此步骤

架构

阿里云账号 → MaxCompute 服务 → Quota 资源(CU)
                                           ├── 按量付费 Quota(后付费) ← **支持创建**
                                           └── 订阅 Quota(预付费) ← 仅查询/列表

安装

预检查:需要 Aliyun CLI >= 3.3.3
运行 aliyun version 验证 >= 3.3.3。如果未安装或版本过低,
运行 curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash 更新,
或参阅 references/cli-installation-guide.md 获取安装说明。
预检查:需要设置 Aliyun CLI 插件
[必须] 手动安装 maxcompute 插件:aliyun plugin install maxcompute
[必须] 更新插件到最新版本:aliyun plugin update maxcompute

验证 CLI 版本

aliyun version

安装 maxcompute 插件(提示时确认)

aliyun plugin install maxcompute

更新 maxcompute 插件到最新版本

aliyun plugin update maxcompute


**[必须] CLI User-Agent** —— 每次调用 `aliyun` CLI 命令都必须包含:
`--user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-quota-manage`

在核心工作流**开始**时(任何 CLI 调用之前):
**[必须] 启用 AI-Mode** —— Agent Skill 执行需要 AI-mode。
在任何 CLI 调用之前运行以下命令:

aliyun configure ai-mode enable

aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-odps-quota-manage"

**[必须] 在每一个退出点禁用 AI-Mode** —— 在交付最终响应之前(无论何种原因),必须先禁用 AI-mode。这适用于所有退出路径:工作流成功、工作流失败、错误/异常、用户取消、会话结束,或任何不再执行 CLI 命令的场景。
AI-mode 仅用于 Agent Skill 调用场景,Skill 停止运行后**绝不能**保持启用状态。

aliyun configure ai-mode disable

环境变量

本 Skill 依赖 aliyun CLI 默认凭证链。无需显式配置凭证。

  • 首次使用前运行 aliyun configure 设置凭证
  • 不要在命令中显式处理或传递凭证值

超时配置:

  • ALIBABA_CLOUD_CONNECT_TIMEOUT:连接超时(默认:10s)
  • ALIBABA_CLOUD_READ_TIMEOUT:读取超时(默认:10s)
  • 这些默认值对 quota 操作已足够;无需显式配置

参数确认

重要:参数确认 —— 在执行任何命令或 API 调用之前,
所有用户可自定义参数(例如 RegionId、quota 昵称、计费类型等)
都必须与用户确认。未经用户明确批准,不要假设或使用默认值。

输入校验

参数校验规则
RegionId必须是有效的阿里云地域 ID(例如 cn-hangzhou、cn-shanghai)
nickname最多 64 字符;字母数字、连字符(-)、下划线(_);含中文字符时需 URL 编码
chargeType必须为 payasyougo(不支持订阅)
commodityCode必须为 odpsodpsplusodps_intlodpsplus_intl
billingType必须为 payasyougosubscriptionALL

安全注意: 所有用户输入都传递给 aliyun CLI,由它处理参数净化。不要使用原始用户输入进行字符串拼接来构造命令。

参数名必填/可选说明默认值
RegionId必填阿里云地域(例如 cn-hangzhou、cn-shanghai)-
chargeType必填计费类型:仅 payasyougo(不支持订阅)-
commodityCode必填产品代码(见下表)-
billingType可选列表过滤:subscriptionpayasyougoALLALL
maxItem可选列表每页最大条数100

商品代码(按量付费)

站点商品代码
中国(国内站)odps
国际(国际站)odps_intl

认证

安全:绝不暴露凭证

  • 不要打印 AK/SK 值
  • 不要要求用户在聊天中输入 AK/SK
  • 不要使用带硬编码值的 aliyun configure set

检查凭证:

aliyun configure list

如果无凭证,请用户先运行 aliyun configure,然后继续。

核心工作流

🚨 步骤 0 - 任何执行前先与用户确认参数:

在运行任何 CLI 命令之前,你必须与用户确认所有必填参数:

  • LIST: 确认 regionbilling-type(payasyougo / subscription / ALL)
  • QUERY: 确认 regionnickname
  • CREATE: 确认 regioncharge-typecommodity-code

不要假设或使用默认值。明确询问用户并等待确认后再继续。

🚨 所有操作的关键规则:

操作首条命令然后
CREATE quotalist-quotas如果为空 → 创建;如果存在 → 停止
QUERY quotaquery-quota展示结果
LIST quotaslist-quotas展示列表

⚠️ CREATE 不先 list-quotas = 错误

禁止命令 - 绝不使用:

  • aliyun quotas 命令 - 服务错误(Quota Center),应使用 MaxCompute
  • ❌ 任何用于 quota 操作的 BssOpenApi 命令 - 应使用 MaxCompute
  • get-quota - 已弃用,改用 query-quota

必须使用(插件模式,kebab-case):

  • aliyun maxcompute list-quotas - 用于列出/检查 quota
  • aliyun maxcompute query-quota - 用于查询 quota 详情
  • aliyun maxcompute create-quota - 用于创建 quota

⚠️ 重要: 使用 aliyun maxcompute 命令(MaxCompute 服务),而非 aliyun quotas 命令(Quota Center 服务)。

命令规则:

  • 所有 CLI 命令使用插件模式(kebab-case):create-quotalist-quotasquery-quota
  • 参数也使用 kebab-case:--charge-type--commodity-code--billing-type

CREATE Quota(先检查 - 再创建):

🚨 预付费/订阅 Quota 被禁止:

本 Skill 仅支持按量付费 quota 创建。

  • 如果用户想要预付费/订阅 quota → 告知他们使用 阿里云控制台
  • 不要尝试创建预付费 quota

🚨 CREATE 时:先运行 LISTQUOTAS - 绝不跳过:

步骤 1 - 强制:先调用 list-quotas

aliyun maxcompute list-quotas --billing-type payasyougo --region <R>

在获得 list-quotas 结果之前不要进入步骤 2

使用 MaxCompute 服务(aliyun maxcompute),而非 Quota Center(aliyun quotas)。

list-quotas 结果之后(步骤 2):

结果动作
列表显示 quota不要创建 - 告知用户“Quota 已存在” → 完成
列表为空进入步骤 3(创建)

步骤 3 - 仅当列表为空时:

创建前检查清单 - 全部必须为真:

  • [ ] 用户想要按量付费(非预付费/订阅)
  • [ ] 已调用 list-quotas 且返回空列表
  • [ ] 该地域无现有按量付费 quota
  • [ ] 用户确认想要创建
aliyun maxcompute create-quota --charge-type payasyougo --commodity-code odps --region <R> --client-token <UNIQUE_TOKEN>

国际站:

aliyun maxcompute create-quota --charge-type payasyougo --commodity-code odps_intl --region <R> --client-token <UNIQUE_TOKEN>

关键:

  • 使用插件模式(kebab-case):create-quota
  • 使用 MaxCompute 服务,而非 BssOpenApi
  • client-token: 生成唯一 token(如 UUID)用于重试幂等
  • commodityCode 取值:
  • 中国站:odpsodpsplus
  • 国际站:odps_intlodpsplus_intl
  • 绝不要用 maxcompute 作为 commodityCode
  • 注意:设置 chargeType=payasyougo 时,commodityCode 校验不严格

⚠️ 输出处理:

  • 不要将命令输出管道到文件(例如 | tee ...&gt; file.json)——如果目标目录不存在,即使 API 调用成功,命令也会返回非零退出码。
  • 让 CLI 直接打印输出到 stdout,然后内联解析结果。
  • 保存输出文件时(例如 existing_quotas.jsonactions_log.txt),写入任何文件之前始终先 mkdir -p &lt;directory&gt; 确保目标目录存在。

最后:

  • 解析结果
  • 展示给用户
  • 完成

⚠️ 绝不在 list-quotas 之前调用 create-quota。这会导致错误。

注意: 如果 quota 已存在,不要创建。仅当 list-quotas 返回空列表时才创建。

QUERY Quota(用户提供 nickname 时):

优先级: 使用 query-quota 作为按 nickname 查询特定 quota 详情的主要 API。

检查清单:

  • [ ] 用户提供了 quota nickname
  • [ ] 使用 query-quota(不是 get-quota

使用此命令:

aliyun maxcompute query-quota --nickname <N> --region <R>

重要: 如果 nickname 包含中文字符,先 URL 编码再传给命令。

禁止: get-quota 已弃用 - 改用 query-quota

  • 解析 JSON
  • 提取:nickNamenameidstatus
  • 展示所有字段 → 完成

LIST Quotas:

⚠️ 列出 Quota:仅使用 MaxCompute list-quotas,不用 BssOpenApi

检查现有按量付费 quota 时(创建前):

aliyun maxcompute list-quotas --billing-type payasyougo --region <R>

必须包含 --billing-type payasyougo 以在 API 层过滤。

列出所有 quota 时(用户请求):

aliyun maxcompute list-quotas --billing-type ALL --region <R>

billingType 参数:

  • 有效值:payasyougosubscriptionALL
  • 未设置时默认为 ALL
  • 检查现有按量付费 quota 时使用 payasyougo
  • 解析 JSON
  • 提取 quotaInfoList 数组
  • 展示列表 → 完成

响应字段 odpsSpecCode 枚举值:

odpsSpecCode说明
OdpsStandardODPS 按量付费资源
OdpsSpotODPS 抢占/错峰资源(按量付费)
OdpsDev开发者资源类型
OdpsPlusStandard订阅资源
OdpsPlusHa高可用资源
OdpsPlusElasticCUODPS 非预留弹性 CU 订阅资源

快速参考

完整 CLI 命令参考和响应格式详情见 references/related-apis.md

要点:

  • 创建前使用 list-quotas --billing-type payasyougo
  • 使用 query-quota(不是 get-quota)查询
  • 使用 create-quota(kebab-case 插件模式)创建
  • 始终包含 --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-quota-manage

任务完成

输出文件 —— 完成前必须创建:

  1. mkdir -p outputs ran_scripts —— 先确保目录存在
  2. 将 quota 查询/列表结果保存到 outputs/existing_quotas.json
  3. 将所有执行动作日志保存到 ran_scripts/actions_log.txt
重要: 写入文件前始终对目标目录运行 mkdir -p。绝不要假设目录已存在。

完成时:

  • 所做工作摘要
  • 关键结果(nickname、region、status)
  • 确认输出文件已写入(outputs/existing_quotas.jsonran_scripts/actions_log.txt
  • “✅ 完成”

错误处理

错误码如何处理
QuotaAlreadyExistsQuota 存在 → 查询并展示详情 → 任务完成
QuotaNotFoundQuota 不存在 → 告知用户
InvalidParameter参数格式错误 → 与用户核对
Forbidden无权限 → 引导到控制台
INTERNAL_ERROR重试一次或联系支持

清理

无删除 API - 必须使用 控制台 删除 quota

API 参考

完整 API 参考、CLI 命令和响应格式见 references/related-apis.md

最佳实践

  1. 任何操作前始终与用户确认地域
  2. 创建时:先列出检查 quota 是否存在(每地域一个限制)
  3. 如果 quota 存在:为用户查询它,而非尝试创建
  4. 使用 query-quota(不是 get-quota)查询 quota 详情
  5. 订阅 quota:引导用户到阿里云控制台

参考链接

参考说明
references/related-apis.md完整 CLI 命令和 API 参考
references/ram-policies.md所需 RAM 权限
references/verification-method.md成功验证步骤
references/acceptance-criteria.md测试验收标准
references/cli-installation-guide.mdCLI 安装指南

相关文档

文档 5 / 6:alibabacloud-cloudbackup-ecs-file-backup-essential-edition