Bu konuda, Elastic Compute Service (ECS) Python SDK V2.0'ın nasıl yükleneceği açıklanır ve SDK kullanılarak ECS API işlemlerinin nasıl çağrılacağına ilişkin bir örnek sunulur. Örnekte, ECS örnekleri hakkında bilgi sorgulamak için Python ECS SDK V2.0 kullanılarak DescribeInstances işlemi çağrılır.
Ön koşullar
Bir Alibaba Cloud hesabının AccessKey'i kaynaklarınıza tam erişim sağlar; bu anahtarın sızması durumunda yüksek güvenlik riski oluşur. Bir RAM kullanıcısı oluşturmanızı ve bu kullanıcıya yalnızca gerekli izinleri vermenizi öneririz. Ardından API işlemlerini çağırmak için RAM kullanıcısının AccessKey'ini kullanın. Daha fazla bilgi için bkz. AccessKey oluşturma.
-
RAM kullanıcısına ECS kaynaklarını yönetme izni verin. Bu konudaki örnek kod bir sorgu işlemi gösterir. Bu örnekte AliyunECSReadonlyAccess sistem ilkesi kullanılır. İhtiyaca göre özel izinler verebilirsiniz.
-
Özel ilkeleri kullanın.
Özel ilkelerin nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Özel ilke oluşturma ve Yetkilendirme bilgileri.
ECS, en iyi uygulamalara dayalı özel ilke örnekleri sunar. İş ihtiyaçlarınızı karşılayan özel ilkeleri hızlıca oluşturmak için bu örnekleri kullanabilirsiniz. Daha fazla bilgi için bkz. Özel ilkeler.
-
Sistem ilkelerini kullanın.
ECS'nin desteklediği tüm sistem ilkeleri ve izin açıklamaları hakkında bilgi için bkz. ECS için sistem ilkeleri.
-
AccessKey'i ortam değişkenlerini kullanarak yapılandırın. Daha fazla bilgi için bkz. Linux, macOS ve Windows sistemlerinde ortam değişkenlerini yapılandırma.
SDK'yı yükleme
Python ECS SDK V2.0'ın nasıl yükleneceği hakkında daha fazla bilgi için SDK Merkezi adresini ziyaret edin. Python ECS SDK V2.0'ı yüklemek için aşağıdaki komutu terminalde kopyalayıp çalıştırabilirsiniz:
pip install alibabacloud_ecs20140526
SDK'yı kullanma
1. İstemciyi başlatın.
Alibaba Cloud SDK'ları, istemcileri başlatmak için AccessKey çiftleri ve Security Token Service (STS) belirteçleri gibi birden fazla erişim kimlik bilgisini destekler. Daha fazla bilgi için bkz. Erişim kimlik bilgilerini yönetme. Bu örnekte, bir istemciyi başlatmak için bir AccessKey çifti kullanılır.
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(
# Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
endpoint='ecs.cn-hangzhou.aliyuncs.com'
)
return Ecs20140526Client(config)
2. API işlemi için bir istek nesnesi oluşturun.
İstek nesnesini oluşturmadan önce parametreler hakkında bilgi almak için API referansı bölümüne bakın.
Bir istek nesnesinin adı {İşlem adı}Request biçimindedir. Örneğin, DescribeInstances işlemi için istek nesnesinin adı DescribeInstancesRequest'tir.
# Construct the request object.
describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
region_id='cn-hangzhou'
)
3. API işlemini çağırın.
Bir istemciden API işlemi çağırırken zaman aşımı parametreleri ve proxy parametreleri gibi çalışma zamanı parametrelerini belirtebilirsiniz. Daha fazla bilgi için bkz. Gelişmiş ayarlar.
Bir yanıt nesnesinin adı {İşlem adı}Response biçimindedir. Örneğin, DescribeInstances işlemi için yanıt nesnesinin adı DescribeInstancesResponse'tur.
# Specify runtime parameters.
runtime = util_models.RuntimeOptions()
# Call the DescribeInstances operation.
describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)
4. Özel durumları işleyin.
Python SDK, özel durumları iki ana kategoriye ayırır: UnretryableException ve TeaException.
UnretryableException: Bu tür özel durumlar ağ sorunlarından kaynaklanır. Çoğu durumda, maksimum yeniden deneme sayısına ulaşıldığında bir UnretryableException özel durumu tetiklenir.
TeaException: Bu tür özel durumlar çoğunlukla iş mantığı hatalarından kaynaklanır.
Sisteminizin dayanıklılığını ve kararlılığını sağlamak için özel durumları bildirme, günlük kaydetme ve yeniden deneme gibi işlemler yaparak özel durumları uygun şekilde ele almanızı öneririz.
5. Tam örnek kod.
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(
# Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
# Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
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()
# Create a request object.
describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
region_id='cn-hangzhou'
)
# Specify runtime parameters.
runtime = util_models.RuntimeOptions()
try:
# Call the DescribeInstances operation.
describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)
print(describe_instances_response.body)
except UnretryableException as e:
# Network exceptions. Handle exceptions with caution in actual business scenarios and do not ignore exceptions in your project. In this example, exceptions are provided only for reference.
print(e)
except TeaException as e:
# Business exceptions. Handle exceptions with caution in actual business scenarios and do not ignore exceptions in your project. In this example, exceptions are provided only for reference.
print(e)
except Exception as e:
# Other exceptions. Handle exceptions with caution in actual business scenarios and do not ignore exceptions in your project. In this example, exceptions are provided only for reference.
print(e)
if __name__ == '__main__':
Sample.main()
Senaryo bazlı örnekler
Daha fazla bilgi
Yukarıda açıklanan yöntemlere ek olarak, ECS OpenAPI'ye genelleştirilmiş çağrılar yapabilirsiniz. Daha fazla bilgi için bkz. Genelleştirilmiş çağrılar.
Python ECS SDK V1.0 kullanıyorsanız SDK hakkında bilgi için bkz. V1.0 Python SDK.