Tous les produits
Search
Centre de documentation

Alibaba Cloud SDK:Utiliser le SDK Go d'Alibaba Cloud avec un IDE

Dernière mise à jour :Aug 11, 2026

Prise en main du SDK Go d'Alibaba Cloud avec Visual Studio Code (VS Code) sur Windows.

Prérequis

Utiliser le SDK

Utiliser le projet d'exemple depuis OpenAPI Explorer

Remarque

Le téléchargement du projet d'exemple peut échouer. Le cas échéant, Utiliser le SDK dans un projet existant.

  1. 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.

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. 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.

    1716346635851_0B018C7F-D759-497b-B529-58E23E4AC41B

  3. 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.

    image

  4. Dans VS Code, cliquez sur File > Open Folder et sélectionnez le dossier décompressé.

  5. Cliquez sur Terminal > New Terminal pour ouvrir un terminal en bas de l'écran.

    image

  6. Exécutez la commande suivante pour mettre à jour les dépendances du module.

    go mod tidy
  7. Exécutez la commande suivante pour lancer le code d'exemple du package main.

    go run ./main
  8. Vérifiez le résultat. Appuyez sur Ctrl+F dans le terminal et recherchez statusCode. Une réponse "statusCode": 200 indique que l'opération a réussi.

    image

Utiliser le SDK dans un projet existant

  1. Dans VS Code, cliquez sur File > Open Folder et créez ou sélectionnez un dossier de projet, tel que gosdkproject.

  2. Cliquez sur Terminal > New Terminal, puis exécutez go mod init gosdkprojects pour initialiser le projet Go.

    image

  3. 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.

    image

  4. Installez le SDK.

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

    image

  5. 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.

    image

  6. Initialisez le client.

    Initialisez le client ECS avant d'appeler toute API ECS.

    Important
    1. L'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.

    2. 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.

    3. 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)
    }
    
  7. Appelez l'API. Consultez la Documentation API relative à l'API cible. L'exemple suivant appelle l'API DescribeRegions d'ECS.

    Remarque

    Chaque API possède un objet de requête distinct qui suit la convention de nommage ${APIName}${Request}, comme DescribeRegionsRequest.

    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)
    }
    
  8. 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 panic avec defer et recover. panic arrête immédiatement l'exécution. Dans un bloc defer, recover intercepte 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))
    }
    
  9. Dans le terminal, exécutez go run pour lancer le code.

    image

Références

Documentation avancée