Aprenda a usar el SDK de Python de Alibaba Cloud con PyCharm en Windows.
Requisitos previos
Python está instalado. Install Python.
PyCharm está instalado. Set up a Python development environment on Windows.
Uso del SDK
Uso del proyecto de ejemplo desde OpenAPI Portal
Si no puede descargar el proyecto de ejemplo desde OpenAPI Portal, siga los pasos de Use the SDK in an existing project.
Vaya a la OpenAPI Explorer y seleccione un producto y una API. Por ejemplo, para llamar a la API
DescribeInstanceTypeFamiliesde ECS, introduzcaDescribeInstanceTypeFamiliesen el cuadro de búsqueda y haga clic en el resultado para ir a la página de OpenAPI Explorer.En la pestaña Parameters de la columna central, especifique los parámetros según sus necesidades de negocio. Mientras los define, lea la información de la pestaña Document en la columna derecha. Asegúrese de comprender las notas de uso de la operación y la descripción de cada parámetro. Preste atención a la información relacionada con la facturación. En este ejemplo, la operación DescribeInstanceTypeFamilies admite dos parámetros de solicitud. Debe especificar un valor como cn-hangzhou para el parámetro RegionId. El parámetro Generation es opcional. Puede establecer este parámetro en ecs-5, que indica la familia de instancias de la serie V. Consulte los valores válidos de los parámetros en la pestaña Document.
-
En la pestaña SDK Sample Code de la columna derecha, seleccione un lenguaje de programación y haga clic en Download Project para descargar el proyecto completo del SDK a su computadora. Después, descomprima el paquete.
Establezca SDK Version en V2.0 Recommended, Language en Python y haga clic en Download Complete Project.
-
Abra PyCharm. Haga clic en File > Open, seleccione la carpeta del proyecto descomprimido y haga clic en OK en el cuadro de diálogo Creating Virtual Environment. Espere a que PyCharm cree el entorno virtual y descargue las dependencias.
NotaSi las dependencias no se descargan, ejecute
python3 setup.py installen la terminal. -
Antes de llamar a esta operación, debe obtener un par de AccessKey como credencial de acceso. Se recomienda usar el par de AccessKey de un usuario de Resource Access Management (RAM). Para más información, consulte la sección Create an AccessKey pair for a RAM user del tema "Create an AccessKey pair".
ImportanteDespués de obtener el par de AccessKey de un usuario de RAM, debe configurar dicho par en las variables de entorno. Para más información, consulte Configure environment variables in Linux, macOS, and Windows.
-
Ejecute el código de ejemplo.
Haga clic en la pestaña Terminal en la parte inferior de PyCharm o presione
Alt + F12. Ejecute el siguiente comando:python ./alibabacloud_sample/sample.pyContenido de
sample.py:# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. import os import sys from typing import List from alibabacloud_ecs20140526.client import Client as Ecs20140526Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_console.client import Client as ConsoleClient from alibabacloud_tea_util.client import Client as UtilClient class Sample: def __init__(self): pass @staticmethod def create_client() -> Ecs20140526Client: """ Initialize the account client using AccessKey ID and AccessKey Secret. """ passSalida de la terminal:
python ./alibabacloud_sample/sample.py [LOG] {"headers":{"date":"Mon, 20 May 2024 02:41:40 GMT","content-type":"application/json;charset=utf-8","content-length":"139","connection":"keep-alive","keep-alive":"timeout=25","access-control-allow-origin":"*","access-control-expose-headers":"*","x-acs-request-id":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","x-acs-trace-id":"b31e569bd03bd37030ba2d9e5b0afbd","etag":"1Kp258uXZ5v+Tj9LKzSIaQ09"},"statusCode":200,"body":{"Instances":{"Instance":[]},"NextToken":"","PageNumber":1,"PageSize":10,"RequestId":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","TotalCount":0}} -
Consulte el resultado. Haga clic en cualquier parte de la ventana Run en la zona inferior de la consola y presione
Ctrl+Fpara buscarstatusCode. Si se muestra"statusCode":200, la llamada fue exitosa.# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. import os import sys from typing import List from alibabacloud_ecs20140526.client import Client as Ecs20140526Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_console.client import Client as ConsoleClient from alibabacloud_tea_util.client import Client as UtilClient class Sample: def __init__(self): pass @staticmethod def create_client() -> Ecs20140526Client: """ Initialize the account client using AccessKey ID and AccessKey Secret. """ passpython ./alibabacloud_sample/sample.py [LOG] {"headers":{"date":"Mon, 20 May 2024 02:41:40 GMT","content-type":"application/json;charset=utf-8","content-length":"139","connection":"keep-alive","keep-alive":"timeout=25","access-control-allow-origin":"*","access-control-expose-headers":"*","x-acs-request-id":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","x-acs-trace-id":"b31e569bd03bd37030ba62d9e5b0afbd","etag":"1Kp258uXZ5v+Tj9LKzSIaQ09..."},"statusCode":200,"body":{"Instances":{"Instance":[]},"NextToken":"","PageNumber":1,"PageSize":10,"RequestId":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","TotalCount":0}}
Uso del SDK en un proyecto existente
-
Obtenga el SDK.
Vaya a SDK Center y seleccione un producto, como Elastic Compute Service. Establezca SDK Version en V2.0 y Language en Python.
Seleccione la pestaña Quick Start, copie el comando de instalación
pip install alibabacloud_ecs20140526==4.1.5de la sección Installation y ejecútelo en su terminal local. -
Instale el SDK.
En PyCharm, presione
Alt+F12para abrir la terminal. Pegue el comando de instalación y presione Enter.(.venv) PS D:\ide\PythonProjects\pythonProject> pip install alibabacloud_ecs20140526==4.1.5 Collecting alibabacloud_ecs20140526==4.1.5 Obtaining dependency information for alibabacloud_ecs20140526==4.1.5 from https://files.pythonhosted.org/packages/6e/20/b10ac267a8625257dd846df4574c9c171126fbf6h149385af5dee128d756/alibabacloud_ecs20140526-4.1.5-py3-none-any.whl.metadata Using cached alibabacloud_ecs20140526-4.1.5-py3-none-any.whl.metadata (2.3 kB) Collecting alibabacloud-tea-util<1.0.0,>=0.3.12 (from alibabacloud_ecs20140526==4.1.5) Using cached alibabacloud_tea_util-0.3.12-py3-none-any.whl Collecting alibabacloud-tea-openapi<1.0.0,>=0.3.9 (from alibabacloud_ecs20140526==4.1.5) Using cached alibabacloud_tea_openapi-0.3.9-py3-none-any.whl Collecting alibabacloud-openapi-util<1.0.0,>=0.2.1 (from alibabacloud_ecs20140526==4.1.5) Using cached alibabacloud_openapi_util-0.2.2-py3-none-any.whl Collecting alibabacloud-endpoint-util<1.0.0,>=0.0.3 (from alibabacloud_ecs20140526==4.1.5) -
Cree un archivo de Python.
Haga clic con el botón derecho en el nombre del proyecto y seleccione New > Python File. Introduzca
sdk_democomo nombre del archivo, seleccione Python File y presione Enter. -
Inicialice el cliente.
Inicialice el cliente de ECS antes de llamar a una API.
ImportanteDebe usar un par de AccessKey para completar la verificación de identidad cuando inicialice el cliente. Por lo tanto, obtenga un par de AccessKey por adelantado. Para más información sobre cómo obtenerlo, consulte Create an AccessKey.
Después de obtener el par de AccessKey de un usuario de RAM, debe configurarlo en las variables de entorno. Para más información, consulte Configure environment variables in Linux, macOS, and Windows.
Para más información sobre cómo configurar el endpoint, consulte Endpoints.
import os from alibabacloud_ecs20140526 import client as ecs_client from alibabacloud_tea_openapi import models as open_api_models def init_ecs_client(): """ Initializes the ECS client. This function takes no arguments. Returns: ecs_client.Client: An initialized ECS client object for further ECS operations. """ # Create an ECS configuration object and read the AccessKey pair from environment variables. ecs_config = open_api_models.Config() ecs_config.access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ecs_config.access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # Set the endpoint. ecs_config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com' # Initialize the ECS client with the configuration and return it. return ecs_client.Client(ecs_config) if __name__ == '__main__': client = init_ecs_client() -
Llame a la API. Revise la documentación de la API correspondiente. A continuación se muestra un ejemplo que llama a la API
DescribeRegionsde ECS.NotaCada API tiene un objeto de solicitud independiente que sigue la convención de nomenclatura
${APIName}${Request}, comoDescribeRegionsRequest.import os from alibabacloud_ecs20140526 import client as ecs_client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models def init_ecs_client(): """ Initializes the ECS client. This function takes no arguments. Returns: ecs_client.Client: An initialized ECS client object for further ECS operations. """ # Create an ECS configuration object and read the AccessKey pair from environment variables. ecs_config = open_api_models.Config() ecs_config.access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ecs_config.access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # Set the endpoint. ecs_config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com' # Initialize the ECS client with the configuration and return it. return ecs_client.Client(ecs_config) if __name__ == '__main__': # Initialize the ECS client. client = init_ecs_client() # Create a DescribeRegionsRequest object. describeRegions_request = ecs_20140526_models.DescribeRegionsRequest() # Send a describeRegions request to get region information. response = client.describe_regions(describeRegions_request) print(response.body) -
Gestione las excepciones.
El SDK de Python V2.0 gestiona las excepciones mediante
Tea.exceptions, con dos tipos de excepción:UnretryableException: se lanza cuando se alcanza el número máximo de reintentos debido a problemas de red.TeaException: indica un error del servicio durante una solicitud del SDK.
import os from Tea.exceptions import UnretryableException, TeaException from alibabacloud_ecs20140526 import client as ecs_client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models def init_ecs_client(): """ Initializes the ECS client. This function takes no arguments. Returns: ecs_client.Client: An initialized ECS client object for further ECS operations. """ # Create an ECS configuration object and read the AccessKey pair from environment variables. ecs_config = open_api_models.Config() ecs_config.access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ecs_config.access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # Set the endpoint. ecs_config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com' # Initialize the ECS client with the configuration and return it. return ecs_client.Client(ecs_config) if __name__ == '__main__': try: # Initialize the ECS client. client = init_ecs_client() # Create a DescribeRegionsRequest object. describeRegions_request = ecs_20140526_models.DescribeRegionsRequest() # Send a describeRegions request to get region information. response = client.describe_regions(describeRegions_request) # Print the response. print(response.body) except UnretryableException as e: # Handle network exceptions. print(e) except TeaException as e: # Handle service exceptions. print(e) except Exception as e: # Handle other exceptions. print(e) (Opcional) Copie el código de ejemplo de OpenAPI Portal en un archivo y ejecútelo. Auto-generate SDK sample code.