Este tema describe cómo instalar el SDK V2.0 de Elastic Compute Service (ECS) para Python y proporciona un ejemplo sobre cómo usar el SDK para llamar a operaciones de la API de ECS. En el ejemplo, se utiliza el SDK V2.0 de ECS para Python con el fin de invocar la operación DescribeInstances y consultar información sobre instancias de ECS.
Requisitos previos
El AccessKey de una cuenta de Alibaba Cloud otorga acceso total a sus recursos, lo que representa un alto riesgo de seguridad si se filtra. Se recomienda crear un usuario de Resource Access Management (RAM) y concederle únicamente los permisos obligatorios. Posteriormente, utilice el AccessKey del usuario RAM para llamar a las operaciones de la API. Para obtener más información, consulte Create an AccessKey.
-
Ha otorgado al usuario RAM permisos para gestionar recursos de ECS. El código de ejemplo en este tema muestra una operación de consulta. En este caso, se emplea la política de sistema AliyunECSReadonlyAccess. Puede otorgar permisos personalizados según sea necesario.
-
Utilice políticas personalizadas.
Para obtener más información sobre cómo crear políticas personalizadas, consulte Create a custom policy y Authorization information.
ECS ofrece ejemplos de políticas personalizadas basados en mejores prácticas. Puede utilizar estos ejemplos para crear rápidamente políticas que satisfagan sus necesidades empresariales. Para obtener más información, consulte Custom policies.
-
Utilice políticas de sistema.
Para obtener información sobre todas las políticas de sistema compatibles con ECS y sus descripciones de permisos, consulte System policies for ECS.
-
Configure el AccessKey mediante variables de entorno. Para obtener más información, consulte Configure environment variables on Linux, macOS, and Windows systems.
Instalación del SDK
Para obtener más información sobre cómo instalar el SDK V2.0 de ECS para Python, visite SDK Center. Puede copiar y ejecutar el siguiente comando en la terminal para instalar el SDK V2.0 de ECS para Python:
pip install alibabacloud_ecs20140526
Uso del SDK
1. Inicializar un cliente
Los SDK de Alibaba Cloud admiten varias credenciales de acceso, como pares de AccessKey y tokens de Security Token Service (STS), para inicializar clientes. Para obtener más información, consulte Manage access credentials. En este ejemplo, se utiliza un par de AccessKey para inicializar un cliente.
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. Crear un objeto de solicitud para la operación de la API
Antes de construir el objeto de solicitud, consulte API reference para obtener información sobre los parámetros.
El nombre de un objeto de solicitud sigue el formato {Nombre de operación}Request. Por ejemplo, el objeto de solicitud para la operación DescribeInstances se llama DescribeInstancesRequest.
# Construct the request object.
describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
region_id='cn-hangzhou'
)
3. Llamar a la operación de la API
Al llamar a una operación de la API desde un cliente, puede especificar parámetros de tiempo de ejecución, como parámetros de tiempo de espera y de proxy. Para obtener más información, consulte Advanced settings.
El nombre de un objeto de respuesta sigue el formato {Nombre de operación}Response. Por ejemplo, el objeto de respuesta para la operación DescribeInstances se llama DescribeInstancesResponse.
# Specify runtime parameters.
runtime = util_models.RuntimeOptions()
# Call the DescribeInstances operation.
describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)
4. Gestionar excepciones
El SDK de Python clasifica las excepciones en dos categorías principales: UnretryableException y TeaException.
UnretryableException: Este tipo de excepción se debe a problemas de red. En la mayoría de los casos, se lanza una excepción UnretryableException cuando se alcanza el número máximo de reintentos.
TeaException: Generalmente, este tipo de excepción es causada por errores de negocio.
Se recomienda gestionar adecuadamente las excepciones mediante acciones como reportarlas, registrarlas en logs y realizar reintentos, para garantizar la solidez y estabilidad de su sistema.
5. Código de ejemplo completo
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()
Ejemplos por escenario
Más información
Además de los métodos descritos anteriormente, puede realizar llamadas generalizadas a la OpenAPI de ECS. Para obtener más información, consulte Generalized calls.
Si utiliza el SDK V1.0 de ECS para Python, consulte V1.0 Python SDK para obtener información sobre dicho SDK.