Topik ini menjelaskan cara menginstal Elastic Compute Service (ECS) SDK V2.0 untuk Python dan memberikan contoh penggunaan SDK untuk memanggil operasi API ECS. Dalam contoh ini, ECS SDK V2.0 untuk Python digunakan untuk memanggil operasi DescribeInstances guna mendapatkan informasi tentang instance ECS.
Prasyarat
Pengguna Resource Access Management (RAM) dengan izin minimum yang diperlukan harus masuk menggunakan pasangan AccessKey-nya. Tidak disarankan menggunakan akun Alibaba Cloud karena memiliki izin penuh, dan pasangan AccessKey-nya dapat menjadi risiko keamanan signifikan jika terganggu. Untuk panduan membuat pasangan AccessKey, lihat Buat pasangan AccessKey.
Pengguna RAM harus memiliki otorisasi untuk mengelola sumber daya ECS. Contoh ini memerlukan akses hanya-baca, dan kebijakan sistem AliyunECSReadonlyAccess digunakan. Berikan izin sesuai dengan kebutuhan bisnis Anda.
Buat kebijakan kustom.
Untuk panduan membuat kebijakan kustom, lihat Buat kebijakan kustom dan Otorisasi RAM.
ECS menyediakan template kebijakan kustom berdasarkan praktik terbaik. Gunakan template tersebut untuk menetapkan kebijakan secara cepat sesuai kebutuhan Anda. Untuk informasi lebih lanjut, lihat Kebijakan kustom.
Gunakan kebijakan sistem.
Untuk informasi lebih lanjut tentang kebijakan sistem yang didukung oleh ECS dan izin mereka, lihat Kebijakan sistem untuk ECS.
Pasangan AccessKey dikonfigurasi dalam variabel lingkungan. Untuk panduan konfigurasi, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.
Instal ECS SDK V2.0 untuk Python
Untuk panduan instalasi ECS SDK V2.0 untuk Python, kunjungi SDK Center. Anda dapat menyalin perintah berikut dan menjalankannya di terminal untuk menginstal ECS SDK V2.0 untuk Python:
pip install alibabacloud_ecs20140526
Gunakan ECS SDK V2.0 untuk Python
1. Inisialisasi klien.
Alibaba Cloud SDK mendukung beberapa kredensial akses, seperti pasangan AccessKey dan token Layanan Keamanan (STS), untuk menginisialisasi klien. Untuk informasi lebih lanjut, lihat Mengelola kredensial akses. Dalam contoh ini, pasangan AccessKey digunakan untuk menginisialisasi klien.
import os
from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as Ecs20140526Client
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> Ecs20140526Client:
config = Config(
# Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
endpoint='ecs.cn-hangzhou.aliyuncs.com'
)
return Ecs20140526Client(config)
2. Buat objek permintaan untuk operasi API.
Sebelum membuat objek permintaan, tinjau parameter dari operasi API yang ingin dipanggil. Dalam contoh ini, operasi DescribeInstances digunakan. Parameter operasi DescribeInstances dapat ditemukan di DescribeInstances.
Nama objek permintaan mengikuti format {Nama operasi}Request. Misalnya, objek permintaan untuk operasi DescribeInstances bernama DescribeInstancesRequest.
3. Buat objek permintaan.
describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
region_id='cn-hangzhou'
)
3. Panggil operasi API.
Saat memanggil operasi API dari klien, Anda dapat menentukan parameter waktu proses, seperti timeout dan proxy. Untuk informasi lebih lanjut, lihat Pengaturan lanjutan.
Nama objek respons mengikuti format {Nama operasi}Response. Misalnya, objek respons untuk operasi DescribeInstances bernama DescribeInstancesResponse.
# Tentukan parameter waktu proses.
runtime = util_models.RuntimeOptions()
# Panggil operasi DescribeInstances.
describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)
4. Tangani pengecualian.
ECS SDK untuk Python mengklasifikasikan pengecualian menjadi jenis-jenis berikut:
UnretryableException: Jenis pengecualian ini disebabkan oleh masalah jaringan. Pengecualian UnretryableException biasanya dilempar ketika jumlah maksimum percobaan ulang tercapai.
TeaException: Jenis pengecualian ini umumnya disebabkan oleh kesalahan bisnis.
Kami merekomendasikan agar Anda menangani pengecualian dengan benar melalui operasi seperti pelaporan, pencatatan, atau percobaan ulang untuk memastikan kekokohan dan stabilitas sistem Anda.
5. Kode sampel lengkap.
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(
# Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
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()
# Buat objek permintaan.
describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
region_id='cn-hangzhou'
)
# Tentukan parameter waktu proses.
runtime = util_models.RuntimeOptions()
try:
# Panggil operasi DescribeInstances.
describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)
print(describe_instances_response.body)
except UnretryableException as e:
# Pengecualian jaringan. Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian diberikan hanya sebagai referensi.
print(e)
except TeaException as e:
# Pengecualian bisnis. Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian diberikan hanya sebagai referensi.
print(e)
except Exception as e:
# Pengecualian lainnya. Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian diberikan hanya sebagai referensi.
print(e)
if __name__ == '__main__':
Sample.main()
Referensi
Anda juga dapat menggunakan ECS SDK V2.0 untuk Python untuk melakukan panggilan generik ke operasi API ECS. Untuk informasi lebih lanjut, lihat Panggilan generik.
Jika Anda menggunakan ECS SDK V1.0 untuk Python, lihat V1.0 Python SDK untuk informasi tentang SDK.