All Products
Search
Document Center

Elastic Compute Service:Contoh pemanggilan ECS Python V2.0 SDK

Last Updated:Apr 01, 2026

ECS SDK V2.0 untuk Python memungkinkan Anda memanggil operasi API ECS langsung dari Python. Panduan ini menjelaskan cara menginstal SDK dan memanggil operasi DescribeInstances untuk menampilkan daftar instance ECS.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Menggunakan AccessKey akun root Alibaba Cloud memberikan akses penuh ke semua resource dan menimbulkan risiko keamanan yang signifikan. Selalu gunakan pengguna RAM dengan izin minimal yang diperlukan saja.

Instal SDK

Jalankan perintah berikut untuk menginstal ECS SDK V2.0 untuk Python:

pip install alibabacloud_ecs20140526

Perintah ini menginstal paket khusus ECS. Untuk opsi instalasi lainnya, lihat SDK Center.

Panggil operasi DescribeInstances

Langkah-langkah berikut menggunakan DescribeInstances sebagai contoh. Pola yang sama berlaku untuk operasi API ECS lainnya.

Langkah 1: Inisialisasi client

Buat client dengan meneruskan kredensial dan titik akhir (endpoint) Anda ke objek Config. SDK membaca kredensial dari variabel lingkungan untuk menghindari hardcoding nilai sensitif dalam kode Anda.

import os
from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as Ecs20140526Client

def create_client() -> Ecs20140526Client:
    config = Config(
        # Baca kredensial dari variabel lingkungan — jangan pernah hardcode.
        access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
        access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        endpoint='ecs.cn-hangzhou.aliyuncs.com'
    )
    return Ecs20140526Client(config)

SDK juga mendukung jenis kredensial lain, seperti token Security Token Service (STS). Untuk detailnya, lihat Kelola kredensial akses.

Langkah 2: Buat objek request

Objek request mengikuti pola penamaan {OperationName}Request. Untuk DescribeInstances, gunakan DescribeInstancesRequest. Untuk semua parameter yang tersedia, lihat DescribeInstances.

from alibabacloud_ecs20140526 import models as ecs_20140526_models

describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
    region_id='cn-hangzhou'
)

Langkah 3: Panggil operasi

Teruskan objek request dan objek RuntimeOptions ke metode client. Objek respons mengikuti pola penamaan {OperationName}Response.

from alibabacloud_tea_util import models as util_models

runtime = util_models.RuntimeOptions()
describe_instances_response = client.describe_instances_with_options(
    describe_instances_request, runtime
)
print(describe_instances_response.body)

Untuk mengonfigurasi timeout, retry, dan pengaturan proxy, lihat Pengaturan lanjutan.

Langkah 4: Tangani exception

SDK melemparkan dua jenis exception:

ExceptionPenyebabField yang tersedia
UnretryableExceptionError jaringan (dilemparkan setelah mencapai batas maksimum retry)message
TeaExceptionError API atau bisniscode, message, data

Tangkap exception untuk mencatat error dan menangani kegagalan secara elegan:

from Tea.exceptions import UnretryableException, TeaException

try:
    describe_instances_response = client.describe_instances_with_options(
        describe_instances_request, runtime
    )
    print(describe_instances_response.body)
except UnretryableException as e:
    # Error jaringan. Catat dan tangani — jangan diabaikan diam-diam.
    print(e)
except TeaException as e:
    # Error API. Periksa e.code, e.message, dan e.data untuk detail lebih lanjut.
    print(e)
except Exception as e:
    # Error tak terduga. Catat dan tangani — jangan diabaikan diam-diam.
    print(e)

Contoh lengkap

Berikut ini contoh lengkap yang dapat dijalankan, menggabungkan semua langkah di atas:

import os

from Tea.exceptions import UnretryableException, TeaException
from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as Ecs20140526Client
from alibabacloud_tea_util import models as util_models
from alibabacloud_ecs20140526 import models as ecs_20140526_models


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Ecs20140526Client:
        config = Config(
            # Baca kredensial dari variabel lingkungan — jangan pernah hardcode.
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint='ecs.cn-hangzhou.aliyuncs.com'
        )
        return Ecs20140526Client(config)

    @staticmethod
    def main():
        client = Sample.create_client()
        describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
            region_id='cn-hangzhou'
        )
        runtime = util_models.RuntimeOptions()
        try:
            describe_instances_response = client.describe_instances_with_options(
                describe_instances_request, runtime
            )
            print(describe_instances_response.body)
        except UnretryableException as e:
            # Error jaringan. Tangani dengan hati-hati di lingkungan produksi — jangan diabaikan.
            print(e)
        except TeaException as e:
            # Error API. Tangani dengan hati-hati di lingkungan produksi — jangan diabaikan.
            print(e)
        except Exception as e:
            # Error tak terduga. Tangani dengan hati-hati di lingkungan produksi — jangan diabaikan.
            print(e)


if __name__ == '__main__':
    Sample.main()

Langkah selanjutnya

  • Gunakan ECS SDK V2.0 untuk Python guna melakukan pemanggilan generik ke operasi API ECS tanpa objek request bertipe kuat.

  • Jika Anda menggunakan ECS SDK V1.0 untuk Python, lihat SDK Python V1.0.