Document Skill original
Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.
Qwen Cloud Deploy
Quick Path
- Route the task — Match to one of 4 modes: Full-Stack Deploy · Hot Update · Delete · HTTPS Setup.
- Deploy (default) — Execute steps 1→13 in order; each step has a reference doc.
- Confirm cost before creating anything — Show hourly price in USD, get user confirmation.
- Record state — On success write
.qwencloud-deploy.
Scope
| In Scope | Out of Scope |
|---|---|
| Local project / Git → Alibaba Cloud International | China site → use qianwenai-deploy |
| Full-stack ROS, hot update, cleanup | AWS/GCP/Azure/other clouds |
| ECS + optional RDS + OSS + public IP | K8s/Serverless/container orchestration |
| OAuth/AK auth (no credential collection) | — |
Assumptions
aliyunCLI 3.x installed; when no valid credential, followreference/deploy/01_env_check.md.- Default region
ap-southeast-1(Singapore).
Task Routing
| Signal | Mode |
|---|---|
.qwencloud-deploy exists + user says "update" | Hot Update |
.qwencloud-deploy exists + "delete"/"cleanup" | Delete |
| "bind domain"/"HTTPS"/"SSL" (deployment exists) | HTTPS Setup |
| Git URL or local project (no existing deployment) | Full-Stack Deploy |
On trigger, display welcome message first (see reference/rules/rule_interaction.md).
Full-Stack Deploy (Steps 1–13)
Phase 1 · Preparation
| Step | Action | Reference |
|---|---|---|
| 1 | Environment check | reference/deploy/01_env_check.md |
| 2 | Git clone (if Git URL) | reference/deploy/02_git_clone.md |
| 3 | Project analysis | reference/deploy/03_analyze_project.md |
Phase 2 · Resource Planning
| Step | Action | Reference |
|---|---|---|
| 4 | Existing deployment scan | reference/deploy/04_check_existing.md |
| 5 | Database identification | reference/deploy/05_database.md |
| 6 | ECS instance type selection | reference/deploy/06_instance_type.md |
| 7 | Generate ROS template | reference/deploy/07_generate_template.md |
| 8 | Stock check | reference/deploy/08_check_stock.md |
| 9 | Template validation + cost estimate | reference/deploy/09_estimate_cost.md |
Phase 3 · Execution
| Step | Action | Reference |
|---|---|---|
| 10 | Upload artifacts + regenerate template | reference/deploy/10_upload_artifacts.md |
| 11 | Create stack | reference/deploy/11_create_stack.md |
| 12 | Wait for terminal state + health check | reference/deploy/12_wait_stack.md |
| 13 | Record state | reference/deploy/13_record_state.md |
Hot Update
Trigger: .qwencloud-deploy exists + user wants to update code. IP unchanged.
| Step | Action | Reference |
|---|---|---|
| U1 | Build + upload new artifacts | reference/deploy/10_upload_artifacts.md |
| U2 | Deliver update (Cloud Assistant) | reference/hotfix/update_app.md |
| U3 | Health check + update state | reference/hotfix/update_app.md |
Update script template: reference/hotfix/update_recipe.md.
Delete / Cleanup
Trigger: User says "delete", "cleanup", "release resources".
⚠️ Irreversible — confirm twice. With RDS: warn about data loss.
🚫 Never manually delete individual resources — only use delete_stack.sh.See reference/cleanup/delete_stack.md.
HTTPS Setup (Optional)
Trigger: User says "bind domain" / "HTTPS" / "SSL" after deployment exists.
See reference/https/https_setup.md.
Key Constraints
| Constraint | Rule |
|---|---|
| Currency | Always USD |
| Auth | OAuth (recommended) or AK/SK; never collect credentials via chat |
| Template upload | Must use --TemplateURL (WAF blocks TemplateBody) |
| Stack name retry | Reuse — never regenerate |
| Resource deletion | Always via delete_stack.sh |
| Region default | ap-southeast-1 |
| Commands to user | Never show underlying commands |
File Layout
scripts/
generate_template.py upload_artifacts.py
create_stack.sh record_state.py
delete_stack.sh update_app.sh
wait_and_probe.py setup_domain.sh
reference/
deploy/
01_env_check.md ~ 13_record_state.md
hotfix/
update_app.md update_recipe.md
cleanup/
delete_stack.md
https/
https_setup.md
rules/
rule_interaction.md rule_error_handling.md
templates/
ros_single[_rds].yaml
userdata/{systemd,docker,nginx_proxy,nginx_static,nginx_static_proxy}.sh