alibabacloud-ecs-snapshot-and-backup
Merged ECS support skill (5 axes, customer-symptom family). Each axis keeps its original full spec; this file is the router and the shared contract layer.
Execution Principle (MANDATORY, applies to every axis)
- Query-only boundary by default: never create/modify/delete cloud resources unless the axis is listed as GATED below and the customer explicitly confirms the exact action.
- ABSOLUTE PROHIBITION on fabricating evidence: any conclusion must cite real command output; if a query failed or returned nothing, say so explicitly. Claiming "verified/executed" without trace = violation.
- ABSOLUTE PROHIBITION on leaking execution-environment internals (office network, egress gateway, local certificates, internal tools/feedback groups) into the customer-facing report.
- Credentials: use the default chain only (env / CLI profile / credentials file).
Never print or hardcode AK/SK. ABSOLUTE PROHIBITION on reading
~/.aliyun/config.json,~/.aliyun/, orALIBABACLOUD_*/ALICLOUD_*variables to work around an authentication failure: reportCREDENTIAL-FAIL-CLOSED:and the customer's own checks instead (exit 3).
Guest Consent and Credential Fail-Closed (MANDATORY, applies to every axis)
In-guest reads are OFF by default. Cloud Assistant RunCommand executes inside the
customer's instance. A command that changes nothing still reveals their firewall,
listeners, accounts
and files, and still write to their task history.
- MUST obtain the customer's consent for the specific command before dispatching it. Consent for the diagnosis as a whole does not cover a command inside their machine.
- MUST pass
--allow-guest-readto the entry command only after that consent was given in this turn. The dispatcher strips every guest-activation flag otherwise and printsCONSENT-REQUIRED: <axis> / refused flags; the axis's own--confirmtoken is a second gate on top of this one, never a substitute. - MUST NOT re-run with
--allow-guest-readon your own initiative. If consent is missing, state which command you would run, what it returns, and ask; if the customer declines, report the affected layer as unverified and hand them the command to run themselves. - MUST NOT describe a layer as clean because its guest read did not run.
Credential failure is fail-closed. When the transport cannot authenticate, the entry
returns CREDENTIAL-FAIL-CLOSED: with the customer's own check steps and exits 3.
- ABSOLUTE PROHIBITION: never read
~/.aliyun/config.json,~/.aliyun/, or anyALIBABACLOUD_*/ALICLOUD_*credential variable, and never ask the customer to paste a key, token or profile file into the conversation._guardrails.pyrefuses to spawn a command that carries those paths or names. - MUST deliver the
CREDENTIAL-FAIL-CLOSED:block's checks verbatim, then stop. Do not substitute guessed cloud state for the missing reads, and do not retry a different way of obtaining credentials. - MUST NOT claim "no issue found" when the evidence was unreadable. The answer states which reads failed and what the customer can run to unblock them.
Axis Index (Module Index)
| Axis | Entry command (keep the scripts/ prefix verbatim) | Mode | Full spec |
|---|---|---|---|
| snapshot-policy-check | python3 scripts/snapshot-and-backup.py --axis snapshot-policy-check -- <args> | gated | snapshot-policy-check |
| snapshot-io-impact | python3 scripts/snapshot-and-backup.py --axis snapshot-io-impact -- <args> | gated | snapshot-io-impact |
| snapshot-consistency-group | python3 scripts/snapshot-and-backup.py --axis snapshot-consistency-group -- <args> | query-only | snapshot-consistency-group |
| snapshot-rollback-guide | python3 scripts/snapshot-and-backup.py --axis snapshot-rollback-guide -- <args> | gated | snapshot-rollback-guide |
| backup-strategy-design | python3 scripts/snapshot-and-backup.py --axis backup-strategy-design -- <args> | query-only | backup-strategy-design |
Gated axes in this package: snapshot-policy-check, snapshot-io-impact, snapshot-rollback-guide. The gate covers state-changing actions ONLY: those MUST stop and ask for explicit customer confirmation (--confirm flow) before running; without confirmation, do not mutate anything. Read-style in-guest probes also travel through Cloud Assistant RunCommand. They are NOT query-only from the customer's side: the command still executes inside their machine and leaves a task record there. ABSOLUTE PROHIBITION: never dispatch one without the customer's consent for that exact command in this turn. Ask first, then pass --allow-guest-read to the entry command. Without it the dispatcher strips the axis's guest flags, prints CONSENT-REQUIRED: naming the command it refused, and the cloud-side (Describe/Get) reads still run — so a missing consent degrades the answer instead of blocking it.
When the customer issue matches an axis, run that axis entry command and follow the
axis spec in references/axes/<axis>.md. Do not mix axes in one report.
Trigger Conditions
See description (customer wording kept verbatim from the merged intake analysis).
Input Parameters
Per axis: region id / instance id / uid as required by the axis spec; if missing, ask the customer once, never guess.
Execution Flow
- Classify the symptom into one axis via the table above.
- Run the axis entry command in query-only mode.
- Gated axis: stop, present the exact write action, wait for explicit
--confirm. - Deliver the report in the axis spec's format.
Observability
Every CLI/API call in this skill attaches the User-Agent template
AlibabaCloud-Agent-Skills/{skill}/{session-id} skill-version/{skill-version} (skill = this package name),
where session-id is a 32-character hex string generated once per run and reused
across all calls in that run (implemented by each axis's _cli.py under scripts/axes/).
Boundary (Do NOT use for)
- Do NOT use for: executing a snapshot rollback, deleting snapshots or capacity cleanup (alibabacloud-ebs-disk-snapshot-management), snapshot billing disputes and package purchases, disk expansion after a resize, instance boot failure, disk IO performance.
- Do NOT use for snapshot creation failure (alibabacloud-ecs-snapshot-policy-check),
- Do NOT use for snapshot fees, storage packages, single-disk snapshot management, running a rollback, or in-guest mount errors.
- Do NOT use for snapshot object operations or rollback (use alibabacloud-ebs-disk-snapshot-management), security incidents, connectivity faults, disk resizing, or account billing matters.
Important Notes
- Relative paths only; all assets live in this package.
- All network/API/subprocess calls carry timeouts.
微信扫一扫