Category: service
Simple Application Server (SWAS-OPEN 2020-06-01)
Use SWAS-OPEN OpenAPI to manage full SAS resources: instances, disks, snapshots, images, key pairs, firewall, Cloud Assistant, monitoring, tags, and lightweight databases.
Prerequisites
-
Prepare AccessKey with least-privilege RAM user/role.
-
Choose correct region and matching endpoint (public/VPC).ALICLOUD_REGION_ID can be used as default region; if unset choose the most reasonable region, ask user if unclear.
-
This OpenAPI uses RPC signing; prefer Python SDK or OpenAPI Explorer instead of manual signing.
SDK Priority
-
Python SDK (preferred)
-
OpenAPI Explorer
-
Other SDKs
Python SDK quick query (instance ID / IP / plan)
Virtual environment is recommended (avoid PEP 668 system install restrictions).
python3 -m venv .venv . .venv/bin/activate python -m pip install alibabacloud_swas_open20200601 alibabacloud_tea_openapi alibabacloud_credentials
import os from alibabacloud_swas_open20200601.client import Client as SwasClient from alibabacloud_swas_open20200601 import models as swas_models from alibabacloud_tea_openapi import models as open_api_models
def create_client(region_id: str) -> SwasClient: config = open_api_models.Config( region_id=region_id, endpoint=f"swas.{region_id}.aliyuncs.com", ) ak = os.getenv("ALICLOUD_ACCESS_KEY_ID") or os.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") sk = os.getenv("ALICLOUD_ACCESS_KEY_SECRET") or os.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") if ak and sk: config.access_key_id = ak config.access_key_secret = sk return SwasClient(config)
def list_regions(): client = create_client("cn-hangzhou") resp = client.list_regions(swas_models.ListRegionsRequest()) return [r.region_id for r in resp.body.regions]
def list_instances(region_id: str): client = create_client(region_id) resp = client.list_instances(swas_models.ListInstancesRequest(region_id=region_id)) return resp.body.instances
def main(): for region_id in list_regions(): for inst in list_instances(region_id): ip = getattr(inst, "public_ip_address", None) or getattr(inst, "inner_ip_address", None) spec = getattr(inst, "plan_name", None) or getattr(inst, "plan_id", None) print(inst.instance_id, ip or "-", spec or "-", region_id)
if name == "main": main()
Python SDK scripts (recommended for inventory and summary)
-
All-region instance inventory (TSV/JSON):scripts/list_instances_all_regions.py
-
Count instances by plan:scripts/summary_instances_by_plan.py
-
Count instances by status:scripts/summary_instances_by_status.py
-
Fix SSH key-based access (custom port supported):scripts/fix_ssh_access.py
-
Get current SSH port of an instance:scripts/get_ssh_port.py
CLI Notes
- aliyun CLI may not expose swas-open as product name; prefer Python SDK. If CLI is mandatory, generate request examples in OpenAPI Explorer first, then migrate to CLI.
Workflow
-
Confirm resource type and region (instance/disk/snapshot/image/firewall/command/database/tag).
-
Identify API group and operation in references/api_overview.md .
-
Choose invocation method (Python SDK / OpenAPI Explorer / other SDK).
-
After mutations, verify state/results with query APIs.
Common Operation Map
-
Instance query/start/stop/reboot:ListInstances 、StartInstance(s) 、StopInstance(s) 、RebootInstance(s)
-
Command execution:RunCommand or CreateCommand
- InvokeCommand ; use DescribeInvocations /DescribeInvocationResult
-
Firewall:ListFirewallRules /CreateFirewallRule(s) /ModifyFirewallRule /EnableFirewallRule /DisableFirewallRule
-
Snapshot/disk/image:CreateSnapshot 、ResetDisk 、CreateCustomImage etc.
Cloud Assistant Execution Notes
-
Target instance must be in Running state.
-
Cloud Assistant agent must be installed (use InstallCloudAssistant ).
-
For PowerShell commands, ensure required modules are available on Windows instances.
-
After execution, use DescribeInvocations or DescribeInvocationResult to fetch status and outputs.
See references/command-assistant.md for details.
Clarifying questions (ask when uncertain)
-
What is the target region? Is VPC endpoint required?
-
What are target instance IDs? Are they currently Running?
-
What command/script type/timeout is needed? Linux or Windows?
-
Do you need batch execution or scheduled execution?
Output Policy
If you need to save results or responses, write to: output/compute-swas-open/
Validation
mkdir -p output/alicloud-compute-swas-open for f in skills/compute/swas/alicloud-compute-swas-open/scripts/*.py; do python3 -m py_compile "$f" done echo "py_compile_ok" > output/alicloud-compute-swas-open/validate.txt
Pass criteria: command exits 0 and output/alicloud-compute-swas-open/validate.txt is generated.
Output And Evidence
-
Save artifacts, command outputs, and API response summaries under output/alicloud-compute-swas-open/ .
-
Include key parameters (region/resource id/time range) in evidence files for reproducibility.
Prerequisites
-
Configure least-privilege Alibaba Cloud credentials before execution.
-
Prefer environment variables: ALICLOUD_ACCESS_KEY_ID , ALICLOUD_ACCESS_KEY_SECRET , optional ALICLOUD_REGION_ID .
-
If region is unclear, ask the user before running mutating operations.
Workflow
-
Confirm user intent, region, identifiers, and whether the operation is read-only or mutating.
-
Run one minimal read-only query first to verify connectivity and permissions.
-
Execute the target operation with explicit parameters and bounded scope.
-
Verify results and save output/evidence files.
References
-
API overview and operation groups:references/api_overview.md
-
Endpoints and integration:references/endpoints.md
-
Cloud Assistant highlights:references/command-assistant.md
-
Official source list:references/sources.md