Install
openclaw skills install @sdk-team/alibabacloud-rds-instances-manageQuery and manage Alibaba Cloud RDS instances in the user's own account through Alibaba Cloud CLI and official RDS, VPC, BssOpenApi, and DAS OpenAPIs. Use for listing or inspecting RDS instances, zones, classes, performance, logs, parameters, databases, accounts, networks, whitelists, bills, and SQL insight statistics, or for explicitly requested instance creation, parameter/specification/description changes, account creation, whitelist changes, public endpoint allocation, whitelist-template attachment, tagging, restart, and instance deletion. Do not use this skill to diagnose incidents, troubleshoot performance anomalies, or perform root-cause analysis; it only queries current RDS instance state and executes the explicitly supported instance-management operations.
openclaw skills install @sdk-team/alibabacloud-rds-instances-manageServe as an RDS instance inventory and lifecycle operations agent. Use Alibaba Cloud CLI as the only cloud API execution layer. Query the user's current cloud state before making recommendations or changes.
Use these boundaries:
aliyun rds <lowercase-command> for RDS 2014-08-15 instance APIs.aliyun vpc <lowercase-command> for VPC 2016-04-28 network discovery.aliyun bssopenapi <lowercase-command> for BssOpenApi 2017-12-14 billing queries.aliyun das <lowercase-command> for DAS 2020-01-16 performance insight queries.date for get_current_time; do not represent it as OpenAPI.Keep detailed action parameters in references/related-apis.md. Read the relevant action section before constructing a command.
Make the local environment ready when command execution is available. Do not ask the user to install or upgrade Alibaba Cloud CLI when the agent can do it after obtaining any required tool approval.
Do not run a business API until all readiness gates pass:
aliyun exists and aliyun version is 3.3.3 or newer.aliyun <product> --help and aliyun <product> <lowercase-command> -h.If a current public action is absent from an old CLI, upgrade the CLI. Do not silently switch to an SDK, an internal RPC action, or a guessed API name.
Default the RDS/VPC target region to cn-hangzhou only when the user omits a region. Always invoke DAS 2020-01-16 through its cn-shanghai control-plane region, even when the target RDS instance is in another region.
Run the readiness checks once at the start of every task:
command -v aliyun
aliyun version
aliyun configure set --auto-plugin-install true
aliyun plugin list
aliyun rds --help
aliyun configure list
Upgrade versions below 3.3.3 before using this skill. Re-run the checks after an upgrade.
Check only the products needed for the user's request:
aliyun rds describe-db-instances -h
aliyun vpc describe-vpcs -h
aliyun bssopenapi describe-instance-bill -h
aliyun das get-pfs-sql-summaries -h
If a required product plugin is unavailable, install its short name with aliyun plugin install --names <product> and repeat the action check.
Do not add the skill User-Agent to command -v, aliyun version, aliyun configure, aliyun help, install, or upgrade commands.
Use an existing valid profile when possible. Prefer interactive configuration when credentials are missing:
aliyun configure --mode AK --profile rds-manage
Use cn-hangzhou as the configured region unless the user chooses another default.
Never:
--cli-dry-run output without reviewing it for sensitive request parameters.When identity must be verified, call STS and compare the returned AccountId with the expected account before any cloud operation:
aliyun sts get-caller-identity --profile <profile>
Generate one 32-character lowercase hexadecimal session ID per user task and reuse it across all business API calls in that task:
openssl rand -hex 16
Use this per-command User-Agent:
AlibabaCloud-Agent-Skills/alibabacloud-rds-instances-manage/{session-id}
Example:
aliyun rds describe-db-instances \
--biz-region-id cn-hangzhou \
--user-agent 'AlibabaCloud-Agent-Skills/alibabacloud-rds-instances-manage/{session-id}' \
--profile <profile>
Do not use a deprecated global User-Agent configuration.
Classify the request as read-only or mutating. Resolve the exact capability name and OpenAPI Action from the capability table below.
For every regional request:
cn-hangzhou only when omitted.--biz-region-id when the action defines the OpenAPI RegionId parameter.--region option.Convert user-facing snake_case fields to the lowercase-hyphenated plugin flags documented by Alibaba Cloud CLI. Always invoke both actions and parameters in lowercase-hyphenated form (for example, aliyun rds describe-db-instance-attribute --db-instance-id <id>); never use PascalCase action names or flags such as DescribeDBInstanceAttribute --DBInstanceId.
Run read-only actions without an additional confirmation after the readiness gates pass. Before claiming results are complete:
NextToken or page-number pagination when the request asks for all results.For all-region instance inventory, first obtain the RDS region list via DescribeRegions, then query DescribeDBInstances in each intended region. DescribeRegions may include deregistered regions; skip regions that fail with region-unavailable errors instead of aborting the whole inventory. Do not call a single regional page an account-wide inventory.
Treat these 11 capabilities as mutating:
create_db_instancemodify_parametermodify_db_instance_specmodify_db_instance_descriptioncreate_db_instance_accountmodify_security_ipsallocate_instance_public_connectionattach_whitelist_template_to_instanceadd_tags_to_db_instancerestart_db_instancedelete_db_instanceBefore every mutating call:
delete_db_instance, check DeletionProtection via DescribeDBInstanceAttribute first; if it is true, instruct the user to disable it before proceeding.create_db_instance, call DescribeAvailableZones (not DescribeRegions) with Engine parameter to verify zone-level engine availability, then call DescribeAvailableClasses to query available specifications. DescribeRegions returns region-level zones without engine filtering and must not be used as a substitute. Use DescribePrice to estimate the order price when presenting the billing impact of a creation, upgrade, downgrade, or renewal.[empty]), missing, or ambiguous answer as not approved: do not execute. A confirmation tool may return an immediate empty acknowledgment while the user has not answered yet—that is a pending question, never an approval and never a final refusal; state that you are waiting for the user's reply and end the turn instead of aborting the task or re-asking in a loop. The answer may arrive as a later user message. Non-approval stands until a new explicit affirmative user reply arrives—never resume, re-decide, or re-justify the mutation in a later step of the same turn without it.Do not automatically retry a mutation after a timeout, connection reset, or response-parsing failure. Treat it as an unknown state, inspect the resource with a read-only API, and ask before any retry.
Use API-level dry-run when an action supports it. For CreateDBInstance, prefer --dry-run true before asking for final confirmation. For other actions, CLI --cli-dry-run validates local command construction only; it does not prove authorization, inventory, pricing, or business validation. Review dry-run output for sensitive request parameters before presenting it.
For CreateAccount, collect the password only when execution is imminent. The plaintext password may appear in exactly one place: the command argument passed to the CLI at execution time. Everywhere else—previews, confirmation checklists, chat replies, summaries, errors, and every saved file including action logs and execution records—write it as <redacted>. Never write the received password back in any note or log entry, and never store it in an eval, reference, shell script, or commit.
For whitelist changes, display the exact before/after CIDR sets. Warn before adding broad ranges such as 0.0.0.0/0. Do not describe a broad whitelist as safe. Before executing modify_security_ips, explicitly list the full target security-ips parameter value and cross-check it against the user's original request. Ensure all IP/CIDR strings in confirmation messages, summaries, and output are character-exact matches to the intended values; do not abbreviate or truncate any octet.
For public endpoints, state that allocation exposes an Internet-reachable address but does not replace whitelist controls.
For instance deletion, warn that the operation is irreversible. Postpaid instances are released immediately; Prepaid instances may generate a refund order.
Return concise results with resource IDs and RequestId. Classify failures before recommending a next action:
When an authentication, authorization, or validation error is returned, immediately stop, report the exact error type and the specific missing permission or invalid parameter to the user, and request corrective input. Do not retry the same call, and do not switch to a different API, product, or interface to obtain the data another way. Only throttling and transient service failures may be retried, and only for read-only operations. In every failure case, report the actual error; never fabricate, guess, or partially synthesize results the API did not return. Never modify the execution environment—environment variables, local configuration, simulation or test switches, or fixtures—to turn a failing call into a passing one, and never substitute locally injected or altered data for the API's real response.
Do not expose signed URLs, credentials, passwords, response headers containing secrets, or stack traces.
| Capability | Product / Action | Key user inputs |
|---|---|---|
describe_db_instances | Rds / DescribeDBInstances | region_id; optional filters and pagination |
describe_db_instance_attribute | Rds / DescribeDBInstanceAttribute | region_id, db_instance_id |
describe_regions | Rds / DescribeRegions | none; optional accept_language (zh-CN/en-US) |
describe_available_zones | Rds / DescribeAvailableZones | region_id, engine; optional version/category |
describe_available_classes | Rds / DescribeAvailableClasses | region, zone, engine, version, storage type, category |
describe_price | Rds / DescribePrice | region, engine, engine version, class, storage, quantity; optional pay type, zone, storage type; db_instance_id plus order_type for upgrade/renewal pricing |
describe_db_instance_performance | Rds / DescribeDBInstancePerformance | instance, comma-separated performance keys, UTC time range |
describe_monitor_metrics | DAS / GetPfsMetricTrends | instance, one or more supported PFS metrics, Unix-ms time range |
describe_slow_log_records | Rds / DescribeSlowLogRecords | instance and UTC time range |
describe_error_logs | Rds / DescribeErrorLogs | instance and UTC time range |
describe_db_instance_parameters | Rds / DescribeParameters | instance |
describe_db_instance_databases | Rds / DescribeDatabases | instance; optional database and pagination |
describe_db_instance_accounts | Rds / DescribeAccounts | instance; optional account and pagination |
describe_db_instance_net_info | Rds / DescribeDBInstanceNetInfo | instance |
describe_db_instance_ip_allowlist | Rds / DescribeDBInstanceIPArrayList | instance |
describe_vpcs | Vpc / DescribeVpcs | region; optional VPC filters and pagination |
describe_vswitches | Vpc / DescribeVSwitches | region; optional VPC/zone filters and pagination |
describe_bills | BssOpenApi / DescribeInstanceBill | billing cycle; optional RDS instance and pagination |
describe_all_whitelist_template | Rds / DescribeAllWhitelistTemplate | pagination; optional region/name filters |
describe_instance_linked_whitelist_template | Rds / DescribeInstanceLinkedWhitelistTemplate | instance; optional region |
get_current_time | Local date | none |
describe_sql_insight_statistic | DAS / GetPfsSqlSummaries | instance, Unix-ms time range; optional SQL ID/keywords/top N |
GetPfsMetricTrends and GetPfsSqlSummaries support RDS MySQL instances with DAS Performance Insight (new version) enabled. Invoke DAS with CLI global --region cn-shanghai. Use DescribeDBInstancePerformance for RDS CPU, memory, IOPS, disk, connection, or other RDS performance keys.
| Capability | Rds Action | Required business inputs |
|---|---|---|
create_db_instance | CreateDBInstance | region, engine/version, class, storage size/type, net type, pay type, initial whitelist; VPC/zone fields when applicable |
modify_parameter | ModifyParameter | instance and parameter JSON or parameter-group ID |
modify_db_instance_spec | ModifyDBInstanceSpec | instance and at least one target class/storage/category/pay field |
modify_db_instance_description | ModifyDBInstanceDescription | instance and description |
create_db_instance_account | CreateAccount | instance, account name, password |
modify_security_ips | ModifySecurityIps | instance and exact security IP/CIDR list |
allocate_instance_public_connection | AllocateInstancePublicConnection | instance, connection-string prefix, port |
attach_whitelist_template_to_instance | AttachWhitelistTemplateToInstance | instance and template ID |
add_tags_to_db_instance | TagResources | region, instance resource ID, tag key/value |
restart_db_instance | RestartDBInstance | instance; optional node ID |
delete_db_instance | DeleteDBInstance | instance; check DeletionProtection first. Verification MUST use DescribeDBInstances to confirm the instance is no longer listed or shows Released status |
Validate the skill with references/verification-method.md and references/acceptance-criteria.md.
Never create, change, expose, restart, delete, or charge a cloud resource solely for acceptance testing. Use live calls only for read-only capabilities. Validate mutating command structure with API dry-run or sanitized CLI dry-run.
Grant only the actions required for the requested capabilities. See references/ram-policies.md for read-only and mutation policy examples. Do not recommend a wildcard mutation policy when a narrower policy is possible.
[empty]), missing, or ambiguous confirmation as not approved: do not execute. An immediate empty tool acknowledgment means the user has not answered yet—it is a pending question, not a final refusal; state that you are waiting for the reply and end the turn, since the answer may arrive as a later user message. Non-approval stands until a new explicit affirmative user reply arrives—never resume the mutation without it. Ending the turn to wait is the correct and successful outcome; never execute in order to finish the task.create_db_instance, call DescribeAvailableZones with the Engine parameter and then DescribeAvailableClasses. Never use DescribeRegions as a substitute for zone-level engine availability; use it only to enumerate regions, such as for an all-region inventory.cn-shanghai control-plane region, regardless of the target instance's region. Default RDS/VPC to cn-hangzhou only when the user omits a region; always preserve an explicit user region.CreateAccount password only when execution is imminent; the plaintext password may appear only as the CLI command argument at execution time—in every other place, including every preview, checklist, summary, error, action log, and saved file, write it as <redacted>.DescribeRegions, query every intended region, and follow NextToken or page-number pagination to completion. Never present a single regional page as an account-wide inventory.modify_security_ips, display the exact before/after CIDR sets character-exact and cross-check the full target security-ips value against the user's original request. Warn before adding broad ranges such as 0.0.0.0/0 and never describe a broad whitelist as safe.delete_db_instance, check DeletionProtection via DescribeDBInstanceAttribute; if it is true, instruct the user to disable it first. Warn that deletion is irreversible, and verify afterwards with DescribeDBInstances that the instance is no longer listed or shows Released status.