🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Alibabacloud Odps Quota Manage

by @sdk-team

MaxCompute Quota Management Skill. Use for managing MaxCompute/ODPS quota resources including pay-as-you-go quota creation, query, and listing operations. Tr...

TERMINAL
clawhub install alibabacloud-odps-quota-manage

πŸ“– About This Skill


name: alibabacloud-odps-quota-manage description: | MaxCompute Quota Management Skill. Use for managing MaxCompute/ODPS quota resources including pay-as-you-go quota creation, query, and listing operations. Triggers: "MaxCompute quota", "ODPS quota", "create quota", "list quotas", "quota management", "CU management".

MaxCompute Quota Management

Manage MaxCompute (ODPS) Quota resources using Alibaba Cloud CLI and SDK. This skill covers pay-as-you-go quota creation, quota query, and quota listing operations.

Limitations and Notes

| Feature | CLI Support | SDK Support | Notes | |---------|-------------|-------------|-------| | Create Pay-as-you-go Quota | βœ… Yes | βœ… Yes | Fully supported | | Create Subscription Quota | ❌ Not Supported | ❌ Not Supported | Temporarily unavailable | | Query Quota (get-quota) | βœ… Yes | βœ… Yes | ⚠️ Deprecated - Use query-quota instead | | Query Quota (query-quota) | βœ… Yes | βœ… Yes | Recommended replacement for get-quota | | List Quotas | βœ… Yes | βœ… Yes | Fully supported (both payasyougo and subscription) | | Delete Quota | ❌ No API | ❌ No API | Not available via API - Must use Console | | Modify Quota | ❌ Not in scope | ❌ Not in scope | Not covered in this solution |

> Important: > - Create Subscription Quota is temporarily NOT supported in this skill. For subscription quota creation, please use the Alibaba Cloud Console. > - Delete Quota operation is NOT available through CLI or SDK. You must use the Alibaba Cloud Console to delete quotas. > - query-quota is preferred - get-quota is deprecated but acceptable if it returns success > - ⚠️ CRITICAL: When checking if quota exists, ALWAYS use list-quotas, NEVER use get-quota > - 🚨 MANDATORY: Before create-quota, MUST call list-quotas first - NEVER skip this step

Architecture

Alibaba Cloud Account β†’ MaxCompute Service β†’ Quota Resources (CU)
                                           β”œβ”€β”€ Pay-as-you-go Quota (后付费) ← Creation Supported
                                           └── Subscription Quota (ι’„δ»˜θ΄Ή) ← Query/List only

Installation

> Pre-check: Aliyun CLI >= 3.3.3 required > Run aliyun version to verify >= 3.3.3. If not installed or version too low, > run curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash to update, > or see references/cli-installation-guide.md for installation instructions.

> Pre-check: Aliyun CLI plugin setup required > [MUST] Install the maxcompute plugin manually: aliyun plugin install maxcompute > [MUST] Update the plugin to latest version: aliyun plugin update maxcompute

# Verify CLI version
aliyun version

Install maxcompute plugin (confirm when prompted)

aliyun plugin install maxcompute

Update maxcompute plugin to latest version

aliyun plugin update maxcompute

[MUST] CLI User-Agent β€” Every aliyun CLI command invocation must include: --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-quota-manage

At the start of the Core Workflow (before any CLI invocation): [MUST] Enable AI-Mode β€” AI-mode is required for Agent Skill execution. Run the following commands before any CLI invocation:

aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-odps-quota-manage"
[MUST] Disable AI-Mode at EVERY exit point β€” Before delivering the final response for ANY reason, always disable AI-mode first. This applies to ALL exit paths: workflow success, workflow failure, error/exception, user cancellation, session end, or any other scenario where no further CLI commands will be executed. AI-mode is only used for Agent Skill invocation scenarios and MUST NOT remain enabled after the skill stops running.
aliyun configure ai-mode disable

Environment Variables

