Todos los productos
Search
Centro de documentos

Alibaba Cloud SDK:Uso del SDK de Go de Alibaba Cloud con un IDE

Última actualización: Sep 05, 2026

Comience a utilizar el SDK de Go de Alibaba Cloud con Visual Studio Code (VS Code) en Windows.

Requisitos previos

Uso del SDK

Uso del proyecto de ejemplo desde OpenAPI Explorer

Nota

La descarga del proyecto de ejemplo podría fallar. Si esto ocurre, utilice Use the SDK in an existing project.

  1. Vaya a la API Debugging página del portal de OpenAPI. Seleccione un producto de nube y una API. Este ejemplo utiliza la API DescribeRegions de ECS. Introduzca DescribeRegions en la barra de búsqueda y haga clic en el nombre de la API.

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. En la pestaña Parameter Settings, introduzca los parámetros obligatorios. La pestaña Document, ubicada a la derecha, muestra la descripción de la API, las notas, la información de facturación y los detalles de los parámetros.

    La API DescribeRegions admite tres parámetros:

    Nombre del parámetro

    Obligatorio

    Descripción

    InstanceChargeType

    Opcional

    Las regiones compatibles varían según el método de facturación. Valor predeterminado: PrePaid.

    ResourceType

    Opcional

    Las regiones compatibles varían según el tipo de recurso. Valor predeterminado: instance.

    AcceptLanguage

    Opcional

    Idioma de los resultados devueltos. Valor predeterminado: zh-CN.

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

  3. En la pestaña SDK Sample Code, situada en la columna más a la 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.

    image

  4. En VS Code, haga clic en File > Open Folder y seleccione la carpeta que descomprimió.

  5. Haga clic en Terminal > New Terminal para abrir una terminal en la parte inferior.

    image

  6. Ejecute el siguiente comando para actualizar las dependencias del módulo.

    go mod tidy
  7. Ejecute el siguiente comando para ejecutar el código de ejemplo en el paquete main.

    go run ./main
  8. Compruebe el resultado. Presione Ctrl+F en la terminal y busque statusCode. Una respuesta "statusCode": 200 indica que la operación fue exitosa.

    image

Uso del SDK en un proyecto existente

  1. En VS Code, haga clic en File > Open Folder y cree o seleccione una carpeta de proyecto, como gosdkproject.

  2. Haga clic en Terminal > New Terminal y ejecute go mod init gosdkprojects para inicializar el proyecto de Go.

    image

  3. Obtenga el SDK.

    En SDK Center, seleccione un producto de nube como ECS, establezca SDK Version en V2.0 y configure Language en Go.

    image

  4. Instale el SDK.

    Copie el comando de instalación en la terminal y ejecútelo.

    image

  5. Cree un archivo .go. Junto al nombre del proyecto, haga clic en New File... e introduzca un nombre de archivo, como ecsDescribeRegions.go.

    image

  6. Inicialice el cliente.

    Inicialice el cliente de ECS antes de llamar a cualquier API de ECS.

    Importante
    1. Debe 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 obtener más información sobre cómo obtener un par de AccessKey, consulte Create an AccessKey.

    2. Después de obtener el par de AccessKey de un usuario de RAM, configúrelo en las variables de entorno. Para obtener más información, consulte Configure environment variables in Linux, macOS, and Windows.

    3. Para obtener más información sobre cómo configurar el endpoint, consulte 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. Llame a la API. Revise la API Documentation correspondiente a la API de destino. En el siguiente ejemplo se llama a la API DescribeRegions de ECS.

    Nota

    Cada API tiene un objeto de solicitud independiente que sigue la convención de nomenclatura ${APIName}${Request}, como 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. Gestione las excepciones.

    El SDK de Go de Alibaba Cloud devuelve errores para el manejo estándar de excepciones (Exception handling). Para situaciones inesperadas, use panic junto con defer y recover. panic detiene la ejecución de inmediato. Dentro de un bloque defer, recover captura el panic y reanuda la ejecución normal.

    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. En la terminal, ejecute go run para ejecutar el código.

    image

Referencias

Documentación avanzada