Loading...
Loading...
Manage Alibaba Cloud Elastic Compute Service (ECS) via OpenAPI/SDK. Use for listing or creating instances, starting/stopping/rebooting, managing disks/snapshots/images/security groups/key pairs/ENIs, querying status, and troubleshooting workflows for this product.
npx skill4agent add cinience/alicloud-skills alicloud-compute-ecsPageNumberPageSizeNextTokenMaxResultsDescribeInstancesDryRunDescribeInstancesNextTokenMaxResultsNextTokenDescribeInstancesRegionIdreferences/api_overview.mdscripts/output/alicloud-compute-ecs/python3 -m venv .venv
. .venv/bin/activate
python -m pip install alibabacloud_ecs20140526 alibabacloud_tea_openapi alibabacloud_credentialsfrom alibabacloud_ecs20140526.client import Client as Ecs20140526Client
from alibabacloud_ecs20140526 import models as ecs_models
from alibabacloud_tea_openapi import models as open_api_models
def create_client(region_id: str) -> Ecs20140526Client:
config = open_api_models.Config(
# Use env vars or shared config files per AccessKey priority.
region_id=region_id,
endpoint=f"ecs.{region_id}.aliyuncs.com",
)
return Ecs20140526Client(config)
def list_instances(region_id: str):
client = create_client(region_id)
resp = client.describe_instances(ecs_models.DescribeInstancesRequest(
region_id=region_id,
page_number=1,
page_size=50,
))
for inst in resp.body.instances.instance:
print(inst.instance_id, inst.instance_name, inst.instance_type, inst.status)
if __name__ == "__main__":
list_instances("cn-hangzhou")scripts/list_instances_all_regions.pyscripts/summary_instance_specs.pyscripts/summary_instances_by_region.pyscripts/summary_instances_by_status.pyscripts/summary_instances_by_instance_type.pyscripts/summary_instances_by_vpc.pyscripts/summary_instances_by_security_group.pyfrom alibabacloud_ecs20140526.client import Client as Ecs20140526Client
from alibabacloud_ecs20140526 import models as ecs_models
from alibabacloud_tea_openapi import models as open_api_models
def create_client(region_id: str) -> Ecs20140526Client:
config = open_api_models.Config(
region_id=region_id,
endpoint=f"ecs.{region_id}.aliyuncs.com",
)
return Ecs20140526Client(config)
def list_regions() -> list[str]:
client = create_client("cn-hangzhou")
resp = client.describe_regions(ecs_models.DescribeRegionsRequest())
return [r.region_id for r in resp.body.regions.region]
def list_instances_all_regions():
for region_id in list_regions():
client = create_client(region_id)
req = ecs_models.DescribeInstancesRequest(
region_id=region_id,
page_number=1,
page_size=100,
)
resp = client.describe_instances(req)
print(f"== {region_id} ({resp.body.total_count}) ==")
for inst in resp.body.instances.instance:
print(inst.instance_id, inst.instance_name, inst.instance_type, inst.status)
if __name__ == "__main__":
list_instances_all_regions()from alibabacloud_ecs20140526.client import Client as Ecs20140526Client
from alibabacloud_ecs20140526 import models as ecs_models
from alibabacloud_tea_openapi import models as open_api_models
def create_client(region_id: str) -> Ecs20140526Client:
config = open_api_models.Config(
region_id=region_id,
endpoint=f"ecs.{region_id}.aliyuncs.com",
)
return Ecs20140526Client(config)
def list_instances_paged(region_id: str):
client = create_client(region_id)
page_number = 1
page_size = 100
while True:
resp = client.describe_instances(ecs_models.DescribeInstancesRequest(
region_id=region_id,
page_number=page_number,
page_size=page_size,
))
for inst in resp.body.instances.instance:
print(inst.instance_id, inst.instance_name, inst.instance_type, inst.status)
total = resp.body.total_count
if page_number * page_size >= total:
break
page_number += 1
if __name__ == "__main__":
list_instances_paged("cn-hangzhou")from alibabacloud_ecs20140526.client import Client as Ecs20140526Client
from alibabacloud_ecs20140526 import models as ecs_models
from alibabacloud_tea_openapi import models as open_api_models
def create_client(region_id: str) -> Ecs20140526Client:
config = open_api_models.Config(
region_id=region_id,
endpoint=f"ecs.{region_id}.aliyuncs.com",
)
return Ecs20140526Client(config)
def list_types(region_id: str, zone_id: str | None = None, instance_type_family: str | None = None):
client = create_client(region_id)
req = ecs_models.DescribeInstanceTypesRequest(
zone_id=zone_id,
instance_type_family=instance_type_family,
)
resp = client.describe_instance_types(req)
for t in resp.body.instance_types.instance_type:
print(t.instance_type_id, t.cpu_core_count, t.memory_size)
if __name__ == "__main__":
list_types("cn-hangzhou", "cn-hangzhou-k")RunInstancesCreateInstanceStartInstance(s)StopInstance(s)RebootInstance(s)DeleteInstance(s)DescribeInstancesDescribeInstanceStatusDescribeInstanceAttributeModifyInstanceSpecModifyPrepayInstanceSpecDescribeResourcesModificationReplaceSystemDiskResetDiskCreateDiskAttachDiskDetachDiskResizeDiskDescribeDisksCreateSnapshotCopySnapshotDescribeSnapshotsDeleteSnapshotCreateImageCopyImageDescribeImagesDeleteImageModifyImageAttributeCreateSecurityGroupAuthorizeSecurityGroupRevokeSecurityGroupDescribeSecurityGroupAttributeCreateKeyPairImportKeyPairDescribeKeyPairsDeleteKeyPairsCreateNetworkInterfaceAttachNetworkInterfaceDetachNetworkInterfaceDescribeNetworkInterfacesTagResourcesUntagResourcesListTagResourcesDescribeInstancesFullStatusDescribeInstanceHistoryEventsDescribeInstanceMonitorDataDescribeInstancesVpcIdVSwitchIdZoneIdSecurityGroupIdInstanceIdsDescribeInstancesPageSize=1TotalCountDescribeRegionsRunningDescribeInvocationsDescribeInvocationResultsreferences/command-assistant.mdALICLOUD_ACCESS_KEY_IDALICLOUD_ACCESS_KEY_SECRETALICLOUD_REGION_IDALICLOUD_REGION_ID~/.alibabacloud/credentialsexport ALICLOUD_ACCESS_KEY_ID="your-ak"
export ALICLOUD_ACCESS_KEY_SECRET="your-sk"
export ALICLOUD_REGION_ID="cn-hangzhou"export ALIBABA_CLOUD_ACCESS_KEY_ID="your-ak"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="your-sk"~/.alibabacloud/credentials[default]
type = access_key
access_key_id = your-ak
access_key_secret = your-skEcs2014-05-26output/alicloud-compute-ecs/references/api_overview.mdreferences/endpoints.mdreferences/command-assistant.mdreferences/describe-instances.mdreferences/instances.mdreferences/disks.mdreferences/snapshots.mdreferences/images.mdreferences/security-groups.mdreferences/network-interfaces.mdreferences/keypairs.mdreferences/tags.mdreferences/monitoring-events.mdreferences/sources.md