qwencloud/qwencloud-deploy

qwencloud-deploy

- One-click deploy, publish, and update a local project or Git repository to Alibaba Cloud International (alibabacloud.com), producing an accessible online service with a public IP.

Voir la source
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

Qwen Cloud Deploy

Quick Path

  1. Route the task — Match to one of 4 modes: Full-Stack Deploy · Hot Update · Delete · HTTPS Setup.
  2. Deploy (default) — Execute steps 1→13 in order; each step has a reference doc.
  3. Confirm cost before creating anything — Show hourly price in USD, get user confirmation.
  4. Record state — On success write .qwencloud-deploy.

Scope

In ScopeOut of Scope
Local project / Git → Alibaba Cloud InternationalChina site → use qianwenai-deploy
Full-stack ROS, hot update, cleanupAWS/GCP/Azure/other clouds
ECS + optional RDS + OSS + public IPK8s/Serverless/container orchestration
OAuth/AK auth (no credential collection)

Assumptions

  • aliyun CLI 3.x installed; when no valid credential, follow reference/deploy/01_env_check.md.
  • Default region ap-southeast-1 (Singapore).

Task Routing

SignalMode
.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

StepActionReference
1Environment checkreference/deploy/01_env_check.md
2Git clone (if Git URL)reference/deploy/02_git_clone.md
3Project analysisreference/deploy/03_analyze_project.md

Phase 2 · Resource Planning

StepActionReference
4Existing deployment scanreference/deploy/04_check_existing.md
5Database identificationreference/deploy/05_database.md
6ECS instance type selectionreference/deploy/06_instance_type.md
7Generate ROS templatereference/deploy/07_generate_template.md
8Stock checkreference/deploy/08_check_stock.md
9Template validation + cost estimatereference/deploy/09_estimate_cost.md

Phase 3 · Execution

StepActionReference
10Upload artifacts + regenerate templatereference/deploy/10_upload_artifacts.md
11Create stackreference/deploy/11_create_stack.md
12Wait for terminal state + health checkreference/deploy/12_wait_stack.md
13Record statereference/deploy/13_record_state.md

Hot Update

Trigger: .qwencloud-deploy exists + user wants to update code. IP unchanged.

StepActionReference
U1Build + upload new artifactsreference/deploy/10_upload_artifacts.md
U2Deliver update (Cloud Assistant)reference/hotfix/update_app.md
U3Health check + update statereference/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

ConstraintRule
CurrencyAlways USD
AuthOAuth (recommended) or AK/SK; never collect credentials via chat
Template uploadMust use --TemplateURL (WAF blocks TemplateBody)
Stack name retryReuse — never regenerate
Resource deletionAlways via delete_stack.sh
Region defaultap-southeast-1
Commands to userNever 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