Prise en main du SDK Go d'Alibaba Cloud avec Visual Studio Code (VS Code) sur Windows.
Prérequis
Go est installé. Installer Go sur Windows.
VS Code est installé. Configurer un environnement de développement Go sur Windows.
Utiliser le SDK
Utiliser le projet d'exemple depuis OpenAPI Explorer
Le téléchargement du projet d'exemple peut échouer. Le cas échéant, Utiliser le SDK dans un projet existant.
-
Accédez à la page API Debugging du portail OpenAPI. Sélectionnez un produit cloud et une API. Cet exemple utilise l'API DescribeRegions d'ECS. Saisissez DescribeRegions dans la barre de recherche, puis cliquez sur le nom de l'API.

-
Dans l'onglet Parameter Settings, saisissez les paramètres requis. L'onglet Document situé à droite fournit la description de l'API, des notes, les informations de facturation et les détails des paramètres.
L'API DescribeRegions prend en charge trois paramètres :
Nom du paramètre
Obligatoire
Description
InstanceChargeType
Facultatif
Les régions prises en charge varient selon le mode de facturation. Valeur par défaut : PrePaid.
ResourceType
Facultatif
Les régions prises en charge varient selon le type de ressource. Valeur par défaut : instance.
AcceptLanguage
Facultatif
Langue des résultats retournés. Valeur par défaut : zh-CN.

-
Dans l'onglet SDK Sample Code de la colonne la plus à droite, sélectionnez 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.

Dans VS Code, cliquez sur File > Open Folder et sélectionnez le dossier décompressé.
-
Cliquez sur Terminal > New Terminal pour ouvrir un terminal en bas de l'écran.

-
Exécutez la commande suivante pour mettre à jour les dépendances du module.
go mod tidy -
Exécutez la commande suivante pour lancer le code d'exemple du package main.
go run ./main -
Vérifiez le résultat. Appuyez sur
Ctrl+Fdans le terminal et recherchezstatusCode. Une réponse"statusCode": 200indique que l'opération a réussi.
Utiliser le SDK dans un projet existant
Dans VS Code, cliquez sur File > Open Folder et créez ou sélectionnez un dossier de projet, tel que
gosdkproject.-
Cliquez sur Terminal > New Terminal, puis exécutez
go mod init gosdkprojectspour initialiser le projet Go.
-
Obtenez le SDK.
Dans le SDK Center, sélectionnez un produit cloud tel qu'ECS, définissez SDK Version sur V2.0 et Language sur Go.

-
Installez le SDK.
Copiez la commande d'installation dans le terminal et exécutez-la.

-
Créez un fichier .go. À côté du nom du projet, cliquez sur New File... et saisissez un nom de fichier, tel que
ecsDescribeRegions.go.
-
Initialisez le client.
Initialisez le client ECS avant d'appeler toute API ECS.
ImportantL'initialisation du client requiert une paire d'AccessKey pour l'authentification. Obtenez cette paire au préalable. Pour plus d'informations, consultez Créer un AccessKey.
Après avoir obtenu la paire d'AccessKey d'un utilisateur RAM, configurez-la dans les variables d'environnement. Pour plus d'informations, consultez Configurer les variables d'environnement sous Linux, macOS et Windows.
Pour plus d'informations sur la configuration de l'endpoint, consultez Endpoints.
package main import ( "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient initializes and returns an ECS client. // This function does not accept parameters, but requires that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set. // return *ecs20140526.Client // return error: Returns a non-nil error object if any error occurs during client creation. func CreateClient() (_result *ecs20140526.Client, _err error) { // Initialize the openapi.Config object to configure the ECS client. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Create and return an ECS client instance using the configuration. return ecs20140526.NewClient(config) } -
Appelez l'API. Consultez la Documentation API relative à l'API cible. L'exemple suivant appelle l'API
DescribeRegionsd'ECS.RemarqueChaque API possède un objet de requête distinct qui suit la convention de nommage
${APIName}${Request}, commeDescribeRegionsRequest.package main import ( "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient initializes and returns an ECS client. // This function does not accept parameters, but requires that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set. // return *ecs20140526.Client // return error: Returns a non-nil error object if any error occurs during client creation. func CreateClient() (_result *ecs20140526.Client, _err error) { // Initialize the openapi.Config object to configure the ECS client. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Create and return an ECS client instance using the configuration. return ecs20140526.NewClient(config) } // The InvokeApi function calls the DescribeRegions API of ECS to query available region information. // // Return values: // _result: Returns a pointer of the *ecs20140526.DescribeRegionsResponse type, which contains the queried region information. // _err: Returns an error message of the error type. This value is not empty if an error occurs during the call. func InvokeApi()(_result *ecs20140526.DescribeRegionsResponse, _err error) { // Create an ECS client. client, _err := CreateClient() if _err != nil { // If an error occurs during client creation, return the error message directly. return _result, _err } // Create a DescribeRegions request. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Initiate the DescribeRegions request and return the result. return client.DescribeRegions(describeRegionsRequest) } -
Gérez les exceptions.
Le SDK Go d'Alibaba Cloud retourne des erreurs pour la gestion standard des exceptions (Gestion des exceptions). Pour les situations inattendues, utilisez
panicavecdeferetrecover.panicarrête immédiatement l'exécution. Dans un blocdefer,recoverintercepte la panique et reprend l'exécution normale.package main import ( "fmt" "os" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs20140526 "github.com/alibabacloud-go/ecs-20140526/v4/client" "github.com/alibabacloud-go/tea/tea" ) // CreateClient initializes and returns an ECS client. // This function does not accept parameters, but requires that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are set. // return *ecs20140526.Client // return error: Returns a non-nil error object if any error occurs during client creation. func CreateClient() (_result *ecs20140526.Client, _err error) { // Initialize the openapi.Config object to configure the ECS client. config := &openapi.Config{ AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")), AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } // Create and return an ECS client instance using the configuration. return ecs20140526.NewClient(config) } // The InvokeApi function calls the DescribeRegions API of ECS to query available region information. // // Return values: // _result: Returns a pointer of the *ecs20140526.DescribeRegionsResponse type, which contains the queried region information. // _err: Returns an error message of the error type. This value is not empty if an error occurs during the call. func InvokeApi() (_result *ecs20140526.DescribeRegionsResponse, _err error) { // Create an ECS client. client, _err := CreateClient() if _err != nil { // If an error occurs during client creation, return the error message directly. return _result, _err } // Create a DescribeRegions request. describeRegionsRequest := &ecs20140526.DescribeRegionsRequest{} // Initiate the DescribeRegions request and return the result. return client.DescribeRegions(describeRegionsRequest) } // This function obtains region information by calling an API, and recovers from and handles exceptions when they occur. func main() { // Use defer only in scenarios such as deep recursion or unexpected errors. defer func() { if err := tea.Recover(recover()); err != nil { // When an exception is caught, handle it based on the exception type. if sdkError, ok := err.(*tea.SDKError); ok { // Print the SDK error message, error code, and related data. fmt.Println(tea.StringValue(sdkError.Message)) fmt.Println(tea.StringValue(sdkError.Code)) fmt.Println(tea.StringValue(sdkError.Data)) } else { // Print other types of error messages. fmt.Println(err) } } }() // Call the API to get the result. result, _ := InvokeApi() // Traverse and print the region information in the result. for _, region := range result.Body.Regions.Region { fmt.Println("regionId: " + tea.StringValue(region.RegionId)) } // Print the RequestId. fmt.Println("RequestId: " + tea.StringValue(result.Body.RequestId)) } -
Dans le terminal, exécutez
go runpour lancer le code.