This skill relies on the aliyun CLI default credential chain. No explicit credential configuration is needed.

  • Run aliyun configure to set up credentials before first use
  • Do NOT explicitly handle or pass credential values in commands
  • Timeout Configuration:

  • ALIBABA_CLOUD_CONNECT_TIMEOUT: Connection timeout (default: 10s)
  • ALIBABA_CLOUD_READ_TIMEOUT: Read timeout (default: 10s)
  • These defaults are sufficient for quota operations; no explicit configuration required
  • Parameter Confirmation

    > IMPORTANT: Parameter Confirmation β€” Before executing any command or API call, > ALL user-customizable parameters (e.g., RegionId, quota nicknames, billing types, etc.) > MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.

    Input Validation

    | Parameter | Validation Rules | |-----------|------------------| | RegionId | Must be valid Alibaba Cloud region ID (e.g., cn-hangzhou, cn-shanghai) | | nickname | Max 64 characters; alphanumeric, hyphens (-), underscores (_); URL-encode if contains Chinese characters | | chargeType | Must be payasyougo (subscription not supported) | | commodityCode | Must be odps, odpsplus, odps_intl, or odpsplus_intl | | billingType | Must be payasyougo, subscription, or ALL |

    Security Note: All user inputs are passed to aliyun CLI which handles parameter sanitization. Do NOT construct commands using string concatenation with raw user input.

    | Parameter Name | Required/Optional | Description | Default Value | |----------------|-------------------|--------------------------------------------------------------|---------------| | RegionId | Required | Alibaba Cloud region (e.g., cn-hangzhou, cn-shanghai) | - | | chargeType | Required | Billing type: payasyougo only (subscription not supported) | - | | commodityCode | Required | Product code (see table below) | - | | billingType | Optional | Filter for listing: subscription or payasyougo or ALL | ALL | | maxItem | Optional | Max items per page for listing | 100 |

    Commodity Codes (for Pay-as-you-go)

    | Site | Commodity Code | |------|----------------| | China (ε›½ε†…η«™) | odps | | International (ε›½ι™…η«™) | odps_intl |

    Authentication

    Security: Never expose credentials

  • Don't print AK/SK values
  • Don't ask user to type AK/SK in chat
  • Don't use aliyun configure set with hardcoded values
  • Check credentials:

    aliyun configure list
    

    If no credentials, ask user to run aliyun configure first, then continue.

    Core Workflow

    🚨 STEP 0 - CONFIRM PARAMETERS WITH USER BEFORE ANY EXECUTION:

    Before running any CLI command, you MUST confirm all required parameters with the user:

  • For LIST: Confirm region and billing-type (payasyougo / subscription / ALL)
  • For QUERY: Confirm region and nickname
  • For CREATE: Confirm region, charge-type, and commodity-code
  • Do NOT assume or use default values. Ask the user explicitly and wait for confirmation before proceeding.

    🚨 CRITICAL RULE FOR ALL OPERATIONS:

    | Operation | First Command | Then | |-----------|---------------|------| | CREATE quota | list-quotas | If empty β†’ Create; If exists β†’ Stop | | QUERY quota | query-quota | Show results | | LIST quotas | list-quotas | Show list |

    ⚠️ CREATE without list-quotas first = ERROR


    FORBIDDEN COMMANDS - NEVER USE:

  • ❌ aliyun quotas commands - WRONG SERVICE (Quota Center), use MaxCompute instead
  • ❌ Any BssOpenApi commands for quota operations - use MaxCompute instead
  • ❌ get-quota - DEPRECATED, use query-quota instead
  • MUST USE (plugin mode, kebab-case):

  • βœ… aliyun maxcompute list-quotas - For listing/checking quotas
  • βœ… aliyun maxcompute query-quota - For querying quota details
  • βœ… aliyun maxcompute create-quota - For creating quota
  • ⚠️ IMPORTANT: Use aliyun maxcompute commands (MaxCompute service), NOT aliyun quotas commands (Quota Center service).

    Command Rules:

  • ALL CLI commands use plugin mode (kebab-case): create-quota, list-quotas, query-quota
  • Parameters also use kebab-case: --charge-type, --commodity-code, --billing-type

  • CREATE Quota (CHECK FIRST - THEN CREATE):

    🚨 PREPAID/SUBSCRIPTION QUOTAS ARE FORBIDDEN: This skill ONLY supports pay-as-you-go quota creation.

  • If user wants prepaid/subscription quota β†’ Tell them to use Alibaba Cloud Console
  • Do NOT attempt to create prepaid quotas
  • 🚨 FOR CREATE: FIRST RUN LISTQUOTAS - NEVER SKIP THIS:

    STEP 1 - MANDATORY: Call list-quotas FIRST

    aliyun maxcompute list-quotas --billing-type payasyougo --region 
    
    DO NOT proceed to Step 2 until you get list-quotas result

    Use MaxCompute service (aliyun maxcompute), NOT Quota Center (aliyun quotas).

    AFTER list-quotas result (STEP 2):

    | Result | Action | |--------|--------| | List shows quota | DO NOT CREATE - Inform user "Quota already exists" β†’ Done | | List is empty | Go to Step 3 (Create) |

    STEP 3 - ONLY IF LIST WAS EMPTY:

    PRE-CREATE CHECKLIST - ALL MUST BE TRUE:

  • [ ] User wants pay-as-you-go (NOT prepaid/subscription)
  • [ ] list-quotas was called and returned empty list
  • [ ] No existing pay-as-you-go quota in the region
  • [ ] User confirmed they want to create
  • aliyun maxcompute create-quota --charge-type payasyougo --commodity-code odps --region  --client-token 
    

    For International Site:

    aliyun maxcompute create-quota --charge-type payasyougo --commodity-code odps_intl --region  --client-token 
    

    CRITICAL:

  • Use plugin mode (kebab-case): create-quota
  • Use MaxCompute service, NOT BssOpenApi
  • client-token: Generate a unique token (e.g., UUID) for idempotency on retries
  • commodityCode values:
  • - China site: odps or odpsplus - International site: odps_intl or odpsplus_intl - NEVER use maxcompute as commodityCode - Note: When chargeType=payasyougo is set, commodityCode validation is not strict

    ⚠️ OUTPUT HANDLING:

  • Do NOT pipe command output to files (e.g., | tee ... or > file.json) β€” if the target directory does not exist, the command will return a non-zero exit code even when the API call succeeds.
  • Let the CLI print output directly to stdout, then parse the result inline.
  • When saving output files (e.g., existing_quotas.json, actions_log.txt), ALWAYS mkdir -p first before writing any file to ensure the target directory exists.
  • FINALLY:

  • Parse result
  • Show user
  • Done
  • ⚠️ NEVER call create-quota before list-quotas. This causes errors.

    Note: If quota already exists, DO NOT create. Only create when list-quotas returns empty list.

    QUERY Quota (when user provides nickname):

    PRIORITY: Use query-quota as the primary API for querying specific quota details by nickname.

    CHECKLIST:

  • [ ] User provided quota nickname
  • [ ] Use query-quota (NOT get-quota)
  • USE THIS COMMAND:

    aliyun maxcompute query-quota --nickname  --region 
    

    IMPORTANT: If nickname contains Chinese characters, URL-encode it first before passing to the command.

    FORBIDDEN: get-quota is deprecated - use query-quota instead.

  • Parse JSON
  • Extract: nickName, name, id, status
  • Show all fields β†’ Done
  • LIST Quotas:

    ⚠️ FOR LISTING QUOTAS: ONLY use MaxCompute list-quotas, NOT BssOpenApi

    When checking for existing pay-as-you-go quotas (before creation):

    aliyun maxcompute list-quotas --billing-type payasyougo --region 
    
    MUST include --billing-type payasyougo to filter at API level.

    When listing all quotas (user request):

    aliyun maxcompute list-quotas --billing-type ALL --region 
    

    billingType parameter:

  • Valid values: payasyougo, subscription, ALL
  • If not set, defaults to ALL
  • Use payasyougo when checking for existing pay-as-you-go quotas
  • Parse JSON
  • Extract quotaInfoList array
  • Show list β†’ Done
  • Response field odpsSpecCode enum values:

    | odpsSpecCode | Description | |--------------|-------------| | OdpsStandard | ODPS Pay-as-you-go Resource | | OdpsSpot | ODPS Spot/Off-peak Resource (Pay-as-you-go) | | OdpsDev | Developer Resource Type | | OdpsPlusStandard | Subscription Resource | | OdpsPlusHa | High Availability Resource | | OdpsPlusElasticCU | ODPS Non-reserved Elastic CU Subscription Resource |


    Quick Reference

    See references/related-apis.md for complete CLI command reference and response format details.

    Key Points:

  • Use list-quotas --billing-type payasyougo before creating
  • Use query-quota (not get-quota) for querying
  • Use create-quota (kebab-case plugin mode) for creating
  • Always include --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-quota-manage

  • Task Completion

    Output Files β€” MUST create before finishing: 1. mkdir -p outputs ran_scripts β€” ensure directories exist first 2. Save quota query/list results to outputs/existing_quotas.json 3. Save a log of all actions performed to ran_scripts/actions_log.txt

    > IMPORTANT: Always run mkdir -p for any target directory BEFORE writing files. Never assume directories already exist.

    Finish with:

  • Summary of what was done
  • Key results (nickname, region, status)
  • Confirm output files were written (outputs/existing_quotas.json, ran_scripts/actions_log.txt)
  • "βœ… Complete"

  • Error Handling

    | Error Code | What to Do | |------------|------------| | QuotaAlreadyExists | Quota exists β†’ Query it and show details β†’ Task complete | | QuotaNotFound | Quota doesn't exist β†’ Inform user | | InvalidParameter | Wrong parameter format β†’ Check with user | | Forbidden | No permission β†’ Direct to Console | | INTERNAL_ERROR | Retry once or contact support |


    Cleanup

    > No Delete API - Must use Console to delete quotas

    API Reference

    See references/related-apis.md for complete API reference, CLI commands, and response formats.

    Best Practices

    1. Always confirm region with user before any operation 2. For creation: First list to check if quota exists (one per region limit) 3. If quota exists: Query it for user instead of trying to create 4. Use query-quota (NOT get-quota) for quota details 5. For subscription quotas: Direct user to Alibaba Cloud Console

    Reference Links

    | Reference | Description | |-----------|-------------| | references/related-apis.md | Complete CLI commands and API reference | | references/ram-policies.md | Required RAM permissions | | references/verification-method.md | Success verification steps | | references/acceptance-criteria.md | Testing acceptance criteria | | references/cli-installation-guide.md | CLI installation guide |

    Related Documentation

  • MaxCompute Product
  • create-quota API
  • get-quota API
  • list-quotas API
  • Java SDK Documentation
  • Credential Management
  • πŸ“‹ Tips & Best Practices

    1. Always confirm region with user before any operation 2. For creation: First list to check if quota exists (one per region limit) 3. If quota exists: Query it for user instead of trying to create 4. Use query-quota (NOT get-quota) for quota details 5. For subscription quotas: Direct user to Alibaba Cloud Console