Todos os produtos
Search
Central de documentação

Alibaba Cloud SDK:Use o Alibaba Cloud Go SDK com uma IDE

Última atualização: Jul 03, 2026

Comece a usar o Alibaba Cloud Go SDK com o Visual Studio Code (VS Code) no Windows.

Pré-requisitos

Usar o SDK

Usar o projeto de exemplo do OpenAPI Explorer

Nota

O download do projeto de exemplo pode falhar. Se isso ocorrer, use o SDK em um projeto existente.

  1. Acesse a página API Debugging no OpenAPI Portal. Selecione um produto de nuvem e uma API. Este exemplo usa a API DescribeRegions do ECS. Insira DescribeRegions na barra de pesquisa e clique em nome da API.

    1716346246233_4A41CC11-FA46-4973-BC7B-C4AAD6E7F3F0

  2. Na aba Parameter Settings, insira os parâmetros necessários. A aba Document, à direita, fornece a descrição da API, observações, informações de faturamento e detalhes dos parâmetros.

    A API DescribeRegions aceita três parâmetros:

    Nome do parâmetro

    Obrigatório

    Descrição

    InstanceChargeType

    Opcional

    As regiões compatíveis variam conforme o método de faturamento. Padrão: PrePaid.

    ResourceType

    Opcional

    As regiões compatíveis variam conforme o tipo de recurso. Padrão: instance.

    AcceptLanguage

    Opcional

    Idioma dos resultados retornados. Padrão: zh-CN.

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

  3. Na aba SDK Sample Code, na coluna mais à direita, selecione uma linguagem de programação e clique em Download Project para baixar o projeto completo do SDK para o seu computador. Em seguida, descompacte o pacote.

    image

  4. No VS Code, clique em File > Open Folder e selecione a pasta descompactada.

  5. Clique em Terminal > New Terminal para abrir um terminal na parte inferior.

    image

  6. Execute o comando a seguir para atualizar as dependências do módulo.

    go mod tidy
  7. Execute o comando a seguir para rodar o código de exemplo no pacote main.

    go run ./main
  8. Verifique o resultado. Pressione Ctrl+F no Terminal e pesquise por statusCode. Uma resposta "statusCode": 200 indica sucesso.

    image

Usar o SDK em um projeto existente

  1. No VS Code, clique em File > Open Folder e crie ou selecione uma pasta de projeto, como gosdkproject.

  2. Clique em Terminal > New Terminal e execute go mod init gosdkprojects para inicializar o projeto Go.

    image

  3. Obtenha o SDK.

    No SDK Center, selecione um produto de nuvem, como ECS, defina SDK Version como V2.0 e Language como Go.

    image

  4. Instale o SDK.

    Copie o comando de instalação para o terminal e execute-o.

    image

  5. Crie um arquivo .go. Ao lado do nome do projeto, clique em New File... e insira um nome de arquivo, como ecsDescribeRegions.go.

    image

  6. Inicialize o cliente.

    Inicialize o cliente ECS antes de chamar qualquer API do ECS.

    Importante
    1. Use um par de AccessKey para concluir a verificação de identidade ao inicializar o cliente. Obtenha um par de AccessKey antecipadamente. Para obter mais informações sobre como obter um par de AccessKey, consulte Criar um AccessKey.

    2. Após obter o par de AccessKey de um usuário RAM, configure-o nas variáveis de ambiente. Para obter mais informações, consulte Configurar variáveis de ambiente no Linux, macOS e Windows.

    3. Para obter mais informações sobre como configurar o 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. Chame a API. Consulte a API Documentation da API desejada. O exemplo a seguir chama a API DescribeRegions do ECS.

    Nota

    Cada API possui um objeto de solicitação separado que segue a convenção 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. Trate exceções.

    O Alibaba Cloud Go SDK retorna erros para tratamento padrão de exceções (Tratamento de exceções). Para situações inesperadas, use panic com defer e recover. O panic interrompe a execução imediatamente. Dentro de um bloco defer, o recover captura o pânico e retoma a execução 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. No terminal, execute go run para rodar o código.

    image

Referências

Documentação avançada