Découvrez comment utiliser le SDK Python Alibaba Cloud avec PyCharm sous Windows.
Prérequis
Python est installé. Installer Python.
PyCharm est installé. Configurer un environnement de développement Python sous Windows.
Utiliser le SDK
Utiliser le projet d'exemple depuis OpenAPI Portal
Si vous ne parvenez pas à télécharger le projet d'exemple depuis OpenAPI Portal, suivez la procédure décrite dans Utiliser le SDK dans un projet existant.
Accédez à la page OpenAPI Explorer, puis sélectionnez un produit et une API. Par exemple, pour appeler l'API
DescribeInstanceTypeFamiliesd'ECS, saisissezDescribeInstanceTypeFamiliesdans le champ de recherche et cliquez sur le résultat correspondant pour accéder à la page OpenAPI Explorer.Dans l'onglet Parameters de la colonne centrale, spécifiez les paramètres selon vos besoins métier. Consultez parallèlement les informations de l'onglet Document, situé dans la colonne de droite. Vérifiez que vous comprenez bien les notes d'utilisation de l'opération et la description de chaque paramètre. Prêtez une attention particulière aux informations relatives à la facturation. Dans cet exemple, l'opération DescribeInstanceTypeFamilies accepte deux paramètres de requête. Spécifiez une valeur telle que cn-hangzhou pour le paramètre RegionId. Le paramètre Generation est facultatif ; vous pouvez lui attribuer la valeur ecs-5, qui correspond à la famille d'instances de série V. Les valeurs valides des paramètres figurent dans l'onglet Document.
-
Dans l'onglet SDK Sample Code de la colonne de droite, choisissez un langage de programmation et cliquez sur Download Project pour télécharger le projet SDK complet sur votre ordinateur. Décompressez ensuite l'archive.
Définissez SDK Version sur V2.0 Recommended, sélectionnez Python comme langage, puis cliquez sur Download Complete Project.
-
Lancez PyCharm. Cliquez sur File > Open, sélectionnez le dossier du projet décompressé, puis cliquez sur OK dans la boîte de dialogue Creating Virtual Environment. Patientez pendant la création de l'environnement virtuel et le téléchargement des dépendances par PyCharm.
RemarqueEn cas d'échec du téléchargement des dépendances, exécutez la commande
python3 setup.py installdans le terminal. -
Avant d'appeler cette opération, obtenez une paire d'AccessKey servant d'identifiant d'accès. Nous vous recommandons d'utiliser la paire d'AccessKey d'un utilisateur Resource Access Management (RAM). Pour plus d'informations, reportez-vous à la section Créer une paire d'AccessKey pour un utilisateur RAM de la rubrique « Créer une paire d'AccessKey ».
ImportantUne fois la paire d'AccessKey de l'utilisateur RAM obtenue, configurez-la dans les variables d'environnement. Pour plus d'informations, consultez Configurer les variables d'environnement sous Linux, macOS et Windows.
-
Exécutez le code d'exemple.
Cliquez sur l'onglet Terminal en bas de PyCharm ou appuyez sur
Alt + F12. Exécutez la commande suivante :python ./alibabacloud_sample/sample.pyContenu du fichier
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. """ passSortie du 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}} -
Consultez le résultat. Cliquez n'importe où dans la fenêtre Run située en bas de la console, puis appuyez sur
Ctrl+Fpour rechercherstatusCode. Si"statusCode":200s'affiche, l'appel a réussi.# -*- 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}}
Utiliser le SDK dans un projet existant
-
Obtenez le SDK.
Rendez-vous sur SDK Center et sélectionnez un produit, par exemple Elastic Compute Service. Définissez SDK Version sur V2.0 et choisissez Python comme langage.
Sélectionnez l'onglet Quick Start, copiez la commande d'installation
pip install alibabacloud_ecs20140526==4.1.5depuis la section Installation, puis exécutez-la dans votre terminal local. -
Installez le SDK.
Dans PyCharm, appuyez sur
Alt+F12pour ouvrir le terminal. Collez la commande d'installation et appuyez sur Entrée.(.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) -
Créez un fichier Python.
Cliquez avec le bouton droit sur le nom du projet, puis sélectionnez New > Python File. Saisissez
sdk_democomme nom de fichier, choisissez Python File, et appuyez sur Entrée. -
Initialisez le client.
Initialisez le client ECS avant tout appel d'API.
ImportantL'initialisation du client nécessite une paire d'AccessKey pour l'authentification. Obtenez cette paire au préalable. Pour savoir comment procéder, consultez Créer une paire d'AccessKey.
Après avoir obtenu la paire d'AccessKey d'un utilisateur RAM, configurez-la dans les variables d'environnement. Pour plus d'informations, voir Configurer les variables d'environnement sous Linux, macOS et Windows.
Pour plus de détails sur la configuration de l'endpoint, reportez-vous à 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() -
Appelez l'API. Consultez la Documentation API relative à l'API ciblée. L'exemple suivant appelle l'API
DescribeRegionsd'ECS.RemarqueChaque API possède son propre objet de requête, nommé selon la convention
${APIName}${Request}, par exempleDescribeRegionsRequest.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) -
Gérez les exceptions.
Le SDK Python V2.0 gère les exceptions via
Tea.exceptions, qui comprend deux types d'exceptions :UnretryableException: levée lorsque le nombre maximal de tentatives est atteint en raison de problèmes réseau.TeaException: signale une erreur de service survenue lors d'une requête 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) (Facultatif) Copiez le code d'exemple d'OpenAPI Portal dans un fichier et exécutez-le. Générer automatiquement du code d'exemple SDK.