Comience a utilizar el SDK de Go de Alibaba Cloud con Visual Studio Code (VS Code) en Windows.
Requisitos previos
Go está instalado. Install Go on Windows.
VS Code está instalado. Set up a Go development environment on Windows.
Uso del SDK
Uso del proyecto de ejemplo desde OpenAPI Explorer
La descarga del proyecto de ejemplo podría fallar. Si esto ocurre, utilice Use the SDK in an existing project.
-
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.

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

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

En VS Code, haga clic en File > Open Folder y seleccione la carpeta que descomprimió.
-
Haga clic en Terminal > New Terminal para abrir una terminal en la parte inferior.

-
Ejecute el siguiente comando para actualizar las dependencias del módulo.
go mod tidy -
Ejecute el siguiente comando para ejecutar el código de ejemplo en el paquete main.
go run ./main -
Compruebe el resultado. Presione
Ctrl+Fen la terminal y busquestatusCode. Una respuesta"statusCode": 200indica que la operación fue exitosa.
Uso del SDK en un proyecto existente
En VS Code, haga clic en File > Open Folder y cree o seleccione una carpeta de proyecto, como
gosdkproject.-
Haga clic en Terminal > New Terminal y ejecute
go mod init gosdkprojectspara inicializar el proyecto de Go.
-
Obtenga el SDK.
En SDK Center, seleccione un producto de nube como ECS, establezca SDK Version en V2.0 y configure Language en Go.

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

-
Cree un archivo .go. Junto al nombre del proyecto, haga clic en New File... e introduzca un nombre de archivo, como
ecsDescribeRegions.go.
-
Inicialice el cliente.
Inicialice el cliente de ECS antes de llamar a cualquier API de ECS.
ImportanteDebe 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.
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.
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) } -
Llame a la API. Revise la API Documentation correspondiente a la API de destino. En el siguiente ejemplo se llama a la API
DescribeRegionsde ECS.NotaCada API tiene un objeto de solicitud independiente que sigue la convención de nomenclatura
${APIName}${Request}, comoDescribeRegionsRequest.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) } -
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
panicjunto condeferyrecover.panicdetiene la ejecución de inmediato. Dentro de un bloquedefer,recovercaptura 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)) } -
En la terminal, ejecute
go runpara ejecutar el código.