Saiba como usar o Alibaba Cloud Python SDK com o PyCharm no Windows.
Pré-requisitos
-
O Python está instalado. Instalar o Python.
-
O PyCharm está instalado. Configurar um ambiente de desenvolvimento Python no Windows.
Use o SDK
Use o projeto de exemplo do OpenAPI Portal
Se não for possível baixar o projeto de exemplo do OpenAPI Portal, siga Usar o SDK em um projeto existente.
-
Acesse a página do OpenAPI Explorer e selecione um produto e uma API. Por exemplo, para chamar a API
DescribeInstanceTypeFamiliesdo ECS, insiraDescribeInstanceTypeFamiliesna caixa de pesquisa e clique no resultado para acessar a página do OpenAPI Explorer. -
Na aba Parameters na coluna central, especifique os parâmetros de acordo com seus requisitos de negócio. Ao especificar os parâmetros, leia as informações na aba Document na coluna mais à direita. Certifique-se de entender as notas de uso da operação e a descrição de cada parâmetro. Preste atenção às informações de faturamento. Neste exemplo, a operação DescribeInstanceTypeFamilies aceita dois parâmetros de requisição. Especifique um valor como cn-hangzhou para o parâmetro RegionId. O parâmetro Generation é opcional. Você pode defini-lo como ecs-5, o que indica a família de instâncias da série V. Os valores válidos dos parâmetros estão disponíveis na aba Document.
-
Na aba SDK Sample Code na coluna mais à direita, selecione uma linguagem de programação e clique em Download Project para baixar o projeto SDK completo para o seu computador. Em seguida, descompacte o pacote.
Defina SDK Version como V2.0 Recommended, defina Language como Python e clique em Download Complete Project.
-
Abra o PyCharm. Clique em File > Open, selecione a pasta do projeto descompactado e clique em OK na caixa de diálogo Creating Virtual Environment. Aguarde o PyCharm criar o ambiente virtual e baixar as dependências.
NotaSe as dependências não forem baixadas, execute
python3 setup.py installno terminal. -
Antes de chamar esta operação, você deve obter um par de AccessKey como credencial de acesso. Recomendamos usar o par de AccessKey de um usuário do Resource Access Management (RAM). Para mais informações, consulte a seção Criar um par de AccessKey para um usuário RAM do tópico "Create an AccessKey pair".
ImportanteApós obter o par de AccessKey de um usuário RAM, configure o par de AccessKey nas variáveis de ambiente. Para mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
-
Execute o código de exemplo.
Clique na aba Terminal na parte inferior do PyCharm ou pressione
Alt + F12. Execute o seguinte comando:python ./alibabacloud_sample/sample.pyConteúdo 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: """ 使用AK&SK初始化账号ClientSaída do 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}} -
Visualize o resultado. Clique em qualquer lugar na janela Run na parte inferior do console e pressione
Ctrl+Fpara pesquisarstatusCode. Se"statusCode":200for exibido, a chamada foi bem-sucedida.# -*- 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: """ 使用AK&SK初始化账号Clientpython ./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}}
Use o SDK em um projeto existente
-
Obtenha o SDK.
Acesse o SDK Center e selecione um produto, como Elastic Compute Service. Defina SDK Version como V2.0 e Language como Python.
Selecione a aba Quick Start, copie o comando de instalação
pip install alibabacloud_ecs20140526==4.1.5da seção Installation e execute-o no terminal local. -
Instale o SDK.
No PyCharm, pressione
Alt+F12para abrir o terminal. Cole o comando de instalação e pressione 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) -
Crie um arquivo Python.
Clique com o botão direito no nome do projeto e selecione New > Python File. Insira `sdk_demo` como nome do arquivo, selecione Python File e pressione Enter.
-
Inicialize o cliente.
Inicialize o cliente ECS antes de chamar uma API.
ImportanteVocê deve usar um par de AccessKey para concluir a verificação de identidade ao inicializar o cliente. Nesse caso, obtenha um par de AccessKey antecipadamente. Para mais informações sobre como obter um par de AccessKey, consulte Criar um AccessKey.
Após obter o par de AccessKey de um usuário RAM, configure o par de AccessKey nas variáveis de ambiente. Para mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.
Para mais informações sobre como configurar o 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() -
Chame a API. Consulte a API Documentation da API de destino. O exemplo a seguir chama a API `DescribeRegions` do ECS.
NotaCada API tem um objeto de requisição separado que segue a convenção de nomenclatura `${APIName}${Request}`, como `DescribeRegionsRequest`.
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) -
Trate as exceções.
O Python V2.0 SDK trata exceções por meio de `Tea.exceptions` com dois tipos de exceção:
-
`UnretryableException`: lançada quando o número máximo de tentativas é atingido devido a problemas de rede.
-
`TeaException`: indica um erro de serviço durante uma requisição 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 o código de exemplo do OpenAPI Portal para um arquivo e execute-o. Gerar automaticamente código de exemplo do SDK.